void ubsa_break(struct ubsa_softc *sc, int portno, int onoff) { DPRINTF(("ubsa_rts: onoff = %d\n", onoff)); ubsa_request(sc, portno, UBSA_SET_BREAK, onoff ? 1 : 0); }
static void ubsa_stopbits(struct ubsa_softc *sc, tcflag_t cflag) { int value; DPRINTF(("ubsa_stopbits: cflag = 0x%x\n", cflag)); value = (cflag & CSTOPB) ? 1 : 0; ubsa_request(sc, UBSA_SET_STOP_BITS, value); }
static void ubsa_rts(struct ubsa_softc *sc, int onoff) { DPRINTF(("ubsa_rts: onoff = %d\n", onoff)); if (sc->sc_rts == onoff) return; sc->sc_rts = onoff; ubsa_request(sc, UBSA_SET_RTS, onoff ? 1 : 0); }
static void ubsa_dtr(struct ubsa_softc *sc, int onoff) { DPRINTF(("ubsa_dtr: onoff = %d\n", onoff)); if (sc->sc_dtr == onoff) return; sc->sc_dtr = onoff; ubsa_request(sc, UBSA_SET_DTR, onoff ? 1 : 0); }
void ubsa_quadumts_rts(struct ubsa_softc *sc, int portno, int onoff) { DPRINTF(("ubsa_rts: onoff = %d\n", onoff)); if (sc->sc_rts == onoff) return; sc->sc_rts = onoff; ubsa_request(sc, portno, UBSA_QUADUMTS_SET_PIN, (sc->sc_rts ? 2 : 0)+(sc->sc_dtr ? 1 : 0)); }
static void ubsa_parity(struct ubsa_softc *sc, tcflag_t cflag) { int value; DPRINTF(("ubsa_parity: cflag = 0x%x\n", cflag)); if (cflag & PARENB) value = (cflag & PARODD) ? UBSA_PARITY_ODD : UBSA_PARITY_EVEN; else value = UBSA_PARITY_NONE; ubsa_request(sc, UBSA_SET_PARITY, value); }
static void ubsa_flow(struct ubsa_softc *sc, tcflag_t cflag, tcflag_t iflag) { int value; DPRINTF(("ubsa_flow: cflag = 0x%x, iflag = 0x%x\n", cflag, iflag)); value = 0; if (cflag & CRTSCTS) value |= UBSA_FLOW_OCTS | UBSA_FLOW_IRTS; if (iflag & (IXON|IXOFF)) value |= UBSA_FLOW_OXON | UBSA_FLOW_IXON; ubsa_request(sc, UBSA_SET_FLOW_CTRL, value); }
static void ubsa_databits(struct ubsa_softc *sc, tcflag_t cflag) { int value; DPRINTF(("ubsa_databits: cflag = 0x%x\n", cflag)); switch (cflag & CSIZE) { case CS5: value = 0; break; case CS6: value = 1; break; case CS7: value = 2; break; case CS8: value = 3; break; default: device_printf(sc->sc_ucom.sc_dev, "ubsa_param: unsupported " "databits requested, forcing default of 8\n"); value = 3; } ubsa_request(sc, UBSA_SET_DATA_BITS, value); }
void ubsa_databits(struct ubsa_softc *sc, tcflag_t cflag) { int value; DPRINTF(("ubsa_databits: cflag = 0x%x\n", cflag)); switch (cflag & CSIZE) { case CS5: value = 0; break; case CS6: value = 1; break; case CS7: value = 2; break; case CS8: value = 3; break; default: DPRINTF(("%s: ubsa_param: unsupported databits requested, " "forcing default of 8\n", sc->sc_dev.dv_xname)); value = 3; } ubsa_request(sc, UBSA_SET_DATA_BITS, value); }
void ubsa_baudrate(struct ubsa_softc *sc, speed_t speed) { u_int16_t value = 0; DPRINTF(("ubsa_baudrate: speed = %d\n", speed)); switch(speed) { case B0: break; case B300: case B600: case B1200: case B2400: case B4800: case B9600: case B19200: case B38400: case B57600: case B115200: case B230400: value = B230400 / speed; break; default: DPRINTF(("%s: ubsa_param: unsupported baudrate, " "forcing default of 9600\n", sc->sc_dev.dv_xname)); value = B230400 / B9600; break; }; if (speed == B0) { ubsa_flow(sc, 0, 0); ubsa_dtr(sc, 0); ubsa_rts(sc, 0); } else ubsa_request(sc, UBSA_SET_BAUDRATE, value); }