Lines Matching refs:port
26 { USB_DEVICE(0x1934, 0x0706) } /* 1 port UART device */
29 { USB_DEVICE(0x2c42, 0x1602) }, /* In-Box 2 port UART device */ \
30 { USB_DEVICE(0x2c42, 0x1604) }, /* In-Box 4 port UART device */ \
31 { USB_DEVICE(0x2c42, 0x1605) }, /* In-Box 8 port UART device */ \
32 { USB_DEVICE(0x2c42, 0x1606) }, /* In-Box 12 port UART device */ \
34 { USB_DEVICE(0x2c42, 0x1632) }, /* 2 port UART device */ \
35 { USB_DEVICE(0x2c42, 0x1634) }, /* 4 port UART device */ \
36 { USB_DEVICE(0x2c42, 0x1635) }, /* 8 port UART device */ \
37 { USB_DEVICE(0x2c42, 0x1636) } /* 12 port UART device */
105 /* Serial port self GPIO control, 2bytes [control&output data][input data] */
124 struct usb_serial_port *port;
136 static int f81232_get_register(struct usb_serial_port *port, u16 reg, u8 *val)
139 struct usb_device *dev = port->serial->dev;
152 dev_err(&port->dev, "%s failed status: %d\n", __func__, status);
159 static int f81232_set_register(struct usb_serial_port *port, u16 reg, u8 val)
162 struct usb_device *dev = port->serial->dev;
175 dev_err(&port->dev, "%s failed status: %d\n", __func__, status);
182 static int f81232_set_mask_register(struct usb_serial_port *port, u16 reg,
188 status = f81232_get_register(port, reg, &tmp);
194 return f81232_set_register(port, reg, tmp);
197 static void f81232_read_msr(struct usb_serial_port *port)
202 struct f81232_private *priv = usb_get_serial_port_data(port);
205 status = f81232_get_register(port, MODEM_STATUS_REGISTER,
208 dev_err(&port->dev, "%s fail, status: %d\n", __func__, status);
221 port->icount.cts++;
223 port->icount.dsr++;
225 port->icount.rng++;
227 port->icount.dcd++;
228 tty = tty_port_tty_get(&port->port);
230 usb_serial_handle_dcd_change(port, tty,
237 wake_up_interruptible(&port->port.delta_msr_wait);
241 static int f81232_set_mctrl(struct usb_serial_port *port,
246 struct f81232_private *priv = usb_get_serial_port_data(port);
270 dev_dbg(&port->dev, "%s new:%02x old:%02x\n", __func__,
273 status = f81232_set_register(port, MODEM_CONTROL_REGISTER, val);
275 dev_err(&port->dev, "%s set MCR status < 0\n", __func__);
286 static void f81232_update_line_status(struct usb_serial_port *port,
290 struct f81232_private *priv = usb_get_serial_port_data(port);
297 dev_dbg(&port->dev, "IIR: MSR Change: %02x\n", data[0]);
306 dev_dbg(&port->dev, "IIR: LSR Change: %02x\n", data[0]);
313 struct usb_serial_port *port = urb->context;
327 dev_dbg(&port->dev, "%s - urb shutting down with status: %d\n",
331 dev_dbg(&port->dev, "%s - nonzero urb status received: %d\n",
336 usb_serial_debug_data(&port->dev, __func__,
339 f81232_update_line_status(port, data, actual_length);
349 static char f81232_handle_lsr(struct usb_serial_port *port, u8 lsr)
351 struct f81232_private *priv = usb_get_serial_port_data(port);
359 port->icount.brk++;
360 usb_serial_handle_break(port);
363 port->icount.parity++;
366 port->icount.frame++;
370 port->icount.overrun++;
372 tty_insert_flip_char(&port->port, 0, TTY_OVERRUN);
380 struct usb_serial_port *port = urb->context;
387 * When opening the port we get a 1-byte packet with the current LSR,
397 tty_flag = f81232_handle_lsr(port, lsr);
399 if (port->sysrq) {
400 if (usb_serial_handle_sysrq_char(port, data[i + 1]))
404 tty_insert_flip_char(&port->port, data[i + 1], tty_flag);
407 tty_flip_buffer_push(&port->port);
412 struct usb_serial_port *port = urb->context;
420 dev_err(&port->dev, "short message received: %d\n",
427 dev_err(&port->dev, "malformed message received: %d (%d)\n",
434 tty_flag = f81232_handle_lsr(port, lsr);
436 if (port->sysrq) {
438 if (!usb_serial_handle_sysrq_char(port, data[i])) {
439 tty_insert_flip_char(&port->port, data[i],
444 tty_insert_flip_string_fixed_flag(&port->port, &data[1],
448 tty_flip_buffer_push(&port->port);
453 struct usb_serial_port *port = tty->driver_data;
454 struct f81232_private *priv = usb_get_serial_port_data(port);
464 status = f81232_set_register(port, LINE_CONTROL_REGISTER,
467 dev_err(&port->dev, "set break failed: %d\n", status);
488 struct usb_serial_port *port, speed_t baudrate,
491 struct f81232_private *priv = usb_get_serial_port_data(port);
519 status = f81232_set_mask_register(port, F81232_CLK_REGISTER,
522 dev_err(&port->dev, "%s failed to set CLK_REG: %d\n",
527 status = f81232_get_register(port, LINE_CONTROL_REGISTER,
530 dev_err(&port->dev, "%s failed to get LCR: %d\n",
535 status = f81232_set_register(port, LINE_CONTROL_REGISTER,
538 dev_err(&port->dev, "%s failed to set DLAB: %d\n",
543 status = f81232_set_register(port, RECEIVE_BUFFER_REGISTER,
546 dev_err(&port->dev, "%s failed to set baudrate MSB: %d\n",
551 status = f81232_set_register(port, INTERRUPT_ENABLE_REGISTER,
554 dev_err(&port->dev, "%s failed to set baudrate LSB: %d\n",
559 status = f81232_set_register(port, LINE_CONTROL_REGISTER,
562 dev_err(&port->dev, "%s failed to set DLAB: %d\n",
567 static int f81232_port_enable(struct usb_serial_port *port)
576 status = f81232_set_register(port, FIFO_CONTROL_REGISTER, val);
578 dev_err(&port->dev, "%s failed to set FCR: %d\n",
584 status = f81232_set_register(port, INTERRUPT_ENABLE_REGISTER,
587 dev_err(&port->dev, "%s failed to set IER: %d\n",
595 static int f81232_port_disable(struct usb_serial_port *port)
599 status = f81232_set_register(port, INTERRUPT_ENABLE_REGISTER, 0);
601 dev_err(&port->dev, "%s failed to set IER: %d\n",
610 struct usb_serial_port *port,
613 struct f81232_private *priv = usb_get_serial_port_data(port);
624 f81232_set_mctrl(port, 0, TIOCM_DTR | TIOCM_RTS);
626 f81232_set_mctrl(port, TIOCM_DTR | TIOCM_RTS, 0);
635 f81232_set_baudrate(tty, port, baudrate, old_baud);
656 status = f81232_set_register(port, LINE_CONTROL_REGISTER, new_lcr);
658 dev_err(&port->dev, "%s failed to set LCR: %d\n",
670 struct usb_serial_port *port = tty->driver_data;
671 struct f81232_private *port_priv = usb_get_serial_port_data(port);
675 f81232_read_msr(port);
695 struct usb_serial_port *port = tty->driver_data;
697 return f81232_set_mctrl(port, set, clear);
700 static int f81232_open(struct tty_struct *tty, struct usb_serial_port *port)
704 result = f81232_port_enable(port);
710 f81232_set_termios(tty, port, NULL);
712 result = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL);
714 dev_err(&port->dev, "%s - failed submitting interrupt urb,"
719 result = usb_serial_generic_open(tty, port);
721 usb_kill_urb(port->interrupt_in_urb);
728 static int f81534a_open(struct tty_struct *tty, struct usb_serial_port *port)
737 status = f81232_set_mask_register(port, F81534A_MODE_REG, mask, val);
739 dev_err(&port->dev, "failed to set MODE_REG: %d\n", status);
743 return f81232_open(tty, port);
746 static void f81232_close(struct usb_serial_port *port)
748 struct f81232_private *port_priv = usb_get_serial_port_data(port);
750 f81232_port_disable(port);
751 usb_serial_generic_close(port);
752 usb_kill_urb(port->interrupt_in_urb);
757 static void f81232_dtr_rts(struct usb_serial_port *port, int on)
760 f81232_set_mctrl(port, TIOCM_DTR | TIOCM_RTS, 0);
762 f81232_set_mctrl(port, 0, TIOCM_DTR | TIOCM_RTS);
765 static bool f81232_tx_empty(struct usb_serial_port *port)
770 status = f81232_get_register(port, LINE_STATUS_REGISTER, &tmp);
779 static int f81232_carrier_raised(struct usb_serial_port *port)
782 struct f81232_private *priv = usb_get_serial_port_data(port);
795 struct usb_serial_port *port = tty->driver_data;
796 struct f81232_private *priv = usb_get_serial_port_data(port);
806 f81232_read_msr(priv->port);
812 struct usb_serial_port *port;
817 port = priv->port;
819 status = f81232_get_register(port, LINE_STATUS_REGISTER, &tmp);
821 dev_warn(&port->dev, "read LSR failed: %d\n", status);
867 * 0: maintain all serial port enabled state.
868 * 1: disable all serial port.
869 * bit 0~11 : Serial port enable bit.
900 static int f81232_port_probe(struct usb_serial_port *port)
904 priv = devm_kzalloc(&port->dev, sizeof(*priv), GFP_KERNEL);
912 usb_set_serial_port_data(port, priv);
914 priv->port = port;
919 static int f81534a_port_probe(struct usb_serial_port *port)
924 status = f81232_set_register(port, F81534A_GPIO_REG,
929 return f81232_port_probe(port);
934 struct usb_serial_port *port = serial->port[0];
935 struct f81232_private *port_priv = usb_get_serial_port_data(port);
938 for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i)
939 usb_kill_urb(port->read_urbs[i]);
941 usb_kill_urb(port->interrupt_in_urb);
953 struct usb_serial_port *port = serial->port[0];
956 if (tty_port_initialized(&port->port)) {
957 result = usb_submit_urb(port->interrupt_in_urb, GFP_NOIO);
959 dev_err(&port->dev, "submit interrupt urb failed: %d\n",