• Home
  • Raw
  • Download

Lines Matching refs:channel

59 #define ZS_WSYNC(channel)	do { } while (0)  argument
129 static unsigned char read_zsreg(struct zilog_channel __iomem *channel, in read_zsreg() argument
134 writeb(reg, &channel->control); in read_zsreg()
136 retval = readb(&channel->control); in read_zsreg()
142 static void write_zsreg(struct zilog_channel __iomem *channel, in write_zsreg() argument
145 writeb(reg, &channel->control); in write_zsreg()
147 writeb(value, &channel->control); in write_zsreg()
151 static void sunzilog_clear_fifo(struct zilog_channel __iomem *channel) in sunzilog_clear_fifo() argument
158 regval = readb(&channel->control); in sunzilog_clear_fifo()
163 regval = read_zsreg(channel, R1); in sunzilog_clear_fifo()
164 readb(&channel->data); in sunzilog_clear_fifo()
168 writeb(ERR_RES, &channel->control); in sunzilog_clear_fifo()
170 ZS_WSYNC(channel); in sunzilog_clear_fifo()
178 static int __load_zsregs(struct zilog_channel __iomem *channel, unsigned char *regs) in __load_zsregs() argument
186 unsigned char stat = read_zsreg(channel, R1); in __load_zsregs()
192 writeb(ERR_RES, &channel->control); in __load_zsregs()
194 ZS_WSYNC(channel); in __load_zsregs()
196 sunzilog_clear_fifo(channel); in __load_zsregs()
199 write_zsreg(channel, R1, in __load_zsregs()
203 write_zsreg(channel, R4, regs[R4]); in __load_zsregs()
206 write_zsreg(channel, R10, regs[R10]); in __load_zsregs()
209 write_zsreg(channel, R3, regs[R3] & ~RxENAB); in __load_zsregs()
210 write_zsreg(channel, R5, regs[R5] & ~TxENAB); in __load_zsregs()
213 write_zsreg(channel, R6, regs[R6]); in __load_zsregs()
214 write_zsreg(channel, R7, regs[R7]); in __load_zsregs()
222 write_zsreg(channel, R14, regs[R14] & ~BRENAB); in __load_zsregs()
225 write_zsreg(channel, R11, regs[R11]); in __load_zsregs()
228 write_zsreg(channel, R12, regs[R12]); in __load_zsregs()
229 write_zsreg(channel, R13, regs[R13]); in __load_zsregs()
232 write_zsreg(channel, R14, regs[R14]); in __load_zsregs()
235 write_zsreg(channel, R15, (regs[R15] | WR7pEN) & ~FIFOEN); in __load_zsregs()
238 r15 = read_zsreg(channel, R15); in __load_zsregs()
240 write_zsreg(channel, R7, regs[R7p]); in __load_zsregs()
243 write_zsreg(channel, R15, regs[R15] & ~WR7pEN); in __load_zsregs()
252 write_zsreg(channel, R0, RES_EXT_INT); /* First Latch */ in __load_zsregs()
253 write_zsreg(channel, R0, RES_EXT_INT); /* Second Latch */ in __load_zsregs()
256 write_zsreg(channel, R3, regs[R3]); in __load_zsregs()
257 write_zsreg(channel, R5, regs[R5]); in __load_zsregs()
260 write_zsreg(channel, R1, regs[R1]); in __load_zsregs()
272 struct zilog_channel __iomem *channel) in sunzilog_maybe_update_regs() argument
278 __load_zsregs(channel, up->curregs); in sunzilog_maybe_update_regs()
328 struct zilog_channel __iomem *channel) in sunzilog_receive_chars() argument
338 r1 = read_zsreg(channel, R1); in sunzilog_receive_chars()
340 writeb(ERR_RES, &channel->control); in sunzilog_receive_chars()
342 ZS_WSYNC(channel); in sunzilog_receive_chars()
345 ch = readb(&channel->control); in sunzilog_receive_chars()
357 ch = readb(&channel->data); in sunzilog_receive_chars()
406 struct zilog_channel __iomem *channel) in sunzilog_status_handle() argument
410 status = readb(&channel->control); in sunzilog_status_handle()
413 writeb(RES_EXT_INT, &channel->control); in sunzilog_status_handle()
415 ZS_WSYNC(channel); in sunzilog_status_handle()
425 status = readb(&channel->control); in sunzilog_status_handle()
457 struct zilog_channel __iomem *channel) in sunzilog_transmit_chars() argument
462 unsigned char status = readb(&channel->control); in sunzilog_transmit_chars()
480 __load_zsregs(channel, up->curregs); in sunzilog_transmit_chars()
491 writeb(up->port.x_char, &channel->data); in sunzilog_transmit_chars()
493 ZS_WSYNC(channel); in sunzilog_transmit_chars()
510 writeb(xmit->buf[xmit->tail], &channel->data); in sunzilog_transmit_chars()
512 ZS_WSYNC(channel); in sunzilog_transmit_chars()
523 writeb(RES_Tx_P, &channel->control); in sunzilog_transmit_chars()
525 ZS_WSYNC(channel); in sunzilog_transmit_chars()
533 struct zilog_channel __iomem *channel in sunzilog_interrupt() local
539 r3 = read_zsreg(channel, R3); in sunzilog_interrupt()
544 writeb(RES_H_IUS, &channel->control); in sunzilog_interrupt()
546 ZS_WSYNC(channel); in sunzilog_interrupt()
549 port = sunzilog_receive_chars(up, channel); in sunzilog_interrupt()
551 sunzilog_status_handle(up, channel); in sunzilog_interrupt()
553 sunzilog_transmit_chars(up, channel); in sunzilog_interrupt()
562 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in sunzilog_interrupt()
567 writeb(RES_H_IUS, &channel->control); in sunzilog_interrupt()
569 ZS_WSYNC(channel); in sunzilog_interrupt()
572 port = sunzilog_receive_chars(up, channel); in sunzilog_interrupt()
574 sunzilog_status_handle(up, channel); in sunzilog_interrupt()
576 sunzilog_transmit_chars(up, channel); in sunzilog_interrupt()
594 struct zilog_channel __iomem *channel; in sunzilog_read_channel_status() local
597 channel = ZILOG_CHANNEL_FROM_PORT(port); in sunzilog_read_channel_status()
598 status = readb(&channel->control); in sunzilog_read_channel_status()
648 struct zilog_channel __iomem *channel = ZILOG_CHANNEL_FROM_PORT(port); in sunzilog_set_mctrl() local
665 write_zsreg(channel, R5, up->curregs[R5]); in sunzilog_set_mctrl()
680 struct zilog_channel __iomem *channel = ZILOG_CHANNEL_FROM_PORT(port); in sunzilog_start_tx() local
686 status = readb(&channel->control); in sunzilog_start_tx()
697 writeb(port->x_char, &channel->data); in sunzilog_start_tx()
699 ZS_WSYNC(channel); in sunzilog_start_tx()
706 writeb(xmit->buf[xmit->tail], &channel->data); in sunzilog_start_tx()
708 ZS_WSYNC(channel); in sunzilog_start_tx()
722 struct zilog_channel __iomem *channel; in sunzilog_stop_rx() local
727 channel = ZILOG_CHANNEL_FROM_PORT(port); in sunzilog_stop_rx()
731 sunzilog_maybe_update_regs(up, channel); in sunzilog_stop_rx()
738 struct zilog_channel __iomem *channel = ZILOG_CHANNEL_FROM_PORT(port); in sunzilog_enable_ms() local
746 write_zsreg(channel, R15, up->curregs[R15] & ~WR7pEN); in sunzilog_enable_ms()
754 struct zilog_channel __iomem *channel = ZILOG_CHANNEL_FROM_PORT(port); in sunzilog_break_ctl() local
772 write_zsreg(channel, R5, up->curregs[R5]); in sunzilog_break_ctl()
780 struct zilog_channel __iomem *channel; in __sunzilog_startup() local
782 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in __sunzilog_startup()
783 up->prev_status = readb(&channel->control); in __sunzilog_startup()
790 sunzilog_maybe_update_regs(up, channel); in __sunzilog_startup()
835 struct zilog_channel __iomem *channel; in sunzilog_shutdown() local
843 channel = ZILOG_CHANNEL_FROM_PORT(port); in sunzilog_shutdown()
852 sunzilog_maybe_update_regs(up, channel); in sunzilog_shutdown()
1000 struct zilog_channel __iomem *channel in sunzilog_get_poll_char() local
1004 r1 = read_zsreg(channel, R1); in sunzilog_get_poll_char()
1006 writeb(ERR_RES, &channel->control); in sunzilog_get_poll_char()
1008 ZS_WSYNC(channel); in sunzilog_get_poll_char()
1011 ch = readb(&channel->control); in sunzilog_get_poll_char()
1023 ch = readb(&channel->data); in sunzilog_get_poll_char()
1123 struct zilog_channel __iomem *channel = ZILOG_CHANNEL_FROM_PORT(port); in sunzilog_putchar() local
1130 unsigned char val = readb(&channel->control); in sunzilog_putchar()
1138 writeb(ch, &channel->data); in sunzilog_putchar()
1140 ZS_WSYNC(channel); in sunzilog_putchar()
1329 struct zilog_channel __iomem *channel; in sunzilog_init_hw() local
1333 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in sunzilog_init_hw()
1337 write_zsreg(channel, R9, FHWRES); in sunzilog_init_hw()
1339 (void) read_zsreg(channel, R0); in sunzilog_init_hw()
1356 write_zsreg(channel, R9, up->curregs[R9]); in sunzilog_init_hw()
1376 if (__load_zsregs(channel, up->curregs)) { in sunzilog_init_hw()
1382 write_zsreg(channel, R9, up->curregs[R9]); in sunzilog_init_hw()
1586 struct zilog_channel __iomem *channel; in sunzilog_init() local
1589 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in sunzilog_init()
1592 write_zsreg(channel, R9, up->curregs[R9]); in sunzilog_init()
1623 struct zilog_channel __iomem *channel; in sunzilog_exit() local
1626 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in sunzilog_exit()
1629 write_zsreg(channel, R9, up->curregs[R9]); in sunzilog_exit()