Lines Matching refs:bas
52 #define ar933x_getreg(bas, reg) \ argument
53 bus_space_read_4((bas)->bst, (bas)->bsh, reg)
54 #define ar933x_setreg(bas, reg, value) \ argument
55 bus_space_write_4((bas)->bst, (bas)->bsh, reg, value)
60 ar933x_drain(struct uart_bas *bas, int what) in ar933x_drain() argument
69 if ((ar933x_getreg(bas, AR933X_UART_CS_REG) in ar933x_drain()
86 if ((ar933x_getreg(bas, AR933X_UART_DATA_REG) & in ar933x_drain()
92 (void) ar933x_getreg(bas, AR933X_UART_DATA_REG); in ar933x_drain()
95 ar933x_setreg(bas, AR933X_UART_DATA_REG, in ar933x_drain()
98 uart_barrier(bas); in ar933x_drain()
132 ar933x_uart_get_scale_step(struct uart_bas *bas, unsigned int baud, in ar933x_uart_get_scale_step() argument
139 clk = bas->rclk; in ar933x_uart_get_scale_step()
165 ar933x_param(struct uart_bas *bas, int baudrate, int databits, int stopbits, in ar933x_param() argument
179 ar933x_uart_get_scale_step(bas, baudrate, &clock_scale, in ar933x_param()
186 ar933x_setreg(bas, AR933X_UART_CLOCK_REG, in ar933x_param()
192 uart_barrier(bas); in ar933x_param()
200 static int ar933x_probe(struct uart_bas *bas);
201 static void ar933x_init(struct uart_bas *bas, int, int, int, int);
202 static void ar933x_term(struct uart_bas *bas);
203 static void ar933x_putc(struct uart_bas *bas, int);
204 static int ar933x_rxready(struct uart_bas *bas);
205 static int ar933x_getc(struct uart_bas *bas, struct mtx *);
217 ar933x_probe(struct uart_bas *bas) in ar933x_probe() argument
225 ar933x_init(struct uart_bas *bas, int baudrate, int databits, int stopbits, in ar933x_init() argument
231 ar933x_param(bas, baudrate, databits, stopbits, parity); in ar933x_init()
236 ar933x_setreg(bas, AR933X_UART_INT_EN_REG, 0x00000000); in ar933x_init()
239 reg = ar933x_getreg(bas, AR933X_UART_CS_REG); in ar933x_init()
241 ar933x_setreg(bas, AR933X_UART_CS_REG, reg); in ar933x_init()
243 uart_barrier(bas); in ar933x_init()
252 ar933x_term(struct uart_bas *bas) in ar933x_term() argument
259 ar933x_putc(struct uart_bas *bas, int c) in ar933x_putc() argument
266 while ( ((ar933x_getreg(bas, AR933X_UART_DATA_REG) & in ar933x_putc()
271 ar933x_setreg(bas, AR933X_UART_DATA_REG, in ar933x_putc()
276 ar933x_rxready(struct uart_bas *bas) in ar933x_rxready() argument
280 return (!!(ar933x_getreg(bas, AR933X_UART_DATA_REG) in ar933x_rxready()
285 ar933x_getc(struct uart_bas *bas, struct mtx *hwmtx) in ar933x_getc() argument
292 while ((ar933x_getreg(bas, AR933X_UART_DATA_REG) & in ar933x_getc()
300 c = ar933x_getreg(bas, AR933X_UART_DATA_REG) & 0xff; in ar933x_getc()
303 ar933x_setreg(bas, AR933X_UART_DATA_REG, AR933X_UART_DATA_RX_CSR); in ar933x_getc()
371 struct uart_bas *bas = &sc->sc_bas; in ar933x_bus_attach() local
386 ar933x_setreg(bas, AR933X_UART_INT_EN_REG, u->u_ier); in ar933x_bus_attach()
389 reg = ar933x_getreg(bas, AR933X_UART_CS_REG); in ar933x_bus_attach()
391 ar933x_setreg(bas, AR933X_UART_CS_REG, reg); in ar933x_bus_attach()
399 struct uart_bas *bas = &sc->sc_bas; in ar933x_bus_detach() local
403 ar933x_setreg(bas, AR933X_UART_INT_EN_REG, 0x00000000); in ar933x_bus_detach()
406 reg = ar933x_getreg(bas, AR933X_UART_CS_REG); in ar933x_bus_detach()
408 ar933x_setreg(bas, AR933X_UART_CS_REG, reg); in ar933x_bus_detach()
409 uart_barrier(bas); in ar933x_bus_detach()
417 struct uart_bas *bas; in ar933x_bus_flush() local
419 bas = &sc->sc_bas; in ar933x_bus_flush()
421 ar933x_drain(bas, what); in ar933x_bus_flush()
483 struct uart_bas *bas = &sc->sc_bas; in ar933x_bus_ipend() local
492 isr = ar933x_getreg(bas, AR933X_UART_INT_REG); in ar933x_bus_ipend()
493 ar933x_setreg(bas, AR933X_UART_INT_REG, isr); in ar933x_bus_ipend()
494 uart_barrier(bas); in ar933x_bus_ipend()
530 ar933x_setreg(bas, AR933X_UART_INT_EN_REG, u->u_ier); in ar933x_bus_ipend()
531 uart_barrier(bas); in ar933x_bus_ipend()
555 struct uart_bas *bas; in ar933x_bus_param() local
558 bas = &sc->sc_bas; in ar933x_bus_param()
560 error = ar933x_param(bas, baudrate, databits, stopbits, parity); in ar933x_bus_param()
568 struct uart_bas *bas; in ar933x_bus_probe() local
571 bas = &sc->sc_bas; in ar933x_bus_probe()
573 error = ar933x_probe(bas); in ar933x_bus_probe()
578 ar933x_drain(bas, UART_FLUSH_RECEIVER|UART_FLUSH_TRANSMITTER); in ar933x_bus_probe()
590 struct uart_bas *bas = &sc->sc_bas; in ar933x_bus_receive() local
596 while (ar933x_rxready(bas)) { in ar933x_bus_receive()
603 xc = ar933x_getreg(bas, AR933X_UART_DATA_REG) & 0xff; in ar933x_bus_receive()
606 ar933x_setreg(bas, AR933X_UART_DATA_REG, in ar933x_bus_receive()
608 uart_barrier(bas); in ar933x_bus_receive()
629 struct uart_bas *bas; in ar933x_bus_setsig()
632 bas = &sc->sc_bas; in ar933x_bus_setsig()
651 uart_setreg(bas, REG_MCR, ns8250->mcr); in ar933x_bus_setsig()
652 uart_barrier(bas); in ar933x_bus_setsig()
674 struct uart_bas *bas = &sc->sc_bas; in ar933x_bus_transmit() local
681 while (ar933x_getreg(bas, AR933X_UART_CS_REG) & in ar933x_bus_transmit()
690 ar933x_setreg(bas, AR933X_UART_DATA_REG, in ar933x_bus_transmit()
692 uart_barrier(bas); in ar933x_bus_transmit()
700 ar933x_setreg(bas, AR933X_UART_INT_EN_REG, u->u_ier); in ar933x_bus_transmit()
701 uart_barrier(bas); in ar933x_bus_transmit()
717 struct uart_bas *bas = &sc->sc_bas; in ar933x_bus_grab() local
722 reg = ar933x_getreg(bas, AR933X_UART_CS_REG); in ar933x_bus_grab()
724 ar933x_setreg(bas, AR933X_UART_CS_REG, reg); in ar933x_bus_grab()
731 struct uart_bas *bas = &sc->sc_bas; in ar933x_bus_ungrab() local
736 reg = ar933x_getreg(bas, AR933X_UART_CS_REG); in ar933x_bus_ungrab()
738 ar933x_setreg(bas, AR933X_UART_CS_REG, reg); in ar933x_bus_ungrab()