diff options
Diffstat (limited to 'drivers/usb/serial/ftdi_sio.c')
| -rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 19 | 
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 16272897755..2e06b90aa1f 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 [] = {  	{ USB_DEVICE(FTDI_VID, FTDI_232RL_PID) },  	{ USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) },  	{ USB_DEVICE(FTDI_VID, FTDI_4232H_PID) }, +	{ USB_DEVICE(FTDI_VID, FTDI_232H_PID) },  	{ USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },  	{ USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) },  	{ USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, @@ -848,7 +849,8 @@ static const char *ftdi_chip_name[] = {  	[FT2232C] = "FT2232C",  	[FT232RL] = "FT232RL",  	[FT2232H] = "FT2232H", -	[FT4232H] = "FT4232H" +	[FT4232H] = "FT4232H", +	[FT232H]  = "FT232H"  }; @@ -1168,6 +1170,7 @@ static __u32 get_ftdi_divisor(struct tty_struct *tty,  		break;  	case FT2232H: /* FT2232H chip */  	case FT4232H: /* FT4232H chip */ +	case FT232H:  /* FT232H chip */  		if ((baud <= 12000000) & (baud >= 1200)) {  			div_value = ftdi_2232h_baud_to_divisor(baud);  		} else if (baud < 1200) { @@ -1429,9 +1432,12 @@ static void ftdi_determine_type(struct usb_serial_port *port)  	} else if (version < 0x600) {  		/* Assume it's an FT232BM (or FT245BM) */  		priv->chip_type = FT232BM; -	} else { -		/* Assume it's an FT232R */ +	} else if (version < 0x900) { +		/* Assume it's an FT232RL */  		priv->chip_type = FT232RL; +	} else { +		/* Assume it's an FT232H */ +		priv->chip_type = FT232H;  	}  	dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]);  } @@ -1559,7 +1565,8 @@ static int create_sysfs_attrs(struct usb_serial_port *port)  		     priv->chip_type == FT2232C ||  		     priv->chip_type == FT232RL ||  		     priv->chip_type == FT2232H || -		     priv->chip_type == FT4232H)) { +		     priv->chip_type == FT4232H || +		     priv->chip_type == FT232H)) {  			retval = device_create_file(&port->dev,  						    &dev_attr_latency_timer);  		} @@ -1580,7 +1587,8 @@ static void remove_sysfs_attrs(struct usb_serial_port *port)  		    priv->chip_type == FT2232C ||  		    priv->chip_type == FT232RL ||  		    priv->chip_type == FT2232H || -		    priv->chip_type == FT4232H) { +		    priv->chip_type == FT4232H || +                    priv->chip_type == FT232H) {  			device_remove_file(&port->dev, &dev_attr_latency_timer);  		}  	} @@ -2212,6 +2220,7 @@ static int ftdi_tiocmget(struct tty_struct *tty)  	case FT232RL:  	case FT2232H:  	case FT4232H: +	case FT232H:  		len = 2;  		break;  	default:  |