Lines Matching refs:bas

54 uart_setmreg(struct uart_bas *bas, int reg, int val)  in uart_setmreg()  argument
57 uart_setreg(bas, REG_CTRL, reg); in uart_setmreg()
58 uart_barrier(bas); in uart_setmreg()
59 uart_setreg(bas, REG_CTRL, val); in uart_setmreg()
63 uart_getmreg(struct uart_bas *bas, int reg) in uart_getmreg() argument
66 uart_setreg(bas, REG_CTRL, reg); in uart_getmreg()
67 uart_barrier(bas); in uart_getmreg()
68 return (uart_getreg(bas, REG_CTRL)); in uart_getmreg()
95 z8530_param(struct uart_bas *bas, int baudrate, int databits, int stopbits, in z8530_param() argument
127 divisor = z8530_divisor(bas->rclk, baudrate); in z8530_param()
133 uart_setmreg(bas, WR_MCB2, UART_PCLK); in z8530_param()
134 uart_barrier(bas); in z8530_param()
137 uart_setmreg(bas, WR_TCL, divisor & 0xff); in z8530_param()
138 uart_barrier(bas); in z8530_param()
139 uart_setmreg(bas, WR_TCH, (divisor >> 8) & 0xff); in z8530_param()
140 uart_barrier(bas); in z8530_param()
143 uart_setmreg(bas, WR_RPC, rpc); in z8530_param()
144 uart_barrier(bas); in z8530_param()
145 uart_setmreg(bas, WR_MPM, mpm); in z8530_param()
146 uart_barrier(bas); in z8530_param()
147 uart_setmreg(bas, WR_TPC, tpc); in z8530_param()
148 uart_barrier(bas); in z8530_param()
149 uart_setmreg(bas, WR_MCB2, UART_PCLK | MCB2_BRGE); in z8530_param()
150 uart_barrier(bas); in z8530_param()
156 z8530_setup(struct uart_bas *bas, int baudrate, int databits, int stopbits, in z8530_setup() argument
161 if (bas->rclk == 0) in z8530_setup()
162 bas->rclk = DEFAULT_RCLK; in z8530_setup()
165 switch (bas->chan) { in z8530_setup()
167 uart_setmreg(bas, WR_MIC, MIC_NV | MIC_CRA); in z8530_setup()
170 uart_setmreg(bas, WR_MIC, MIC_NV | MIC_CRB); in z8530_setup()
173 uart_barrier(bas); in z8530_setup()
175 uart_setmreg(bas, WR_CMC, CMC_RC_BRG | CMC_TC_BRG); in z8530_setup()
176 uart_setmreg(bas, WR_MCB2, UART_PCLK); in z8530_setup()
177 uart_barrier(bas); in z8530_setup()
179 uart_setmreg(bas, WR_MCB1, MCB1_NRZ); in z8530_setup()
180 uart_barrier(bas); in z8530_setup()
183 z8530_param(bas, baudrate, databits, stopbits, parity, &tpc); in z8530_setup()
190 static int z8530_probe(struct uart_bas *bas);
191 static void z8530_init(struct uart_bas *bas, int, int, int, int);
192 static void z8530_term(struct uart_bas *bas);
193 static void z8530_putc(struct uart_bas *bas, int);
194 static int z8530_rxready(struct uart_bas *bas);
195 static int z8530_getc(struct uart_bas *bas, struct mtx *);
207 z8530_probe(struct uart_bas *bas) in z8530_probe() argument
214 z8530_init(struct uart_bas *bas, int baudrate, int databits, int stopbits, in z8530_init() argument
218 z8530_setup(bas, baudrate, databits, stopbits, parity); in z8530_init()
222 z8530_term(struct uart_bas *bas) in z8530_term() argument
227 z8530_putc(struct uart_bas *bas, int c) in z8530_putc() argument
230 while (!(uart_getreg(bas, REG_CTRL) & BES_TXE)) in z8530_putc()
232 uart_setreg(bas, REG_DATA, c); in z8530_putc()
233 uart_barrier(bas); in z8530_putc()
237 z8530_rxready(struct uart_bas *bas) in z8530_rxready() argument
240 return ((uart_getreg(bas, REG_CTRL) & BES_RXA) != 0 ? 1 : 0); in z8530_rxready()
244 z8530_getc(struct uart_bas *bas, struct mtx *hwmtx) in z8530_getc() argument
250 while (!(uart_getreg(bas, REG_CTRL) & BES_RXA)) { in z8530_getc()
256 c = uart_getreg(bas, REG_DATA); in z8530_getc()
325 struct uart_bas *bas; in z8530_bus_attach() local
328 bas = &sc->sc_bas; in z8530_bus_attach()
332 z8530_param(bas, di->baudrate, di->databits, di->stopbits, in z8530_bus_attach()
335 z8530->tpc = z8530_setup(bas, 9600, 8, 1, UART_PARITY_NONE); in z8530_bus_attach()
342 uart_setmreg(bas, WR_IC, IC_BRK | IC_CTS | IC_DCD); in z8530_bus_attach()
343 uart_barrier(bas); in z8530_bus_attach()
344 uart_setmreg(bas, WR_IDT, IDT_XIE | IDT_TIE | IDT_RIA); in z8530_bus_attach()
345 uart_barrier(bas); in z8530_bus_attach()
346 uart_setmreg(bas, WR_IV, 0); in z8530_bus_attach()
347 uart_barrier(bas); in z8530_bus_attach()
348 uart_setmreg(bas, WR_TPC, z8530->tpc); in z8530_bus_attach()
349 uart_barrier(bas); in z8530_bus_attach()
350 uart_setmreg(bas, WR_MIC, MIC_NV | MIC_MIE); in z8530_bus_attach()
351 uart_barrier(bas); in z8530_bus_attach()
393 struct uart_bas *bas; in z8530_bus_ioctl() local
396 bas = &sc->sc_bas; in z8530_bus_ioctl()
405 uart_setmreg(bas, WR_TPC, z8530->tpc); in z8530_bus_ioctl()
406 uart_barrier(bas); in z8530_bus_ioctl()
409 divisor = uart_getmreg(bas, RR_TCH); in z8530_bus_ioctl()
410 divisor = (divisor << 8) | uart_getmreg(bas, RR_TCL); in z8530_bus_ioctl()
411 baudrate = bas->rclk / 2 / (divisor + 2); in z8530_bus_ioctl()
426 struct uart_bas *bas; in z8530_bus_ipend() local
431 bas = &sc->sc_bas; in z8530_bus_ipend()
435 switch (bas->chan) { in z8530_bus_ipend()
437 ip = uart_getmreg(bas, RR_IP); in z8530_bus_ipend()
440 iv = uart_getmreg(bas, RR_IV) & 0x0E; in z8530_bus_ipend()
457 uart_setreg(bas, REG_CTRL, CR_RSTTXI); in z8530_bus_ipend()
458 uart_barrier(bas); in z8530_bus_ipend()
466 uart_setreg(bas, REG_CTRL, CR_RSTXSI); in z8530_bus_ipend()
467 uart_barrier(bas); in z8530_bus_ipend()
468 bes = uart_getmreg(bas, RR_BES); in z8530_bus_ipend()
477 src = uart_getmreg(bas, RR_SRC); in z8530_bus_ipend()
479 uart_setreg(bas, REG_CTRL, CR_RSTERR); in z8530_bus_ipend()
480 uart_barrier(bas); in z8530_bus_ipend()
486 uart_setreg(bas, REG_CTRL, CR_RSTIUS); in z8530_bus_ipend()
487 uart_barrier(bas); in z8530_bus_ipend()
531 struct uart_bas *bas; in z8530_bus_receive() local
535 bas = &sc->sc_bas; in z8530_bus_receive()
537 bes = uart_getmreg(bas, RR_BES); in z8530_bus_receive()
543 xc = uart_getreg(bas, REG_DATA); in z8530_bus_receive()
544 uart_barrier(bas); in z8530_bus_receive()
545 src = uart_getmreg(bas, RR_SRC); in z8530_bus_receive()
554 uart_setreg(bas, REG_CTRL, CR_RSTERR); in z8530_bus_receive()
555 uart_barrier(bas); in z8530_bus_receive()
557 bes = uart_getmreg(bas, RR_BES); in z8530_bus_receive()
561 (void)uart_getreg(bas, REG_DATA); in z8530_bus_receive()
562 uart_barrier(bas); in z8530_bus_receive()
563 src = uart_getmreg(bas, RR_SRC); in z8530_bus_receive()
565 uart_setreg(bas, REG_CTRL, CR_RSTERR); in z8530_bus_receive()
566 uart_barrier(bas); in z8530_bus_receive()
568 bes = uart_getmreg(bas, RR_BES); in z8530_bus_receive()
578 struct uart_bas *bas; in z8530_bus_setsig() local
581 bas = &sc->sc_bas; in z8530_bus_setsig()
604 uart_setmreg(bas, WR_TPC, z8530->tpc); in z8530_bus_setsig()
605 uart_barrier(bas); in z8530_bus_setsig()
614 struct uart_bas *bas; in z8530_bus_transmit() local
616 bas = &sc->sc_bas; in z8530_bus_transmit()
618 while (!(uart_getmreg(bas, RR_BES) & BES_TXE)) in z8530_bus_transmit()
620 uart_setreg(bas, REG_DATA, sc->sc_txbuf[0]); in z8530_bus_transmit()
621 uart_barrier(bas); in z8530_bus_transmit()
631 struct uart_bas *bas; in z8530_bus_grab() local
633 bas = &sc->sc_bas; in z8530_bus_grab()
635 uart_setmreg(bas, WR_IDT, IDT_XIE | IDT_TIE); in z8530_bus_grab()
636 uart_barrier(bas); in z8530_bus_grab()
643 struct uart_bas *bas; in z8530_bus_ungrab() local
645 bas = &sc->sc_bas; in z8530_bus_ungrab()
647 uart_setmreg(bas, WR_IDT, IDT_XIE | IDT_TIE | IDT_RIA); in z8530_bus_ungrab()
648 uart_barrier(bas); in z8530_bus_ungrab()