Lines Matching refs:bas
148 #define __uart_getreg(bas, reg) \ argument
149 bus_space_read_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg))
150 #define __uart_setreg(bas, reg, value) \ argument
151 bus_space_write_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg), value)
156 static int uart_pl011_probe(struct uart_bas *bas);
157 static void uart_pl011_init(struct uart_bas *bas, int, int, int, int);
158 static void uart_pl011_term(struct uart_bas *bas);
159 static void uart_pl011_putc(struct uart_bas *bas, int);
160 static int uart_pl011_rxready(struct uart_bas *bas);
161 static int uart_pl011_getc(struct uart_bas *bas, struct mtx *);
173 uart_pl011_probe(struct uart_bas *bas) in uart_pl011_probe() argument
180 uart_pl011_param(struct uart_bas *bas, int baudrate, int databits, int stopbits, in uart_pl011_param() argument
191 __uart_setreg(bas, UART_CR, ctrl); in uart_pl011_param()
221 if (bas->rclk != 0 && baudrate != 0) { in uart_pl011_param()
222 baud = bas->rclk * 4 / baudrate; in uart_pl011_param()
223 __uart_setreg(bas, UART_IBRD, ((uint32_t)(baud >> 6)) & IBRD_BDIVINT); in uart_pl011_param()
224 __uart_setreg(bas, UART_FBRD, (uint32_t)(baud & 0x3F) & FBRD_BDIVFRAC); in uart_pl011_param()
228 __uart_setreg(bas, UART_LCR_H, (__uart_getreg(bas, UART_LCR_H) & in uart_pl011_param()
232 __uart_setreg(bas, UART_IFLS, FIFO_IFLS_BITS); in uart_pl011_param()
234 __uart_setreg(bas, UART_CR, ctrl); in uart_pl011_param()
238 uart_pl011_init(struct uart_bas *bas, int baudrate, int databits, int stopbits, in uart_pl011_init() argument
242 __uart_setreg(bas, UART_IMSC, __uart_getreg(bas, UART_IMSC) & in uart_pl011_init()
245 uart_pl011_param(bas, baudrate, databits, stopbits, parity); in uart_pl011_init()
249 uart_pl011_term(struct uart_bas *bas) in uart_pl011_term() argument
254 uart_pl011_putc(struct uart_bas *bas, int c) in uart_pl011_putc() argument
258 while (__uart_getreg(bas, UART_FR) & FR_TXFF) in uart_pl011_putc()
260 __uart_setreg(bas, UART_DR, c & 0xff); in uart_pl011_putc()
264 uart_pl011_rxready(struct uart_bas *bas) in uart_pl011_rxready() argument
267 return !(__uart_getreg(bas, UART_FR) & FR_RXFE); in uart_pl011_rxready()
271 uart_pl011_getc(struct uart_bas *bas, struct mtx *hwmtx) in uart_pl011_getc() argument
275 while (!uart_pl011_rxready(bas)) in uart_pl011_getc()
277 c = __uart_getreg(bas, UART_DR) & 0xff; in uart_pl011_getc()
353 struct uart_bas *bas; in uart_pl011_bus_attach() local
356 bas = &sc->sc_bas; in uart_pl011_bus_attach()
360 __uart_setreg(bas, UART_IMSC, psc->imsc); in uart_pl011_bus_attach()
363 __uart_setreg(bas, UART_ICR, IMSC_MASK_ALL); in uart_pl011_bus_attach()
415 struct uart_bas *bas; in uart_pl011_bus_ipend() local
420 bas = &sc->sc_bas; in uart_pl011_bus_ipend()
423 ints = __uart_getreg(bas, UART_MIS); in uart_pl011_bus_ipend()
437 __uart_setreg(bas, UART_IMSC, psc->imsc & ~UART_TXEMPTY); in uart_pl011_bus_ipend()
518 struct uart_bas *bas; in uart_pl011_bus_receive() local
522 bas = &sc->sc_bas; in uart_pl011_bus_receive()
526 ints = __uart_getreg(bas, UART_FR); in uart_pl011_bus_receive()
534 xc = __uart_getreg(bas, UART_DR); in uart_pl011_bus_receive()
561 struct uart_bas *bas; in uart_pl011_bus_transmit() local
565 bas = &sc->sc_bas; in uart_pl011_bus_transmit()
569 __uart_setreg(bas, UART_DR, sc->sc_txbuf[i]); in uart_pl011_bus_transmit()
570 uart_barrier(bas); in uart_pl011_bus_transmit()
575 __uart_setreg(bas, UART_IMSC, psc->imsc); in uart_pl011_bus_transmit()
586 struct uart_bas *bas; in uart_pl011_bus_grab() local
589 bas = &sc->sc_bas; in uart_pl011_bus_grab()
593 __uart_setreg(bas, UART_IMSC, psc->imsc & ~IMSC_MASK_ALL); in uart_pl011_bus_grab()
601 struct uart_bas *bas; in uart_pl011_bus_ungrab() local
604 bas = &sc->sc_bas; in uart_pl011_bus_ungrab()
608 __uart_setreg(bas, UART_IMSC, psc->imsc); in uart_pl011_bus_ungrab()