aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/serial/ftdi_sio.c21
-rw-r--r--drivers/usb/serial/ftdi_sio.h11
2 files changed, 24 insertions, 8 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 1382af97db72..7200eaeb513b 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -309,12 +309,12 @@ struct ftdi_sio_quirk {
309 void (*port_probe)(struct ftdi_private *); /* Special settings for probed ports. */ 309 void (*port_probe)(struct ftdi_private *); /* Special settings for probed ports. */
310}; 310};
311 311
312static int ftdi_olimex_probe (struct usb_serial *serial); 312static int ftdi_jtag_probe (struct usb_serial *serial);
313static void ftdi_USB_UIRT_setup (struct ftdi_private *priv); 313static void ftdi_USB_UIRT_setup (struct ftdi_private *priv);
314static void ftdi_HE_TIRA1_setup (struct ftdi_private *priv); 314static void ftdi_HE_TIRA1_setup (struct ftdi_private *priv);
315 315
316static struct ftdi_sio_quirk ftdi_olimex_quirk = { 316static struct ftdi_sio_quirk ftdi_jtag_quirk = {
317 .probe = ftdi_olimex_probe, 317 .probe = ftdi_jtag_probe,
318}; 318};
319 319
320static struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = { 320static struct ftdi_sio_quirk ftdi_USB_UIRT_quirk = {
@@ -570,7 +570,11 @@ static struct usb_device_id id_table_combined [] = {
570 { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) }, 570 { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) },
571 { USB_DEVICE(FTDI_VID, FTDI_ELSTER_UNICOM_PID) }, 571 { USB_DEVICE(FTDI_VID, FTDI_ELSTER_UNICOM_PID) },
572 { USB_DEVICE(OLIMEX_VID, OLIMEX_ARM_USB_OCD_PID), 572 { USB_DEVICE(OLIMEX_VID, OLIMEX_ARM_USB_OCD_PID),
573 .driver_info = (kernel_ulong_t)&ftdi_olimex_quirk }, 573 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
574 { USB_DEVICE(FIC_VID, FIC_NEO1973_DEBUG_PID),
575 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
576 { USB_DEVICE(FTDI_VID, FTDI_OOCDLINK_PID),
577 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
574 { }, /* Optional parameter entry */ 578 { }, /* Optional parameter entry */
575 { } /* Terminating entry */ 579 { } /* Terminating entry */
576}; 580};
@@ -1283,10 +1287,11 @@ static void ftdi_HE_TIRA1_setup (struct ftdi_private *priv)
1283} /* ftdi_HE_TIRA1_setup */ 1287} /* ftdi_HE_TIRA1_setup */
1284 1288
1285/* 1289/*
1286 * First port on Olimex arm-usb-ocd is reserved for JTAG interface 1290 * First port on JTAG adaptors such as Olimex arm-usb-ocd or the FIC/OpenMoko
1287 * and can be accessed from userspace using openocd. 1291 * Neo1973 Debug Board is reserved for JTAG interface and can be accessed from
1292 * userspace using openocd.
1288 */ 1293 */
1289static int ftdi_olimex_probe(struct usb_serial *serial) 1294static int ftdi_jtag_probe(struct usb_serial *serial)
1290{ 1295{
1291 struct usb_device *udev = serial->dev; 1296 struct usb_device *udev = serial->dev;
1292 struct usb_interface *interface = serial->interface; 1297 struct usb_interface *interface = serial->interface;
@@ -1294,7 +1299,7 @@ static int ftdi_olimex_probe(struct usb_serial *serial)
1294 dbg("%s",__FUNCTION__); 1299 dbg("%s",__FUNCTION__);
1295 1300
1296 if (interface == udev->actconfig->interface[0]) { 1301 if (interface == udev->actconfig->interface[0]) {
1297 info("Ignoring reserved serial port on Olimex arm-usb-ocd\n"); 1302 info("Ignoring serial port reserved for JTAG");
1298 return -ENODEV; 1303 return -ENODEV;
1299 } 1304 }
1300 1305
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
index f6053daf02fb..6eee2ab914ec 100644
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -98,6 +98,10 @@
98#define FTDI_MTXORB_5_PID 0xFA05 /* Matrix Orbital Product Id */ 98#define FTDI_MTXORB_5_PID 0xFA05 /* Matrix Orbital Product Id */
99#define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */ 99#define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */
100 100
101/* OOCDlink by Joern Kaipf <joernk@web.de>
102 * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */
103#define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */
104
101/* Interbiometrics USB I/O Board */ 105/* Interbiometrics USB I/O Board */
102/* Developed for Interbiometrics by Rudolf Gugler */ 106/* Developed for Interbiometrics by Rudolf Gugler */
103#define INTERBIOMETRICS_VID 0x1209 107#define INTERBIOMETRICS_VID 0x1209
@@ -560,6 +564,13 @@
560 564
561 565
562/* 566/*
567 * FIC / OpenMoko, Inc. http://wiki.openmoko.org/wiki/Neo1973_Debug_Board_v3
568 * Submitted by Harald Welte <laforge@openmoko.org>
569 */
570#define FIC_VID 0x1457
571#define FIC_NEO1973_DEBUG_PID 0x5118
572
573/*
563 * BmRequestType: 1100 0000b 574 * BmRequestType: 1100 0000b
564 * bRequest: FTDI_E2_READ 575 * bRequest: FTDI_E2_READ
565 * wValue: 0 576 * wValue: 0