|
@@ -188,6 +188,7 @@ static struct usb_device_id id_table_combined [] = {
|
|
|
.driver_info = (kernel_ulong_t)&ftdi_8u2232c_quirk },
|
|
|
{ USB_DEVICE(FTDI_VID, FTDI_4232H_PID) },
|
|
|
{ USB_DEVICE(FTDI_VID, FTDI_232H_PID) },
|
|
|
+ { USB_DEVICE(FTDI_VID, FTDI_FTX_PID) },
|
|
|
{ USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },
|
|
|
{ USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) },
|
|
|
{ USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) },
|
|
@@ -873,7 +874,8 @@ static const char *ftdi_chip_name[] = {
|
|
|
[FT232RL] = "FT232RL",
|
|
|
[FT2232H] = "FT2232H",
|
|
|
[FT4232H] = "FT4232H",
|
|
|
- [FT232H] = "FT232H"
|
|
|
+ [FT232H] = "FT232H",
|
|
|
+ [FTX] = "FT-X"
|
|
|
};
|
|
|
|
|
|
|
|
@@ -1177,7 +1179,8 @@ static __u32 get_ftdi_divisor(struct tty_struct *tty,
|
|
|
break;
|
|
|
case FT232BM: /* FT232BM chip */
|
|
|
case FT2232C: /* FT2232C chip */
|
|
|
- case FT232RL:
|
|
|
+ case FT232RL: /* FT232RL chip */
|
|
|
+ case FTX: /* FT-X series */
|
|
|
if (baud <= 3000000) {
|
|
|
__u16 product_id = le16_to_cpu(
|
|
|
port->serial->dev->descriptor.idProduct);
|
|
@@ -1466,10 +1469,14 @@ static void ftdi_determine_type(struct usb_serial_port *port)
|
|
|
} else if (version < 0x900) {
|
|
|
/* Assume it's an FT232RL */
|
|
|
priv->chip_type = FT232RL;
|
|
|
- } else {
|
|
|
+ } else if (version < 0x1000) {
|
|
|
/* Assume it's an FT232H */
|
|
|
priv->chip_type = FT232H;
|
|
|
+ } else {
|
|
|
+ /* Assume it's an FT-X series device */
|
|
|
+ priv->chip_type = FTX;
|
|
|
}
|
|
|
+
|
|
|
dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]);
|
|
|
}
|
|
|
|
|
@@ -1597,7 +1604,8 @@ static int create_sysfs_attrs(struct usb_serial_port *port)
|
|
|
priv->chip_type == FT232RL ||
|
|
|
priv->chip_type == FT2232H ||
|
|
|
priv->chip_type == FT4232H ||
|
|
|
- priv->chip_type == FT232H)) {
|
|
|
+ priv->chip_type == FT232H ||
|
|
|
+ priv->chip_type == FTX)) {
|
|
|
retval = device_create_file(&port->dev,
|
|
|
&dev_attr_latency_timer);
|
|
|
}
|
|
@@ -1619,7 +1627,8 @@ static void remove_sysfs_attrs(struct usb_serial_port *port)
|
|
|
priv->chip_type == FT232RL ||
|
|
|
priv->chip_type == FT2232H ||
|
|
|
priv->chip_type == FT4232H ||
|
|
|
- priv->chip_type == FT232H) {
|
|
|
+ priv->chip_type == FT232H ||
|
|
|
+ priv->chip_type == FTX) {
|
|
|
device_remove_file(&port->dev, &dev_attr_latency_timer);
|
|
|
}
|
|
|
}
|
|
@@ -2297,6 +2306,7 @@ static int ftdi_tiocmget(struct tty_struct *tty)
|
|
|
case FT2232H:
|
|
|
case FT4232H:
|
|
|
case FT232H:
|
|
|
+ case FTX:
|
|
|
len = 2;
|
|
|
break;
|
|
|
default:
|