USB: ftdi_sio: add Calao reference board support
Calao use on there dev kits a FT2232 where the port 0 is used for the JTAG and port 1 for the UART They use the same VID and PID as FTDI Chip but they program the manufacturer name in the eeprom So use this information to detect it Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: Gregory Hermant <gregory.hermant@calao-systems.com> Cc: Alan Cox <alan@linux.intel.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
6118514e87
commit
c96fbdd0ab
|
@ -101,6 +101,7 @@ static int ftdi_jtag_probe(struct usb_serial *serial);
|
||||||
static int ftdi_mtxorb_hack_setup(struct usb_serial *serial);
|
static int ftdi_mtxorb_hack_setup(struct usb_serial *serial);
|
||||||
static int ftdi_NDI_device_setup(struct usb_serial *serial);
|
static int ftdi_NDI_device_setup(struct usb_serial *serial);
|
||||||
static int ftdi_stmclite_probe(struct usb_serial *serial);
|
static int ftdi_stmclite_probe(struct usb_serial *serial);
|
||||||
|
static int ftdi_8u2232c_probe(struct usb_serial *serial);
|
||||||
static void ftdi_USB_UIRT_setup(struct ftdi_private *priv);
|
static void ftdi_USB_UIRT_setup(struct ftdi_private *priv);
|
||||||
static void ftdi_HE_TIRA1_setup(struct ftdi_private *priv);
|
static void ftdi_HE_TIRA1_setup(struct ftdi_private *priv);
|
||||||
|
|
||||||
|
@ -128,6 +129,10 @@ static struct ftdi_sio_quirk ftdi_stmclite_quirk = {
|
||||||
.probe = ftdi_stmclite_probe,
|
.probe = ftdi_stmclite_probe,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct ftdi_sio_quirk ftdi_8u2232c_quirk = {
|
||||||
|
.probe = ftdi_8u2232c_probe,
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The 8U232AM has the same API as the sio except for:
|
* The 8U232AM has the same API as the sio except for:
|
||||||
* - it can support MUCH higher baudrates; up to:
|
* - it can support MUCH higher baudrates; up to:
|
||||||
|
@ -178,7 +183,8 @@ static struct usb_device_id id_table_combined [] = {
|
||||||
{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) },
|
{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) },
|
||||||
{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) },
|
{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) },
|
||||||
{ USB_DEVICE(FTDI_VID, FTDI_232RL_PID) },
|
{ USB_DEVICE(FTDI_VID, FTDI_232RL_PID) },
|
||||||
{ USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) },
|
{ USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) ,
|
||||||
|
.driver_info = (kernel_ulong_t)&ftdi_8u2232c_quirk },
|
||||||
{ USB_DEVICE(FTDI_VID, FTDI_4232H_PID) },
|
{ USB_DEVICE(FTDI_VID, FTDI_4232H_PID) },
|
||||||
{ USB_DEVICE(FTDI_VID, FTDI_232H_PID) },
|
{ USB_DEVICE(FTDI_VID, FTDI_232H_PID) },
|
||||||
{ USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },
|
{ USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },
|
||||||
|
@ -1737,6 +1743,18 @@ static int ftdi_jtag_probe(struct usb_serial *serial)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ftdi_8u2232c_probe(struct usb_serial *serial)
|
||||||
|
{
|
||||||
|
struct usb_device *udev = serial->dev;
|
||||||
|
|
||||||
|
dbg("%s", __func__);
|
||||||
|
|
||||||
|
if (strcmp(udev->manufacturer, "CALAO Systems") == 0)
|
||||||
|
return ftdi_jtag_probe(serial);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* First and second port on STMCLiteadaptors is reserved for JTAG interface
|
* First and second port on STMCLiteadaptors is reserved for JTAG interface
|
||||||
* and the forth port for pio
|
* and the forth port for pio
|
||||||
|
|
Loading…
Reference in New Issue