| From 6ec2f46c4b4abf48c88c0ae7c476f347b97e1105 Mon Sep 17 00:00:00 2001 |
| From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> |
| Date: Sat, 29 Jan 2011 15:32:52 +0100 |
| Subject: USB: ftdi_sio: add ST Micro Connect Lite uart support |
| |
| From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> |
| |
| commit 6ec2f46c4b4abf48c88c0ae7c476f347b97e1105 upstream. |
| |
| on ST Micro Connect Lite we have 4 port |
| Part A and B for the JTAG |
| Port C Uart |
| Port D for PIO |
| |
| Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/usb/serial/ftdi_sio.c | 26 ++++++++++++++++++++++++++ |
| drivers/usb/serial/ftdi_sio_ids.h | 6 ++++++ |
| 2 files changed, 32 insertions(+) |
| |
| --- a/drivers/usb/serial/ftdi_sio.c |
| +++ b/drivers/usb/serial/ftdi_sio.c |
| @@ -104,6 +104,7 @@ struct ftdi_sio_quirk { |
| static int ftdi_jtag_probe(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_stmclite_probe(struct usb_serial *serial); |
| static void ftdi_USB_UIRT_setup(struct ftdi_private *priv); |
| static void ftdi_HE_TIRA1_setup(struct ftdi_private *priv); |
| |
| @@ -127,6 +128,10 @@ static struct ftdi_sio_quirk ftdi_HE_TIR |
| .port_probe = ftdi_HE_TIRA1_setup, |
| }; |
| |
| +static struct ftdi_sio_quirk ftdi_stmclite_quirk = { |
| + .probe = ftdi_stmclite_probe, |
| +}; |
| + |
| /* |
| * The 8U232AM has the same API as the sio except for: |
| * - it can support MUCH higher baudrates; up to: |
| @@ -815,6 +820,8 @@ static struct usb_device_id id_table_com |
| { USB_DEVICE(FTDI_VID, FTDI_DOTEC_PID) }, |
| { USB_DEVICE(QIHARDWARE_VID, MILKYMISTONE_JTAGSERIAL_PID), |
| .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, |
| + { USB_DEVICE(ST_VID, ST_STMCLT1030_PID), |
| + .driver_info = (kernel_ulong_t)&ftdi_stmclite_quirk }, |
| { }, /* Optional parameter entry */ |
| { } /* Terminating entry */ |
| }; |
| @@ -1748,6 +1755,25 @@ static int ftdi_jtag_probe(struct usb_se |
| } |
| |
| /* |
| + * First and second port on STMCLiteadaptors is reserved for JTAG interface |
| + * and the forth port for pio |
| + */ |
| +static int ftdi_stmclite_probe(struct usb_serial *serial) |
| +{ |
| + struct usb_device *udev = serial->dev; |
| + struct usb_interface *interface = serial->interface; |
| + |
| + dbg("%s", __func__); |
| + |
| + if (interface == udev->actconfig->interface[2]) |
| + return 0; |
| + |
| + dev_info(&udev->dev, "Ignoring serial port reserved for JTAG\n"); |
| + |
| + return -ENODEV; |
| +} |
| + |
| +/* |
| * The Matrix Orbital VK204-25-USB has an invalid IN endpoint. |
| * We have to correct it if we want to read from it. |
| */ |
| --- a/drivers/usb/serial/ftdi_sio_ids.h |
| +++ b/drivers/usb/serial/ftdi_sio_ids.h |
| @@ -1041,6 +1041,12 @@ |
| #define WHT_PID 0x0004 /* Wireless Handheld Terminal */ |
| |
| /* |
| + * STMicroelectonics |
| + */ |
| +#define ST_VID 0x0483 |
| +#define ST_STMCLT1030_PID 0x3747 /* ST Micro Connect Lite STMCLT1030 */ |
| + |
| +/* |
| * Papouch products (http://www.papouch.com/) |
| * Submitted by Folkert van Heusden |
| */ |