aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/serial/ftdi_sio.c20
-rw-r--r--drivers/usb/serial/ftdi_sio.h3
-rw-r--r--drivers/usb/serial/ftdi_sio_ids.h1
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
163enum ftdi_sio_baudrate { 164enum 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