Lines Matching refs:uart
36 #define scif_readb(uart, off) readb((uart)->regs + (off)) argument
37 #define scif_writeb(uart, off, val) writeb((val), (uart)->regs + (off)) argument
39 #define scif_readw(uart, off) readw((uart)->regs + (off)) argument
40 #define scif_writew(uart, off, val) writew((val), (uart)->regs + (off)) argument
52 struct scif_uart *uart = port->uart; in scif_uart_interrupt() local
55 ctrl = scif_readw(uart, SCIF_SCSCR); in scif_uart_interrupt()
56 status = scif_readw(uart, SCIF_SCFSR) & ~SCFSR_TEND; in scif_uart_interrupt()
73 scif_writew(uart, SCIF_SCFSR, ~SCIF_ERRORS); in scif_uart_interrupt()
74 if ( scif_readw(uart, SCIF_SCLSR) & SCLSR_ORER ) in scif_uart_interrupt()
75 scif_writew(uart, SCIF_SCLSR, 0); in scif_uart_interrupt()
77 ctrl = scif_readw(uart, SCIF_SCSCR); in scif_uart_interrupt()
78 status = scif_readw(uart, SCIF_SCFSR) & ~SCFSR_TEND; in scif_uart_interrupt()
87 struct scif_uart *uart = port->uart; in scif_uart_init_preirq() local
93 while ( !(scif_readw(uart, SCIF_SCFSR) & SCFSR_TEND) ); in scif_uart_init_preirq()
96 scif_writew(uart, SCIF_SCSCR, 0); in scif_uart_init_preirq()
99 scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST); in scif_uart_init_preirq()
102 scif_readw(uart, SCIF_SCFSR); in scif_uart_init_preirq()
103 scif_writew(uart, SCIF_SCFSR, 0); in scif_uart_init_preirq()
104 scif_readw(uart, SCIF_SCLSR); in scif_uart_init_preirq()
105 scif_writew(uart, SCIF_SCLSR, 0); in scif_uart_init_preirq()
108 scif_writew(uart, SCIF_SCFCR, SCFCR_RTRG11 | SCFCR_TTRG11); in scif_uart_init_preirq()
111 scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) | in scif_uart_init_preirq()
117 struct scif_uart *uart = port->uart; in scif_uart_init_postirq() local
120 uart->irqaction.handler = scif_uart_interrupt; in scif_uart_init_postirq()
121 uart->irqaction.name = "scif_uart"; in scif_uart_init_postirq()
122 uart->irqaction.dev_id = port; in scif_uart_init_postirq()
124 if ( (rc = setup_irq(uart->irq, 0, &uart->irqaction)) != 0 ) in scif_uart_init_postirq()
126 uart->irq); in scif_uart_init_postirq()
129 if ( scif_readw(uart, SCIF_SCFSR) & SCIF_ERRORS ) in scif_uart_init_postirq()
130 scif_writew(uart, SCIF_SCFSR, ~SCIF_ERRORS); in scif_uart_init_postirq()
131 if ( scif_readw(uart, SCIF_SCLSR) & SCLSR_ORER ) in scif_uart_init_postirq()
132 scif_writew(uart, SCIF_SCLSR, 0); in scif_uart_init_postirq()
135 scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) | in scif_uart_init_postirq()
151 struct scif_uart *uart = port->uart; in scif_uart_tx_ready() local
155 if ( !(scif_readw(uart, SCIF_SCFSR) & SCFSR_TDFE) ) in scif_uart_tx_ready()
159 cnt = scif_readw(uart, SCIF_SCFDR) >> 8; in scif_uart_tx_ready()
167 struct scif_uart *uart = port->uart; in scif_uart_putc() local
169 scif_writeb(uart, SCIF_SCFTDR, c); in scif_uart_putc()
171 scif_writew(uart, SCIF_SCFSR, scif_readw(uart, SCIF_SCFSR) & in scif_uart_putc()
177 struct scif_uart *uart = port->uart; in scif_uart_getc() local
180 if ( !(scif_readw(uart, SCIF_SCFSR) & (SCFSR_RDF | SCFSR_DR)) ) in scif_uart_getc()
183 *pc = scif_readb(uart, SCIF_SCFRDR); in scif_uart_getc()
186 scif_readw(uart, SCIF_SCFSR); in scif_uart_getc()
188 scif_writew(uart, SCIF_SCFSR, ~(SCFSR_RDF | SCFSR_DR)); in scif_uart_getc()
195 struct scif_uart *uart = port->uart; in scif_uart_irq() local
197 return ((uart->irq > 0) ? uart->irq : -1); in scif_uart_irq()
202 struct scif_uart *uart = port->uart; in scif_vuart_info() local
204 return &uart->vuart; in scif_vuart_info()
209 struct scif_uart *uart = port->uart; in scif_uart_start_tx() local
211 scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) | SCSCR_TIE); in scif_uart_start_tx()
216 struct scif_uart *uart = port->uart; in scif_uart_stop_tx() local
218 scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCSCR_TIE); in scif_uart_stop_tx()
240 struct scif_uart *uart; in scif_uart_init() local
247 uart = &scif_com; in scif_uart_init()
263 uart->irq = res; in scif_uart_init()
265 uart->regs = ioremap_nocache(addr, size); in scif_uart_init()
266 if ( !uart->regs ) in scif_uart_init()
272 uart->vuart.base_addr = addr; in scif_uart_init()
273 uart->vuart.size = size; in scif_uart_init()
274 uart->vuart.data_off = SCIF_SCFTDR; in scif_uart_init()
275 uart->vuart.status_off = SCIF_SCFSR; in scif_uart_init()
276 uart->vuart.status = SCFSR_TDFE; in scif_uart_init()
279 serial_register_uart(SERHND_DTUART, &scif_uart_driver, uart); in scif_uart_init()