Lines Matching refs:bas
57 #define RD4(bas, reg) \ argument
58 bus_space_read_4((bas)->bst, (bas)->bsh, uart_regofs((bas), (reg)))
59 #define WR4(bas, reg, value) \ argument
60 bus_space_write_4((bas)->bst, (bas)->bsh, uart_regofs((bas), (reg)), \
149 static int cdnc_uart_probe(struct uart_bas *bas);
150 static void cdnc_uart_init(struct uart_bas *bas, int, int, int, int);
151 static void cdnc_uart_term(struct uart_bas *bas);
152 static void cdnc_uart_putc(struct uart_bas *bas, int);
153 static int cdnc_uart_rxready(struct uart_bas *bas);
154 static int cdnc_uart_getc(struct uart_bas *bas, struct mtx *mtx);
175 cdnc_uart_probe(struct uart_bas *bas) in cdnc_uart_probe() argument
182 cdnc_uart_set_baud(struct uart_bas *bas, int baudrate) in cdnc_uart_set_baud() argument
194 baudgen = (bas->rclk + (baudrate * (bauddiv + 1)) / 2) / in cdnc_uart_set_baud()
199 baud_out = bas->rclk / (baudgen * (bauddiv + 1)); in cdnc_uart_set_baud()
211 WR4(bas, CDNC_UART_BAUDDIV_REG, best_bauddiv); in cdnc_uart_set_baud()
212 WR4(bas, CDNC_UART_BAUDGEN_REG, best_baudgen); in cdnc_uart_set_baud()
219 cdnc_uart_set_params(struct uart_bas *bas, int baudrate, int databits, in cdnc_uart_set_params() argument
259 WR4(bas, CDNC_UART_MODE_REG, mode_reg_value); in cdnc_uart_set_params()
261 if (baudrate > 0 && cdnc_uart_set_baud(bas, baudrate) < 0) in cdnc_uart_set_params()
268 cdnc_uart_hw_init(struct uart_bas *bas) in cdnc_uart_hw_init() argument
272 WR4(bas, CDNC_UART_CTRL_REG, in cdnc_uart_hw_init()
276 WR4(bas, CDNC_UART_IDIS_REG, CDNC_UART_INT_ALL); in cdnc_uart_hw_init()
277 WR4(bas, CDNC_UART_ISTAT_REG, CDNC_UART_INT_ALL); in cdnc_uart_hw_init()
280 WR4(bas, CDNC_UART_MODEM_STAT_REG, in cdnc_uart_hw_init()
285 WR4(bas, CDNC_UART_RX_WATER_REG, UART_FIFO_SIZE/2); in cdnc_uart_hw_init()
286 WR4(bas, CDNC_UART_RX_TIMEO_REG, 10); in cdnc_uart_hw_init()
289 WR4(bas, CDNC_UART_TX_WATER_REG, UART_FIFO_SIZE/2); in cdnc_uart_hw_init()
292 WR4(bas, CDNC_UART_CTRL_REG, in cdnc_uart_hw_init()
297 WR4(bas, CDNC_UART_MODEM_CTRL_REG, CDNC_UART_MODEM_CTRL_REG_DTR | in cdnc_uart_hw_init()
305 cdnc_uart_init(struct uart_bas *bas, int baudrate, int databits, int stopbits, in cdnc_uart_init() argument
310 cdnc_uart_hw_init(bas); in cdnc_uart_init()
313 (void)cdnc_uart_set_params(bas, baudrate, databits, stopbits, parity); in cdnc_uart_init()
321 cdnc_uart_term(struct uart_bas *bas) in cdnc_uart_term() argument
332 cdnc_uart_putc(struct uart_bas *bas, int c) in cdnc_uart_putc() argument
336 while ((RD4(bas,CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_putc()
340 WR4(bas, CDNC_UART_FIFO, c); in cdnc_uart_putc()
342 while ((RD4(bas,CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_putc()
351 cdnc_uart_rxready(struct uart_bas *bas) in cdnc_uart_rxready() argument
354 return ((RD4(bas, CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_rxready()
362 cdnc_uart_getc(struct uart_bas *bas, struct mtx *mtx) in cdnc_uart_getc() argument
368 while ((RD4(bas, CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_getc()
375 c = RD4(bas, CDNC_UART_FIFO); in cdnc_uart_getc()
435 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_attach() local
440 (void)cdnc_uart_set_params(bas, di->baudrate, di->databits, in cdnc_uart_bus_attach()
443 cdnc_uart_hw_init(bas); in cdnc_uart_bus_attach()
448 WR4(bas, CDNC_UART_IEN_REG, in cdnc_uart_bus_attach()
460 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_transmit() local
465 WR4(bas, CDNC_UART_ISTAT_REG, CDNC_UART_INT_TXEMPTY); in cdnc_uart_bus_transmit()
468 WR4(bas, CDNC_UART_FIFO, sc->sc_txbuf[i]); in cdnc_uart_bus_transmit()
471 WR4(bas, CDNC_UART_IEN_REG, CDNC_UART_INT_TXEMPTY); in cdnc_uart_bus_transmit()
482 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_setsig() local
496 modem_ctrl = RD4(bas, CDNC_UART_MODEM_CTRL_REG) & in cdnc_uart_bus_setsig()
502 WR4(bas, CDNC_UART_MODEM_CTRL_REG, modem_ctrl); in cdnc_uart_bus_setsig()
511 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_receive() local
518 status = RD4(bas, CDNC_UART_ISTAT_REG); in cdnc_uart_bus_receive()
520 WR4(bas, CDNC_UART_ISTAT_REG, in cdnc_uart_bus_receive()
528 while ((RD4(bas, CDNC_UART_CHAN_STAT_REG) & in cdnc_uart_bus_receive()
530 c = RD4(bas, CDNC_UART_FIFO) & 0xff; in cdnc_uart_bus_receive()
537 WR4(bas, CDNC_UART_ISTAT_REG, CDNC_UART_INT_FRAMING); in cdnc_uart_bus_receive()
561 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_ipend() local
566 istatus = RD4(bas, CDNC_UART_ISTAT_REG); in cdnc_uart_bus_ipend()
569 WR4(bas, CDNC_UART_ISTAT_REG, istatus & in cdnc_uart_bus_ipend()
581 WR4(bas, CDNC_UART_IDIS_REG, CDNC_UART_INT_TXEMPTY); in cdnc_uart_bus_ipend()
595 WR4(bas, CDNC_UART_MODEM_STAT_REG, in cdnc_uart_bus_ipend()
617 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_getsig() local
625 modem_status = RD4(bas, CDNC_UART_MODEM_STAT_REG); in cdnc_uart_bus_getsig()
643 struct uart_bas *bas = &sc->sc_bas; in cdnc_uart_bus_ioctl() local
651 uart_ctrl = RD4(bas, CDNC_UART_CTRL_REG); in cdnc_uart_bus_ioctl()
659 WR4(bas, CDNC_UART_CTRL_REG, uart_ctrl); in cdnc_uart_bus_ioctl()
662 modem_ctrl = RD4(bas, CDNC_UART_MODEM_CTRL_REG); in cdnc_uart_bus_ioctl()
667 WR4(bas, CDNC_UART_MODEM_CTRL_REG, modem_ctrl); in cdnc_uart_bus_ioctl()