Lines Matching refs:bas
60 #define RD4(bas, reg) \ argument
61 bus_space_read_4((bas)->bst, (bas)->bsh, uart_regofs((bas), (reg)))
62 #define WR4(bas, reg, value) \ argument
63 bus_space_write_4((bas)->bst, (bas)->bsh, uart_regofs((bas), (reg)), \
153 static int cdnc_uart_probe(struct uart_bas *bas);
154 static void cdnc_uart_init(struct uart_bas *bas, int, int, int, int);
155 static void cdnc_uart_term(struct uart_bas *bas);
156 static void cdnc_uart_putc(struct uart_bas *bas, int);
157 static int cdnc_uart_rxready(struct uart_bas *bas);
158 static int cdnc_uart_getc(struct uart_bas *bas, struct mtx *mtx);
179 cdnc_uart_probe(struct uart_bas *bas) in cdnc_uart_probe() argument
186 cdnc_uart_set_baud(struct uart_bas *bas, int baudrate) in cdnc_uart_set_baud() argument
198 baudgen = (bas->rclk + (baudrate * (bauddiv + 1)) / 2) / in cdnc_uart_set_baud()
203 baud_out = bas->rclk / (baudgen * (bauddiv + 1)); in cdnc_uart_set_baud()
215 WR4(bas, CDNC_UART_BAUDDIV_REG, best_bauddiv); in cdnc_uart_set_baud()
216 WR4(bas, CDNC_UART_BAUDGEN_REG, best_baudgen); in cdnc_uart_set_baud()
223 cdnc_uart_set_params(struct uart_bas *bas, int baudrate, int databits, in cdnc_uart_set_params() argument
263 WR4(bas, CDNC_UART_MODE_REG, mode_reg_value); in cdnc_uart_set_params()
265 if (baudrate > 0 && cdnc_uart_set_baud(bas, baudrate) < 0) in cdnc_uart_set_params()
272 cdnc_uart_hw_init(struct uart_bas *bas) in cdnc_uart_hw_init() argument
276 WR4(bas, CDNC_UART_CTRL_REG, in cdnc_uart_hw_init()
280 WR4(bas, CDNC_UART_IDIS_REG, CDNC_UART_INT_ALL); in cdnc_uart_hw_init()
281 WR4(bas, CDNC_UART_ISTAT_REG, CDNC_UART_INT_ALL); in cdnc_uart_hw_init()
284 WR4(bas, CDNC_UART_MODEM_STAT_REG, in cdnc_uart_hw_init()
289 WR4(bas, CDNC_UART_RX_WATER_REG, UART_FIFO_SIZE/2); in cdnc_uart_hw_init()
290 WR4(bas, CDNC_UART_RX_TIMEO_REG, 10); in cdnc_uart_hw_init()
293 WR4(bas, CDNC_UART_TX_WATER_REG, UART_FIFO_SIZE/2); in cdnc_uart_hw_init()
296 WR4(bas, CDNC_UART_CTRL_REG, in cdnc_uart_hw_init()
301 WR4(bas, CDNC_UART_MODEM_CTRL_REG, CDNC_UART_MODEM_CTRL_REG_DTR | in cdnc_uart_hw_init()
309 cdnc_uart_init(struct uart_bas *bas, int baudrate, int databits, int stopbits, in cdnc_uart_init() argument
314 cdnc_uart_hw_init(bas); in cdnc_uart_init()
317 (void)cdnc_uart_set_params(bas, baudrate, databits, stopbits, parity); in cdnc_uart_init()
325 cdnc_uart_term(struct uart_bas *bas) in cdnc_uart_term() argument
336 cdnc_uart_putc(struct uart_bas *bas, int c) in cdnc_uart_putc() argument
340 while ((RD4(bas,CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_putc()
344 WR4(bas, CDNC_UART_FIFO, c); in cdnc_uart_putc()
346 while ((RD4(bas,CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_putc()
355 cdnc_uart_rxready(struct uart_bas *bas) in cdnc_uart_rxready() argument
358 return ((RD4(bas, CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_rxready()
366 cdnc_uart_getc(struct uart_bas *bas, struct mtx *mtx) in cdnc_uart_getc() argument
372 while ((RD4(bas, CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_getc()
379 c = RD4(bas, CDNC_UART_FIFO); in cdnc_uart_getc()
439 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_attach() local
444 (void)cdnc_uart_set_params(bas, di->baudrate, di->databits, in cdnc_uart_bus_attach()
447 cdnc_uart_hw_init(bas); in cdnc_uart_bus_attach()
452 WR4(bas, CDNC_UART_IEN_REG, in cdnc_uart_bus_attach()
464 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_transmit() local
469 WR4(bas, CDNC_UART_ISTAT_REG, CDNC_UART_INT_TXEMPTY); in cdnc_uart_bus_transmit()
472 WR4(bas, CDNC_UART_FIFO, sc->sc_txbuf[i]); in cdnc_uart_bus_transmit()
475 WR4(bas, CDNC_UART_IEN_REG, CDNC_UART_INT_TXEMPTY); in cdnc_uart_bus_transmit()
486 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_setsig() local
500 modem_ctrl = RD4(bas, CDNC_UART_MODEM_CTRL_REG) & in cdnc_uart_bus_setsig()
506 WR4(bas, CDNC_UART_MODEM_CTRL_REG, modem_ctrl); in cdnc_uart_bus_setsig()
515 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_receive() local
522 status = RD4(bas, CDNC_UART_ISTAT_REG); in cdnc_uart_bus_receive()
524 WR4(bas, CDNC_UART_ISTAT_REG, in cdnc_uart_bus_receive()
532 while ((RD4(bas, CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_bus_receive()
534 c = RD4(bas, CDNC_UART_FIFO) & 0xff; in cdnc_uart_bus_receive()
541 WR4(bas, CDNC_UART_ISTAT_REG, CDNC_UART_INT_FRAMING); in cdnc_uart_bus_receive()
565 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_ipend() local
570 istatus = RD4(bas, CDNC_UART_ISTAT_REG); in cdnc_uart_bus_ipend()
573 WR4(bas, CDNC_UART_ISTAT_REG, istatus & in cdnc_uart_bus_ipend()
585 WR4(bas, CDNC_UART_IDIS_REG, CDNC_UART_INT_TXEMPTY); in cdnc_uart_bus_ipend()
599 WR4(bas, CDNC_UART_MODEM_STAT_REG, in cdnc_uart_bus_ipend()
621 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_getsig() local
629 modem_status = RD4(bas, CDNC_UART_MODEM_STAT_REG); in cdnc_uart_bus_getsig()
647 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_ioctl() local
655 uart_ctrl = RD4(bas, CDNC_UART_CTRL_REG); in cdnc_uart_bus_ioctl()
663 WR4(bas, CDNC_UART_CTRL_REG, uart_ctrl); in cdnc_uart_bus_ioctl()
666 modem_ctrl = RD4(bas, CDNC_UART_MODEM_CTRL_REG); in cdnc_uart_bus_ioctl()
671 WR4(bas, CDNC_UART_MODEM_CTRL_REG, modem_ctrl); in cdnc_uart_bus_ioctl()