Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6ec2f46c authored by Jean-Christophe PLAGNIOL-VILLARD's avatar Jean-Christophe PLAGNIOL-VILLARD Committed by Greg Kroah-Hartman
Browse files

USB: ftdi_sio: add ST Micro Connect Lite uart support



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: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent c25f6b15
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -100,6 +100,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);

@@ -123,6 +124,10 @@ static struct ftdi_sio_quirk ftdi_HE_TIRA1_quirk = {
	.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:
@@ -810,6 +815,8 @@ static struct usb_device_id id_table_combined [] = {
	{ 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 */
};
@@ -1708,6 +1715,25 @@ static int ftdi_jtag_probe(struct usb_serial *serial)
	return 0;
}

/*
 * 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.
+6 −0
Original line number Diff line number Diff line
@@ -1033,6 +1033,12 @@
#define STB_PID			0x0001 /* Sensor Terminal Board */
#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