diff options
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 20 | ||||
-rw-r--r-- | drivers/usb/serial/ftdi_sio.h | 3 | ||||
-rw-r--r-- | drivers/usb/serial/ftdi_sio_ids.h | 1 |
3 files changed, 18 insertions, 6 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 4c53236f9baf..793479495f66 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -188,6 +188,7 @@ static struct usb_device_id id_table_combined [] = { | |||
188 | .driver_info = (kernel_ulong_t)&ftdi_8u2232c_quirk }, | 188 | .driver_info = (kernel_ulong_t)&ftdi_8u2232c_quirk }, |
189 | { USB_DEVICE(FTDI_VID, FTDI_4232H_PID) }, | 189 | { USB_DEVICE(FTDI_VID, FTDI_4232H_PID) }, |
190 | { USB_DEVICE(FTDI_VID, FTDI_232H_PID) }, | 190 | { USB_DEVICE(FTDI_VID, FTDI_232H_PID) }, |
191 | { USB_DEVICE(FTDI_VID, FTDI_FTX_PID) }, | ||
191 | { USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) }, | 192 | { USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) }, |
192 | { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) }, | 193 | { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) }, |
193 | { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, | 194 | { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, |
@@ -873,7 +874,8 @@ static const char *ftdi_chip_name[] = { | |||
873 | [FT232RL] = "FT232RL", | 874 | [FT232RL] = "FT232RL", |
874 | [FT2232H] = "FT2232H", | 875 | [FT2232H] = "FT2232H", |
875 | [FT4232H] = "FT4232H", | 876 | [FT4232H] = "FT4232H", |
876 | [FT232H] = "FT232H" | 877 | [FT232H] = "FT232H", |
878 | [FTX] = "FT-X" | ||
877 | }; | 879 | }; |
878 | 880 | ||
879 | 881 | ||
@@ -1177,7 +1179,8 @@ static __u32 get_ftdi_divisor(struct tty_struct *tty, | |||
1177 | break; | 1179 | break; |
1178 | case FT232BM: /* FT232BM chip */ | 1180 | case FT232BM: /* FT232BM chip */ |
1179 | case FT2232C: /* FT2232C chip */ | 1181 | case FT2232C: /* FT2232C chip */ |
1180 | case FT232RL: | 1182 | case FT232RL: /* FT232RL chip */ |
1183 | case FTX: /* FT-X series */ | ||
1181 | if (baud <= 3000000) { | 1184 | if (baud <= 3000000) { |
1182 | __u16 product_id = le16_to_cpu( | 1185 | __u16 product_id = le16_to_cpu( |
1183 | port->serial->dev->descriptor.idProduct); | 1186 | port->serial->dev->descriptor.idProduct); |
@@ -1466,10 +1469,14 @@ static void ftdi_determine_type(struct usb_serial_port *port) | |||
1466 | } else if (version < 0x900) { | 1469 | } else if (version < 0x900) { |
1467 | /* Assume it's an FT232RL */ | 1470 | /* Assume it's an FT232RL */ |
1468 | priv->chip_type = FT232RL; | 1471 | priv->chip_type = FT232RL; |
1469 | } else { | 1472 | } else if (version < 0x1000) { |
1470 | /* Assume it's an FT232H */ | 1473 | /* Assume it's an FT232H */ |
1471 | priv->chip_type = FT232H; | 1474 | priv->chip_type = FT232H; |
1475 | } else { | ||
1476 | /* Assume it's an FT-X series device */ | ||
1477 | priv->chip_type = FTX; | ||
1472 | } | 1478 | } |
1479 | |||
1473 | dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]); | 1480 | dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]); |
1474 | } | 1481 | } |
1475 | 1482 | ||
@@ -1597,7 +1604,8 @@ static int create_sysfs_attrs(struct usb_serial_port *port) | |||
1597 | priv->chip_type == FT232RL || | 1604 | priv->chip_type == FT232RL || |
1598 | priv->chip_type == FT2232H || | 1605 | priv->chip_type == FT2232H || |
1599 | priv->chip_type == FT4232H || | 1606 | priv->chip_type == FT4232H || |
1600 | priv->chip_type == FT232H)) { | 1607 | priv->chip_type == FT232H || |
1608 | priv->chip_type == FTX)) { | ||
1601 | retval = device_create_file(&port->dev, | 1609 | retval = device_create_file(&port->dev, |
1602 | &dev_attr_latency_timer); | 1610 | &dev_attr_latency_timer); |
1603 | } | 1611 | } |
@@ -1619,7 +1627,8 @@ static void remove_sysfs_attrs(struct usb_serial_port *port) | |||
1619 | priv->chip_type == FT232RL || | 1627 | priv->chip_type == FT232RL || |
1620 | priv->chip_type == FT2232H || | 1628 | priv->chip_type == FT2232H || |
1621 | priv->chip_type == FT4232H || | 1629 | priv->chip_type == FT4232H || |
1622 | priv->chip_type == FT232H) { | 1630 | priv->chip_type == FT232H || |
1631 | priv->chip_type == FTX) { | ||
1623 | device_remove_file(&port->dev, &dev_attr_latency_timer); | 1632 | device_remove_file(&port->dev, &dev_attr_latency_timer); |
1624 | } | 1633 | } |
1625 | } | 1634 | } |
@@ -2297,6 +2306,7 @@ static int ftdi_tiocmget(struct tty_struct *tty) | |||
2297 | case FT2232H: | 2306 | case FT2232H: |
2298 | case FT4232H: | 2307 | case FT4232H: |
2299 | case FT232H: | 2308 | case FT232H: |
2309 | case FTX: | ||
2300 | len = 2; | 2310 | len = 2; |
2301 | break; | 2311 | break; |
2302 | default: | 2312 | default: |
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h index 19584faa86f9..ed58c6fa8dbe 100644 --- a/drivers/usb/serial/ftdi_sio.h +++ b/drivers/usb/serial/ftdi_sio.h | |||
@@ -157,7 +157,8 @@ enum ftdi_chip_type { | |||
157 | FT232RL = 5, | 157 | FT232RL = 5, |
158 | FT2232H = 6, | 158 | FT2232H = 6, |
159 | FT4232H = 7, | 159 | FT4232H = 7, |
160 | FT232H = 8 | 160 | FT232H = 8, |
161 | FTX = 9, | ||
161 | }; | 162 | }; |
162 | 163 | ||
163 | enum ftdi_sio_baudrate { | 164 | enum ftdi_sio_baudrate { |
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h index ae55ca8a199b..37d783a2e789 100644 --- a/drivers/usb/serial/ftdi_sio_ids.h +++ b/drivers/usb/serial/ftdi_sio_ids.h | |||
@@ -23,6 +23,7 @@ | |||
23 | #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ | 23 | #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ |
24 | #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ | 24 | #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ |
25 | #define FTDI_232H_PID 0x6014 /* Single channel hi-speed device */ | 25 | #define FTDI_232H_PID 0x6014 /* Single channel hi-speed device */ |
26 | #define FTDI_FTX_PID 0x6015 /* FT-X series (FT201X, FT230X, FT231X, etc) */ | ||
26 | #define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ | 27 | #define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ |
27 | #define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ | 28 | #define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ |
28 | 29 | ||