summaryrefslogtreecommitdiff
path: root/drivers/usb/serial/xr_serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/xr_serial.c')
-rw-r--r--drivers/usb/serial/xr_serial.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/serial/xr_serial.c b/drivers/usb/serial/xr_serial.c
index 183731cd2ef7..f67e7dba9509 100644
--- a/drivers/usb/serial/xr_serial.c
+++ b/drivers/usb/serial/xr_serial.c
@@ -502,6 +502,7 @@ static void xr_set_termios(struct tty_struct *tty,
static int xr_open(struct tty_struct *tty, struct usb_serial_port *port)
{
+ u8 gpio_dir;
int ret;
ret = xr_uart_enable(port);
@@ -510,6 +511,13 @@ static int xr_open(struct tty_struct *tty, struct usb_serial_port *port)
return ret;
}
+ /*
+ * Configure DTR and RTS as outputs and RI, CD, DSR and CTS as
+ * inputs.
+ */
+ gpio_dir = XR21V141X_UART_MODE_DTR | XR21V141X_UART_MODE_RTS;
+ xr_set_reg_uart(port, XR21V141X_REG_GPIO_DIR, gpio_dir);
+
/* Setup termios */
if (tty)
xr_set_termios(tty, port, NULL);