Lines Matching defs:bas

147 #define	__uart_getreg(bas, reg)		\
148 bus_space_read_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg))
149 #define __uart_setreg(bas, reg, value) \
150 bus_space_write_4((bas)->bst, (bas)->bsh, uart_regofs(bas, reg), value)
155 static int uart_pl011_probe(struct uart_bas *bas);
156 static void uart_pl011_init(struct uart_bas *bas, int, int, int, int);
157 static void uart_pl011_term(struct uart_bas *bas);
158 static void uart_pl011_putc(struct uart_bas *bas, int);
159 static int uart_pl011_rxready(struct uart_bas *bas);
160 static int uart_pl011_getc(struct uart_bas *bas, struct mtx *);
172 uart_pl011_probe(struct uart_bas *bas)
191 if (bas->regshft == 0 || bas->regiowidth == 1) {
192 bas->regshft = 2;
193 bas->regiowidth = 4;
200 uart_pl011_param(struct uart_bas *bas, int baudrate, int databits, int stopbits,
211 __uart_setreg(bas, UART_CR, ctrl);
241 if (bas->rclk != 0 && baudrate != 0) {
242 baud = bas->rclk * 4 / baudrate;
243 __uart_setreg(bas, UART_IBRD, ((uint32_t)(baud >> 6)) & IBRD_BDIVINT);
244 __uart_setreg(bas, UART_FBRD, (uint32_t)(baud & 0x3F) & FBRD_BDIVFRAC);
248 __uart_setreg(bas, UART_LCR_H, (__uart_getreg(bas, UART_LCR_H) &
252 __uart_setreg(bas, UART_IFLS, FIFO_IFLS_BITS);
254 __uart_setreg(bas, UART_CR, ctrl);
265 if (bas->rclk == 0 && baudrate > 0 && bas->rclk_guess) {
268 div = ((__uart_getreg(bas, UART_IBRD) & IBRD_BDIVINT) << 6) |
269 (__uart_getreg(bas, UART_FBRD) & FBRD_BDIVFRAC);
270 bas->rclk = (div * baudrate) / 4;
276 uart_pl011_init(struct uart_bas *bas, int baudrate, int databits, int stopbits,
280 __uart_setreg(bas, UART_IMSC, __uart_getreg(bas, UART_IMSC) &
283 uart_pl011_param(bas, baudrate, databits, stopbits, parity);
287 uart_pl011_term(struct uart_bas *bas)
306 uart_pl011_putc(struct uart_bas *bas, int c)
310 while (__uart_getreg(bas, UART_FR) & FR_TXFF)
312 __uart_setreg(bas, UART_DR, c & 0xff);
316 uart_pl011_rxready(struct uart_bas *bas)
319 return !(__uart_getreg(bas, UART_FR) & FR_RXFE);
323 uart_pl011_getc(struct uart_bas *bas, struct mtx *hwmtx)
327 while (!uart_pl011_rxready(bas))
329 c = __uart_getreg(bas, UART_DR) & 0xff;
407 struct uart_bas *bas;
410 bas = &sc->sc_bas;
414 __uart_setreg(bas, UART_IMSC, psc->imsc);
417 __uart_setreg(bas, UART_ICR, IMSC_MASK_ALL);
469 struct uart_bas *bas;
474 bas = &sc->sc_bas;
477 ints = __uart_getreg(bas, UART_MIS);
491 __uart_setreg(bas, UART_IMSC, psc->imsc & ~UART_TXEMPTY);
572 struct uart_bas *bas;
576 bas = &sc->sc_bas;
580 ints = __uart_getreg(bas, UART_FR);
588 xc = __uart_getreg(bas, UART_DR);
615 struct uart_bas *bas;
619 bas = &sc->sc_bas;
623 __uart_setreg(bas, UART_DR, sc->sc_txbuf[i]);
624 uart_barrier(bas);
629 __uart_setreg(bas, UART_IMSC, psc->imsc);
640 struct uart_bas *bas;
643 bas = &sc->sc_bas;
647 __uart_setreg(bas, UART_IMSC, psc->imsc & ~IMSC_MASK_ALL);
655 struct uart_bas *bas;
658 bas = &sc->sc_bas;
662 __uart_setreg(bas, UART_IMSC, psc->imsc);