diff options
Diffstat (limited to 'drivers/usb/serial/ftdi_sio.c')
-rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index e8dbde55f6c5..2e06b90aa1f8 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -179,6 +179,7 @@ static struct usb_device_id id_table_combined [] = { | |||
179 | { USB_DEVICE(FTDI_VID, FTDI_232RL_PID) }, | 179 | { USB_DEVICE(FTDI_VID, FTDI_232RL_PID) }, |
180 | { USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) }, | 180 | { USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) }, |
181 | { USB_DEVICE(FTDI_VID, FTDI_4232H_PID) }, | 181 | { USB_DEVICE(FTDI_VID, FTDI_4232H_PID) }, |
182 | { USB_DEVICE(FTDI_VID, FTDI_232H_PID) }, | ||
182 | { USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) }, | 183 | { USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) }, |
183 | { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) }, | 184 | { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) }, |
184 | { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, | 185 | { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, |
@@ -647,6 +648,7 @@ static struct usb_device_id id_table_combined [] = { | |||
647 | { USB_DEVICE(FTDI_VID, EVER_ECO_PRO_CDS) }, | 648 | { USB_DEVICE(FTDI_VID, EVER_ECO_PRO_CDS) }, |
648 | { USB_DEVICE(FTDI_VID, FTDI_4N_GALAXY_DE_1_PID) }, | 649 | { USB_DEVICE(FTDI_VID, FTDI_4N_GALAXY_DE_1_PID) }, |
649 | { USB_DEVICE(FTDI_VID, FTDI_4N_GALAXY_DE_2_PID) }, | 650 | { USB_DEVICE(FTDI_VID, FTDI_4N_GALAXY_DE_2_PID) }, |
651 | { USB_DEVICE(FTDI_VID, FTDI_4N_GALAXY_DE_3_PID) }, | ||
650 | { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_0_PID) }, | 652 | { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_0_PID) }, |
651 | { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_1_PID) }, | 653 | { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_1_PID) }, |
652 | { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_2_PID) }, | 654 | { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_2_PID) }, |
@@ -847,7 +849,8 @@ static const char *ftdi_chip_name[] = { | |||
847 | [FT2232C] = "FT2232C", | 849 | [FT2232C] = "FT2232C", |
848 | [FT232RL] = "FT232RL", | 850 | [FT232RL] = "FT232RL", |
849 | [FT2232H] = "FT2232H", | 851 | [FT2232H] = "FT2232H", |
850 | [FT4232H] = "FT4232H" | 852 | [FT4232H] = "FT4232H", |
853 | [FT232H] = "FT232H" | ||
851 | }; | 854 | }; |
852 | 855 | ||
853 | 856 | ||
@@ -1167,6 +1170,7 @@ static __u32 get_ftdi_divisor(struct tty_struct *tty, | |||
1167 | break; | 1170 | break; |
1168 | case FT2232H: /* FT2232H chip */ | 1171 | case FT2232H: /* FT2232H chip */ |
1169 | case FT4232H: /* FT4232H chip */ | 1172 | case FT4232H: /* FT4232H chip */ |
1173 | case FT232H: /* FT232H chip */ | ||
1170 | if ((baud <= 12000000) & (baud >= 1200)) { | 1174 | if ((baud <= 12000000) & (baud >= 1200)) { |
1171 | div_value = ftdi_2232h_baud_to_divisor(baud); | 1175 | div_value = ftdi_2232h_baud_to_divisor(baud); |
1172 | } else if (baud < 1200) { | 1176 | } else if (baud < 1200) { |
@@ -1428,9 +1432,12 @@ static void ftdi_determine_type(struct usb_serial_port *port) | |||
1428 | } else if (version < 0x600) { | 1432 | } else if (version < 0x600) { |
1429 | /* Assume it's an FT232BM (or FT245BM) */ | 1433 | /* Assume it's an FT232BM (or FT245BM) */ |
1430 | priv->chip_type = FT232BM; | 1434 | priv->chip_type = FT232BM; |
1431 | } else { | 1435 | } else if (version < 0x900) { |
1432 | /* Assume it's an FT232R */ | 1436 | /* Assume it's an FT232RL */ |
1433 | priv->chip_type = FT232RL; | 1437 | priv->chip_type = FT232RL; |
1438 | } else { | ||
1439 | /* Assume it's an FT232H */ | ||
1440 | priv->chip_type = FT232H; | ||
1434 | } | 1441 | } |
1435 | dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]); | 1442 | dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]); |
1436 | } | 1443 | } |
@@ -1558,7 +1565,8 @@ static int create_sysfs_attrs(struct usb_serial_port *port) | |||
1558 | priv->chip_type == FT2232C || | 1565 | priv->chip_type == FT2232C || |
1559 | priv->chip_type == FT232RL || | 1566 | priv->chip_type == FT232RL || |
1560 | priv->chip_type == FT2232H || | 1567 | priv->chip_type == FT2232H || |
1561 | priv->chip_type == FT4232H)) { | 1568 | priv->chip_type == FT4232H || |
1569 | priv->chip_type == FT232H)) { | ||
1562 | retval = device_create_file(&port->dev, | 1570 | retval = device_create_file(&port->dev, |
1563 | &dev_attr_latency_timer); | 1571 | &dev_attr_latency_timer); |
1564 | } | 1572 | } |
@@ -1579,7 +1587,8 @@ static void remove_sysfs_attrs(struct usb_serial_port *port) | |||
1579 | priv->chip_type == FT2232C || | 1587 | priv->chip_type == FT2232C || |
1580 | priv->chip_type == FT232RL || | 1588 | priv->chip_type == FT232RL || |
1581 | priv->chip_type == FT2232H || | 1589 | priv->chip_type == FT2232H || |
1582 | priv->chip_type == FT4232H) { | 1590 | priv->chip_type == FT4232H || |
1591 | priv->chip_type == FT232H) { | ||
1583 | device_remove_file(&port->dev, &dev_attr_latency_timer); | 1592 | device_remove_file(&port->dev, &dev_attr_latency_timer); |
1584 | } | 1593 | } |
1585 | } | 1594 | } |
@@ -2211,6 +2220,7 @@ static int ftdi_tiocmget(struct tty_struct *tty) | |||
2211 | case FT232RL: | 2220 | case FT232RL: |
2212 | case FT2232H: | 2221 | case FT2232H: |
2213 | case FT4232H: | 2222 | case FT4232H: |
2223 | case FT232H: | ||
2214 | len = 2; | 2224 | len = 2; |
2215 | break; | 2225 | break; |
2216 | default: | 2226 | default: |