Lines Matching defs:bas

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