Lines Matching refs:bas

150 #define	__uart_getreg(bas, reg)		\  argument
151 bus_space_read_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg))
152 #define __uart_setreg(bas, reg, value) \ argument
153 bus_space_write_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg), value)
158 static int uart_pl011_probe(struct uart_bas *bas);
159 static void uart_pl011_init(struct uart_bas *bas, int, int, int, int);
160 static void uart_pl011_term(struct uart_bas *bas);
161 static void uart_pl011_putc(struct uart_bas *bas, int);
162 static int uart_pl011_rxready(struct uart_bas *bas);
163 static int uart_pl011_getc(struct uart_bas *bas, struct mtx *);
175 uart_pl011_probe(struct uart_bas *bas) in uart_pl011_probe() argument
182 uart_pl011_param(struct uart_bas *bas, int baudrate, int databits, int stopbits, in uart_pl011_param() argument
193 __uart_setreg(bas, UART_CR, ctrl); in uart_pl011_param()
223 if (bas->rclk != 0 && baudrate != 0) { in uart_pl011_param()
224 baud = bas->rclk * 4 / baudrate; in uart_pl011_param()
225 __uart_setreg(bas, UART_IBRD, ((uint32_t)(baud >> 6)) & IBRD_BDIVINT); in uart_pl011_param()
226 __uart_setreg(bas, UART_FBRD, (uint32_t)(baud & 0x3F) & FBRD_BDIVFRAC); in uart_pl011_param()
230 __uart_setreg(bas, UART_LCR_H, (__uart_getreg(bas, UART_LCR_H) & in uart_pl011_param()
234 __uart_setreg(bas, UART_IFLS, FIFO_IFLS_BITS); in uart_pl011_param()
236 __uart_setreg(bas, UART_CR, ctrl); in uart_pl011_param()
240 uart_pl011_init(struct uart_bas *bas, int baudrate, int databits, int stopbits, in uart_pl011_init() argument
244 __uart_setreg(bas, UART_IMSC, __uart_getreg(bas, UART_IMSC) & in uart_pl011_init()
247 uart_pl011_param(bas, baudrate, databits, stopbits, parity); in uart_pl011_init()
251 uart_pl011_term(struct uart_bas *bas) in uart_pl011_term() argument
256 uart_pl011_putc(struct uart_bas *bas, int c) in uart_pl011_putc() argument
260 while (__uart_getreg(bas, UART_FR) & FR_TXFF) in uart_pl011_putc()
262 __uart_setreg(bas, UART_DR, c & 0xff); in uart_pl011_putc()
266 uart_pl011_rxready(struct uart_bas *bas) in uart_pl011_rxready() argument
269 return !(__uart_getreg(bas, UART_FR) & FR_RXFE); in uart_pl011_rxready()
273 uart_pl011_getc(struct uart_bas *bas, struct mtx *hwmtx) in uart_pl011_getc() argument
277 while (!uart_pl011_rxready(bas)) in uart_pl011_getc()
279 c = __uart_getreg(bas, UART_DR) & 0xff; in uart_pl011_getc()
357 struct uart_bas *bas; in uart_pl011_bus_attach() local
360 bas = &sc->sc_bas; in uart_pl011_bus_attach()
364 __uart_setreg(bas, UART_IMSC, psc->imsc); in uart_pl011_bus_attach()
367 __uart_setreg(bas, UART_ICR, IMSC_MASK_ALL); in uart_pl011_bus_attach()
419 struct uart_bas *bas; in uart_pl011_bus_ipend() local
424 bas = &sc->sc_bas; in uart_pl011_bus_ipend()
427 ints = __uart_getreg(bas, UART_MIS); in uart_pl011_bus_ipend()
441 __uart_setreg(bas, UART_IMSC, psc->imsc & ~UART_TXEMPTY); in uart_pl011_bus_ipend()
522 struct uart_bas *bas; in uart_pl011_bus_receive() local
526 bas = &sc->sc_bas; in uart_pl011_bus_receive()
530 ints = __uart_getreg(bas, UART_FR); in uart_pl011_bus_receive()
538 xc = __uart_getreg(bas, UART_DR); in uart_pl011_bus_receive()
565 struct uart_bas *bas; in uart_pl011_bus_transmit() local
569 bas = &sc->sc_bas; in uart_pl011_bus_transmit()
573 __uart_setreg(bas, UART_DR, sc->sc_txbuf[i]); in uart_pl011_bus_transmit()
574 uart_barrier(bas); in uart_pl011_bus_transmit()
579 __uart_setreg(bas, UART_IMSC, psc->imsc); in uart_pl011_bus_transmit()
590 struct uart_bas *bas; in uart_pl011_bus_grab() local
593 bas = &sc->sc_bas; in uart_pl011_bus_grab()
597 __uart_setreg(bas, UART_IMSC, psc->imsc & ~IMSC_MASK_ALL); in uart_pl011_bus_grab()
605 struct uart_bas *bas; in uart_pl011_bus_ungrab() local
608 bas = &sc->sc_bas; in uart_pl011_bus_ungrab()
612 __uart_setreg(bas, UART_IMSC, psc->imsc); in uart_pl011_bus_ungrab()