diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2009-12-22 14:43:35 -0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-12-22 14:43:35 -0800 |
| commit | 66b961e9446097d3edeba4da06fa2f770a721cdf (patch) | |
| tree | f733c73bd0a9d9dfb47f03d785786794049b6e77 | |
| parent | 52a248c714fb17267c89520a4a854b0f65de998c (diff) | |
| download | patches-66b961e9446097d3edeba4da06fa2f770a721cdf.tar.gz | |
musb crap
29 files changed, 4999 insertions, 7 deletions
diff --git a/driver-core.current/devtmpfs-unlock-mutex-in-case-of-string-allocation-error.patch b/driver-core.current/devtmpfs-unlock-mutex-in-case-of-string-allocation-error.patch new file mode 100644 index 00000000000000..f2943a31a59398 --- /dev/null +++ b/driver-core.current/devtmpfs-unlock-mutex-in-case-of-string-allocation-error.patch @@ -0,0 +1,41 @@ +From kay.sievers@vrfy.org Tue Dec 22 14:05:56 2009 +From: Kay Sievers <kay.sievers@vrfy.org> +Date: Tue, 22 Dec 2009 22:25:16 +0100 +Subject: devtmpfs: unlock mutex in case of string allocation error +To: "Kirill A. Shutemov" <kirill@shutemov.name> +Cc: Greg Kroah-Hartman <gregkh@suse.de>, linux-kernel@vger.kernel.org +Message-ID: <1261517116.2101.2.camel@yio.site> + +From: Kay Sievers <kay.sievers@vrfy.org> + +Reported-by: Kirill A. Shutemov <kirill@shutemov.name> +Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/base/devtmpfs.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +--- a/drivers/base/devtmpfs.c ++++ b/drivers/base/devtmpfs.c +@@ -101,8 +101,10 @@ static int create_path(const char *nodep + + /* parent directories do not exist, create them */ + path = kstrdup(nodepath, GFP_KERNEL); +- if (!path) +- return -ENOMEM; ++ if (!path) { ++ err = -ENOMEM; ++ goto out; ++ } + s = path; + for (;;) { + s = strchr(s, '/'); +@@ -117,6 +119,7 @@ static int create_path(const char *nodep + } + kfree(path); + } ++out: + mutex_unlock(&dirlock); + return err; + } @@ -18,6 +18,7 @@ driver-core.current/driver-core-driver_attribute-parameters-can-often-be-const.p driver-core.current/drivers-base-fix-error-path.patch driver-core.current/driver-core-prevent-reference-to-freed-memory-on-error-path.patch driver-core.current/driver-core-export-platform_device_register_data-as-a-gpl-symbol.patch +driver-core.current/devtmpfs-unlock-mutex-in-case-of-string-allocation-error.patch ################################# # TTY patches for 2.6.33 @@ -37,6 +38,24 @@ usb.current/usb-emi62-fix-crash-when-trying-to-load-emi-6-2-firmware.patch usb.current/usb-fix-section-mismatch-in-early-ehci-dbgp.patch usb.current/usb-add-device-id-for-apple-cinema-display-23in-2007.patch usb.current/usb-core-fix-recent-kernel-doc-warnings.patch +usb.current/usb-ftdi_sio-isolate-all-device-ids-to-new-ftdi_sio_ids.h-header.patch +usb.current/usb-ftdi_sio-sort-pid-vid-entries-in-new-ftdi_sio_ids.h-header.patch +usb.current/usb-musb_gadget-fix-kernel-oops-in-txstate.patch +usb.current/usb-musb-move-musb_remove-to-__exit.patch +usb.current/usb-musb-fix-compiling-warning-with-min-macro.patch +usb.current/usb-musb-maintainers-fix-my-tree-s-address.patch +usb.current/usb-musb-populate-the-vbus-gpio-with-the-correct-gpio-number.patch +usb.current/usb-musb-gadget-set-otg-tranceiver-to-idle-when-registering-gadget.patch +usb.current/usb-musb-do-not-work-if-no-gadget-driver-is-loaded.patch +usb.current/usb-musb-fix-for-crash-in-dm646x-usb-when-cppi-dma-is-enabled.patch +usb.current/usb-musb-gadget_ep0-avoid-setupend-interrupt.patch +usb.current/usb-musb-correct-dma-address-for-tx.patch +usb.current/usb-musb-fix-null-pointer-dereference-issue.patch +usb.current/usb-musb-fix-array-index-out-of-bounds-issue.patch +usb.current/usb-musb-workaround-blackfin-fifo-anomalies.patch +usb.current/usb-otg-isp1301_omap-fix-compile-error.patch +usb.current/usb-audio-gadget-fix-wtotallength-calculation.patch +usb.current/usb-audio-gadget-free-alsa-devices-when-unloading.patch ################################# # Staging patches for 2.6.33 @@ -141,7 +160,6 @@ usb/usb-at91_udc.c-use-resource_size.patch usb/usb-ehci-orion.c-use-resource_size.patch usb/usb-ehci-atmel.c-use-resource_size.patch usb/usb-ehci-au1xxx.c-use-platform_get_resource-and-resource_size.patch -usb/usb-otg-isp1301_omap-fix-compile-error.patch usb/usb-cdc-acm-update-to-new-autopm-api.patch usb/usb-xhci-no-gfp_kernel-in-block-error-handling.patch usb/usb-wusb-check-chid-is-all-zeros-before-stopping-the-host.patch @@ -157,6 +175,11 @@ usb/usb-host-sl811-fix-unaligned-accesses.patch usb/usb-host-sl811-allow-the-hcd-on-blackfin-systems.patch usb/usb-gadget-use-ep5-for-bulk-in-and-ep6-for-bulk-out-for-blackfin-musb.patch usb/usb-gadget-add-int-support-for-blackfin-musb.patch +usb/usb-musb-use-resource_size.patch +usb/usb-musb-move-two-printk-to-dev_err.patch +usb/usb-musb-move-to-sysfs_groups.patch +usb/usb-musb-remove-some-of-the-never-defined-defines.patch +usb/usb-musb-get-rid-of-musb-set_clock.patch @@ -236,3 +259,4 @@ staging/staging-prism2-usb-build-should-select-wireless_ext.patch staging/staging-wlan-ng-initialise-mibitem.patch + diff --git a/usb.current/usb-audio-gadget-fix-wtotallength-calculation.patch b/usb.current/usb-audio-gadget-fix-wtotallength-calculation.patch new file mode 100644 index 00000000000000..458537092251a1 --- /dev/null +++ b/usb.current/usb-audio-gadget-fix-wtotallength-calculation.patch @@ -0,0 +1,43 @@ +From vapier@gentoo.org Tue Dec 22 14:41:14 2009 +From: Cliff Cai <cliff.cai@analog.com> +Date: Wed, 9 Dec 2009 22:21:12 -0500 +Subject: USB: audio gadget: fix wTotalLength calculation +To: linux-usb@vger.kernel.org, Greg Kroah-Hartman <gregkh@suse.de> +Cc: uclinux-dist-devel@blackfin.uclinux.org, Cliff Cai <cliff.cai@analog.com> +Message-ID: <1260415272-25211-1-git-send-email-vapier@gentoo.org> + + +From: Cliff Cai <cliff.cai@analog.com> + +The wTotalLength should contain the sum of the interface and unit +descriptor sizes per the Audio Device Class specification 1.0. + +Reported-by: Sergey Lapin <slapin@ossfans.org> +Signed-off-by: Cliff Cai <cliff.cai@analog.com> +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/gadget/f_audio.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/drivers/usb/gadget/f_audio.c ++++ b/drivers/usb/gadget/f_audio.c +@@ -56,13 +56,16 @@ static struct usb_interface_descriptor a + DECLARE_UAC_AC_HEADER_DESCRIPTOR(2); + + #define UAC_DT_AC_HEADER_LENGTH UAC_DT_AC_HEADER_SIZE(F_AUDIO_NUM_INTERFACES) ++/* 1 input terminal, 1 output terminal and 1 feature unit */ ++#define UAC_DT_TOTAL_LENGTH (UAC_DT_AC_HEADER_LENGTH + UAC_DT_INPUT_TERMINAL_SIZE \ ++ + UAC_DT_OUTPUT_TERMINAL_SIZE + UAC_DT_FEATURE_UNIT_SIZE(0)) + /* B.3.2 Class-Specific AC Interface Descriptor */ + static struct uac_ac_header_descriptor_2 ac_header_desc = { + .bLength = UAC_DT_AC_HEADER_LENGTH, + .bDescriptorType = USB_DT_CS_INTERFACE, + .bDescriptorSubtype = UAC_HEADER, + .bcdADC = __constant_cpu_to_le16(0x0100), +- .wTotalLength = __constant_cpu_to_le16(UAC_DT_AC_HEADER_LENGTH), ++ .wTotalLength = __constant_cpu_to_le16(UAC_DT_TOTAL_LENGTH), + .bInCollection = F_AUDIO_NUM_INTERFACES, + .baInterfaceNr = { + [0] = F_AUDIO_AC_INTERFACE, diff --git a/usb.current/usb-audio-gadget-free-alsa-devices-when-unloading.patch b/usb.current/usb-audio-gadget-free-alsa-devices-when-unloading.patch new file mode 100644 index 00000000000000..1cac9f688caa14 --- /dev/null +++ b/usb.current/usb-audio-gadget-free-alsa-devices-when-unloading.patch @@ -0,0 +1,88 @@ +From vapier@gentoo.org Tue Dec 22 14:41:30 2009 +From: Cliff Cai <cliff.cai@analog.com> +Date: Wed, 9 Dec 2009 22:28:39 -0500 +Subject: USB: audio gadget: free alsa devices when unloading +To: linux-usb@vger.kernel.org, Greg Kroah-Hartman <gregkh@suse.de> +Cc: uclinux-dist-devel@blackfin.uclinux.org, Cliff Cai <cliff.cai@analog.com> +Message-ID: <1260415719-25552-1-git-send-email-vapier@gentoo.org> + + +From: Cliff Cai <cliff.cai@analog.com> + +Signed-off-by: Cliff Cai <cliff.cai@analog.com> +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/gadget/audio.c | 1 + + drivers/usb/gadget/f_audio.c | 2 +- + drivers/usb/gadget/u_audio.c | 12 +++++++++--- + drivers/usb/gadget/u_audio.h | 2 +- + 4 files changed, 12 insertions(+), 5 deletions(-) + +--- a/drivers/usb/gadget/audio.c ++++ b/drivers/usb/gadget/audio.c +@@ -158,6 +158,7 @@ fail: + + static int __exit audio_unbind(struct usb_composite_dev *cdev) + { ++ gaudio_cleanup(); + return 0; + } + +--- a/drivers/usb/gadget/f_audio.c ++++ b/drivers/usb/gadget/f_audio.c +@@ -792,7 +792,7 @@ int __init audio_bind_config(struct usb_ + return status; + + add_fail: +- gaudio_cleanup(&audio->card); ++ gaudio_cleanup(); + setup_fail: + kfree(audio); + return status; +--- a/drivers/usb/gadget/u_audio.c ++++ b/drivers/usb/gadget/u_audio.c +@@ -288,6 +288,7 @@ static int gaudio_close_snd_dev(struct g + return 0; + } + ++static struct gaudio *the_card; + /** + * gaudio_setup - setup ALSA interface and preparing for USB transfer + * +@@ -303,6 +304,9 @@ int __init gaudio_setup(struct gaudio *c + if (ret) + ERROR(card, "we need at least one control device\n"); + ++ if (!the_card) ++ the_card = card; ++ + return ret; + + } +@@ -312,9 +316,11 @@ int __init gaudio_setup(struct gaudio *c + * + * This is called to free all resources allocated by @gaudio_setup(). + */ +-void gaudio_cleanup(struct gaudio *card) ++void gaudio_cleanup(void) + { +- if (card) +- gaudio_close_snd_dev(card); ++ if (the_card) { ++ gaudio_close_snd_dev(the_card); ++ the_card = NULL; ++ } + } + +--- a/drivers/usb/gadget/u_audio.h ++++ b/drivers/usb/gadget/u_audio.h +@@ -51,6 +51,6 @@ struct gaudio { + }; + + int gaudio_setup(struct gaudio *card); +-void gaudio_cleanup(struct gaudio *card); ++void gaudio_cleanup(void); + + #endif /* __U_AUDIO_H */ diff --git a/usb.current/usb-ftdi_sio-isolate-all-device-ids-to-new-ftdi_sio_ids.h-header.patch b/usb.current/usb-ftdi_sio-isolate-all-device-ids-to-new-ftdi_sio_ids.h-header.patch new file mode 100644 index 00000000000000..f0344f92724b7e --- /dev/null +++ b/usb.current/usb-ftdi_sio-isolate-all-device-ids-to-new-ftdi_sio_ids.h-header.patch @@ -0,0 +1,1988 @@ +From andi@lisas.de Tue Dec 22 14:22:55 2009 +From: Andreas Mohr <andi@lisas.de> +Date: Wed, 16 Dec 2009 21:45:10 +0100 +Subject: USB: ftdi_sio: isolate all device IDs to new ftdi_sio_ids.h header +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: kuba@mareimbrium.org, linux-usb@vger.kernel.org +Message-ID: <20091216204509.GA24516@rhlx01.hs-esslingen.de> +Content-Disposition: inline + + +This is a strictly move-only patch to relocate all FTDI device +product ID definitions to their own ftdi_sio_ids.h header +(following the usual *_ids.h kernel tree convention, too), +thus correcting the slightly too messy appearance +(crucial driver defines were stuck somewhere in the decaying middle swamp +of the huge existing header). + +Compile-tested, based on latest mainline git. + +Signed-off-by: Andreas Mohr <andi@lisas.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + + +--- + drivers/usb/serial/ftdi_sio.c | 1 + drivers/usb/serial/ftdi_sio.h | 959 -------------------------------------- + drivers/usb/serial/ftdi_sio_ids.h | 959 ++++++++++++++++++++++++++++++++++++++ + 3 files changed, 964 insertions(+), 955 deletions(-) + +--- a/drivers/usb/serial/ftdi_sio.c ++++ b/drivers/usb/serial/ftdi_sio.c +@@ -44,6 +44,7 @@ + #include <linux/serial.h> + #include <linux/usb/serial.h> + #include "ftdi_sio.h" ++#include "ftdi_sio_ids.h" + + /* + * Version Information +--- a/drivers/usb/serial/ftdi_sio.h ++++ b/drivers/usb/serial/ftdi_sio.h +@@ -1,7 +1,10 @@ + /* +- * Definitions for the FTDI USB Single Port Serial Converter - ++ * Driver definitions for the FTDI USB Single Port Serial Converter - + * known as FTDI_SIO (Serial Input/Output application of the chipset) + * ++ * For USB vendor/product IDs (VID/PID), please see ftdi_sio_ids.h ++ * ++ * + * The example I have is known as the USC-1000 which is available from + * http://www.dse.co.nz - cat no XH4214 It looks similar to this: + * http://www.dansdata.com/usbser.htm but I can't be sure There are other +@@ -17,880 +20,7 @@ + * Bill Ryder - bryder@sgi.com formerly of Silicon Graphics, Inc.- wrote the + * FTDI_SIO implementation. + * +- * Philipp Gühring - pg@futureware.at - added the Device ID of the USB relais +- * from Rudolf Gugler +- * +- */ +- +-#define FTDI_VID 0x0403 /* Vendor Id */ +-#define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ +-#define FTDI_8U232AM_PID 0x6001 /* Similar device to SIO above */ +-#define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */ +-#define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ +-#define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ +-#define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ +-#define FTDI_RELAIS_PID 0xFA10 /* Relais device from Rudolf Gugler */ +-#define FTDI_NF_RIC_VID 0x0DCD /* Vendor Id */ +-#define FTDI_NF_RIC_PID 0x0001 /* Product Id */ +-#define FTDI_USBX_707_PID 0xF857 /* ADSTech IR Blaster USBX-707 */ +- +-/* Larsen and Brusgaard AltiTrack/USBtrack */ +-#define LARSENBRUSGAARD_VID 0x0FD8 +-#define LB_ALTITRACK_PID 0x0001 +- +-/* www.canusb.com Lawicel CANUSB device */ +-#define FTDI_CANUSB_PID 0xFFA8 /* Product Id */ +- +-/* AlphaMicro Components AMC-232USB01 device */ +-#define FTDI_AMC232_PID 0xFF00 /* Product Id */ +- +-/* www.candapter.com Ewert Energy Systems CANdapter device */ +-#define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ +- +-/* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */ +-/* the VID is the standard ftdi vid (FTDI_VID) */ +-#define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */ +-#define FTDI_SCS_DEVICE_1_PID 0xD011 /* SCS Tracker / DSP TNC */ +-#define FTDI_SCS_DEVICE_2_PID 0xD012 +-#define FTDI_SCS_DEVICE_3_PID 0xD013 +-#define FTDI_SCS_DEVICE_4_PID 0xD014 +-#define FTDI_SCS_DEVICE_5_PID 0xD015 +-#define FTDI_SCS_DEVICE_6_PID 0xD016 +-#define FTDI_SCS_DEVICE_7_PID 0xD017 +- +-/* ACT Solutions HomePro ZWave interface (http://www.act-solutions.com/HomePro.htm) */ +-#define FTDI_ACTZWAVE_PID 0xF2D0 +- +- +-/* www.starting-point-systems.com µChameleon device */ +-#define FTDI_MICRO_CHAMELEON_PID 0xCAA0 /* Product Id */ +- +-/* www.irtrans.de device */ +-#define FTDI_IRTRANS_PID 0xFC60 /* Product Id */ +- +- +-/* www.thoughttechnology.com/ TT-USB provide with procomp use ftdi_sio */ +-#define FTDI_TTUSB_PID 0xFF20 /* Product Id */ +- +-/* iPlus device */ +-#define FTDI_IPLUS_PID 0xD070 /* Product Id */ +-#define FTDI_IPLUS2_PID 0xD071 /* Product Id */ +- +-/* DMX4ALL DMX Interfaces */ +-#define FTDI_DMX4ALL 0xC850 +- +-/* OpenDCC (www.opendcc.de) product id */ +-#define FTDI_OPENDCC_PID 0xBFD8 +-#define FTDI_OPENDCC_SNIFFER_PID 0xBFD9 +-#define FTDI_OPENDCC_THROTTLE_PID 0xBFDA +-#define FTDI_OPENDCC_GATEWAY_PID 0xBFDB +- +-/* Sprog II (Andrew Crosland's SprogII DCC interface) */ +-#define FTDI_SPROG_II 0xF0C8 +- +-/* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */ +-/* they use the ftdi chipset for the USB interface and the vendor id is the same */ +-#define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ +-#define FTDI_XF_634_PID 0xFC09 /* 634: 20x4 Character Display */ +-#define FTDI_XF_547_PID 0xFC0A /* 547: Two line Display */ +-#define FTDI_XF_633_PID 0xFC0B /* 633: 16x2 Character Display with Keys */ +-#define FTDI_XF_631_PID 0xFC0C /* 631: 20x2 Character Display */ +-#define FTDI_XF_635_PID 0xFC0D /* 635: 20x4 Character Display */ +-#define FTDI_XF_640_PID 0xFC0E /* 640: Two line Display */ +-#define FTDI_XF_642_PID 0xFC0F /* 642: Two line Display */ +- +-/* Video Networks Limited / Homechoice in the UK use an ftdi-based device for their 1Mb */ +-/* broadband internet service. The following PID is exhibited by the usb device supplied */ +-/* (the VID is the standard ftdi vid (FTDI_VID) */ +-#define FTDI_VNHCPCUSB_D_PID 0xfe38 /* Product Id */ +- +-/* +- * PCDJ use ftdi based dj-controllers. The following PID is for their DAC-2 device +- * http://www.pcdjhardware.com/DAC2.asp (PID sent by Wouter Paesen) +- * (the VID is the standard ftdi vid (FTDI_VID) */ +-#define FTDI_PCDJ_DAC2_PID 0xFA88 +- +-/* +- * The following are the values for the Matrix Orbital LCD displays, +- * which are the FT232BM ( similar to the 8U232AM ) +- */ +-#define FTDI_MTXORB_0_PID 0xFA00 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_1_PID 0xFA01 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_2_PID 0xFA02 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_3_PID 0xFA03 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_4_PID 0xFA04 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_5_PID 0xFA05 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */ +- +-/* OOCDlink by Joern Kaipf <joernk@web.de> +- * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ +-#define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ +- +-/* +- * The following are the values for the Matrix Orbital FTDI Range +- * Anything in this range will use an FT232RL. +- */ +-#define MTXORB_VID 0x1B3D +-#define MTXORB_FTDI_RANGE_0100_PID 0x0100 +-#define MTXORB_FTDI_RANGE_0101_PID 0x0101 +-#define MTXORB_FTDI_RANGE_0102_PID 0x0102 +-#define MTXORB_FTDI_RANGE_0103_PID 0x0103 +-#define MTXORB_FTDI_RANGE_0104_PID 0x0104 +-#define MTXORB_FTDI_RANGE_0105_PID 0x0105 +-#define MTXORB_FTDI_RANGE_0106_PID 0x0106 +-#define MTXORB_FTDI_RANGE_0107_PID 0x0107 +-#define MTXORB_FTDI_RANGE_0108_PID 0x0108 +-#define MTXORB_FTDI_RANGE_0109_PID 0x0109 +-#define MTXORB_FTDI_RANGE_010A_PID 0x010A +-#define MTXORB_FTDI_RANGE_010B_PID 0x010B +-#define MTXORB_FTDI_RANGE_010C_PID 0x010C +-#define MTXORB_FTDI_RANGE_010D_PID 0x010D +-#define MTXORB_FTDI_RANGE_010E_PID 0x010E +-#define MTXORB_FTDI_RANGE_010F_PID 0x010F +-#define MTXORB_FTDI_RANGE_0110_PID 0x0110 +-#define MTXORB_FTDI_RANGE_0111_PID 0x0111 +-#define MTXORB_FTDI_RANGE_0112_PID 0x0112 +-#define MTXORB_FTDI_RANGE_0113_PID 0x0113 +-#define MTXORB_FTDI_RANGE_0114_PID 0x0114 +-#define MTXORB_FTDI_RANGE_0115_PID 0x0115 +-#define MTXORB_FTDI_RANGE_0116_PID 0x0116 +-#define MTXORB_FTDI_RANGE_0117_PID 0x0117 +-#define MTXORB_FTDI_RANGE_0118_PID 0x0118 +-#define MTXORB_FTDI_RANGE_0119_PID 0x0119 +-#define MTXORB_FTDI_RANGE_011A_PID 0x011A +-#define MTXORB_FTDI_RANGE_011B_PID 0x011B +-#define MTXORB_FTDI_RANGE_011C_PID 0x011C +-#define MTXORB_FTDI_RANGE_011D_PID 0x011D +-#define MTXORB_FTDI_RANGE_011E_PID 0x011E +-#define MTXORB_FTDI_RANGE_011F_PID 0x011F +-#define MTXORB_FTDI_RANGE_0120_PID 0x0120 +-#define MTXORB_FTDI_RANGE_0121_PID 0x0121 +-#define MTXORB_FTDI_RANGE_0122_PID 0x0122 +-#define MTXORB_FTDI_RANGE_0123_PID 0x0123 +-#define MTXORB_FTDI_RANGE_0124_PID 0x0124 +-#define MTXORB_FTDI_RANGE_0125_PID 0x0125 +-#define MTXORB_FTDI_RANGE_0126_PID 0x0126 +-#define MTXORB_FTDI_RANGE_0127_PID 0x0127 +-#define MTXORB_FTDI_RANGE_0128_PID 0x0128 +-#define MTXORB_FTDI_RANGE_0129_PID 0x0129 +-#define MTXORB_FTDI_RANGE_012A_PID 0x012A +-#define MTXORB_FTDI_RANGE_012B_PID 0x012B +-#define MTXORB_FTDI_RANGE_012C_PID 0x012C +-#define MTXORB_FTDI_RANGE_012D_PID 0x012D +-#define MTXORB_FTDI_RANGE_012E_PID 0x012E +-#define MTXORB_FTDI_RANGE_012F_PID 0x012F +-#define MTXORB_FTDI_RANGE_0130_PID 0x0130 +-#define MTXORB_FTDI_RANGE_0131_PID 0x0131 +-#define MTXORB_FTDI_RANGE_0132_PID 0x0132 +-#define MTXORB_FTDI_RANGE_0133_PID 0x0133 +-#define MTXORB_FTDI_RANGE_0134_PID 0x0134 +-#define MTXORB_FTDI_RANGE_0135_PID 0x0135 +-#define MTXORB_FTDI_RANGE_0136_PID 0x0136 +-#define MTXORB_FTDI_RANGE_0137_PID 0x0137 +-#define MTXORB_FTDI_RANGE_0138_PID 0x0138 +-#define MTXORB_FTDI_RANGE_0139_PID 0x0139 +-#define MTXORB_FTDI_RANGE_013A_PID 0x013A +-#define MTXORB_FTDI_RANGE_013B_PID 0x013B +-#define MTXORB_FTDI_RANGE_013C_PID 0x013C +-#define MTXORB_FTDI_RANGE_013D_PID 0x013D +-#define MTXORB_FTDI_RANGE_013E_PID 0x013E +-#define MTXORB_FTDI_RANGE_013F_PID 0x013F +-#define MTXORB_FTDI_RANGE_0140_PID 0x0140 +-#define MTXORB_FTDI_RANGE_0141_PID 0x0141 +-#define MTXORB_FTDI_RANGE_0142_PID 0x0142 +-#define MTXORB_FTDI_RANGE_0143_PID 0x0143 +-#define MTXORB_FTDI_RANGE_0144_PID 0x0144 +-#define MTXORB_FTDI_RANGE_0145_PID 0x0145 +-#define MTXORB_FTDI_RANGE_0146_PID 0x0146 +-#define MTXORB_FTDI_RANGE_0147_PID 0x0147 +-#define MTXORB_FTDI_RANGE_0148_PID 0x0148 +-#define MTXORB_FTDI_RANGE_0149_PID 0x0149 +-#define MTXORB_FTDI_RANGE_014A_PID 0x014A +-#define MTXORB_FTDI_RANGE_014B_PID 0x014B +-#define MTXORB_FTDI_RANGE_014C_PID 0x014C +-#define MTXORB_FTDI_RANGE_014D_PID 0x014D +-#define MTXORB_FTDI_RANGE_014E_PID 0x014E +-#define MTXORB_FTDI_RANGE_014F_PID 0x014F +-#define MTXORB_FTDI_RANGE_0150_PID 0x0150 +-#define MTXORB_FTDI_RANGE_0151_PID 0x0151 +-#define MTXORB_FTDI_RANGE_0152_PID 0x0152 +-#define MTXORB_FTDI_RANGE_0153_PID 0x0153 +-#define MTXORB_FTDI_RANGE_0154_PID 0x0154 +-#define MTXORB_FTDI_RANGE_0155_PID 0x0155 +-#define MTXORB_FTDI_RANGE_0156_PID 0x0156 +-#define MTXORB_FTDI_RANGE_0157_PID 0x0157 +-#define MTXORB_FTDI_RANGE_0158_PID 0x0158 +-#define MTXORB_FTDI_RANGE_0159_PID 0x0159 +-#define MTXORB_FTDI_RANGE_015A_PID 0x015A +-#define MTXORB_FTDI_RANGE_015B_PID 0x015B +-#define MTXORB_FTDI_RANGE_015C_PID 0x015C +-#define MTXORB_FTDI_RANGE_015D_PID 0x015D +-#define MTXORB_FTDI_RANGE_015E_PID 0x015E +-#define MTXORB_FTDI_RANGE_015F_PID 0x015F +-#define MTXORB_FTDI_RANGE_0160_PID 0x0160 +-#define MTXORB_FTDI_RANGE_0161_PID 0x0161 +-#define MTXORB_FTDI_RANGE_0162_PID 0x0162 +-#define MTXORB_FTDI_RANGE_0163_PID 0x0163 +-#define MTXORB_FTDI_RANGE_0164_PID 0x0164 +-#define MTXORB_FTDI_RANGE_0165_PID 0x0165 +-#define MTXORB_FTDI_RANGE_0166_PID 0x0166 +-#define MTXORB_FTDI_RANGE_0167_PID 0x0167 +-#define MTXORB_FTDI_RANGE_0168_PID 0x0168 +-#define MTXORB_FTDI_RANGE_0169_PID 0x0169 +-#define MTXORB_FTDI_RANGE_016A_PID 0x016A +-#define MTXORB_FTDI_RANGE_016B_PID 0x016B +-#define MTXORB_FTDI_RANGE_016C_PID 0x016C +-#define MTXORB_FTDI_RANGE_016D_PID 0x016D +-#define MTXORB_FTDI_RANGE_016E_PID 0x016E +-#define MTXORB_FTDI_RANGE_016F_PID 0x016F +-#define MTXORB_FTDI_RANGE_0170_PID 0x0170 +-#define MTXORB_FTDI_RANGE_0171_PID 0x0171 +-#define MTXORB_FTDI_RANGE_0172_PID 0x0172 +-#define MTXORB_FTDI_RANGE_0173_PID 0x0173 +-#define MTXORB_FTDI_RANGE_0174_PID 0x0174 +-#define MTXORB_FTDI_RANGE_0175_PID 0x0175 +-#define MTXORB_FTDI_RANGE_0176_PID 0x0176 +-#define MTXORB_FTDI_RANGE_0177_PID 0x0177 +-#define MTXORB_FTDI_RANGE_0178_PID 0x0178 +-#define MTXORB_FTDI_RANGE_0179_PID 0x0179 +-#define MTXORB_FTDI_RANGE_017A_PID 0x017A +-#define MTXORB_FTDI_RANGE_017B_PID 0x017B +-#define MTXORB_FTDI_RANGE_017C_PID 0x017C +-#define MTXORB_FTDI_RANGE_017D_PID 0x017D +-#define MTXORB_FTDI_RANGE_017E_PID 0x017E +-#define MTXORB_FTDI_RANGE_017F_PID 0x017F +-#define MTXORB_FTDI_RANGE_0180_PID 0x0180 +-#define MTXORB_FTDI_RANGE_0181_PID 0x0181 +-#define MTXORB_FTDI_RANGE_0182_PID 0x0182 +-#define MTXORB_FTDI_RANGE_0183_PID 0x0183 +-#define MTXORB_FTDI_RANGE_0184_PID 0x0184 +-#define MTXORB_FTDI_RANGE_0185_PID 0x0185 +-#define MTXORB_FTDI_RANGE_0186_PID 0x0186 +-#define MTXORB_FTDI_RANGE_0187_PID 0x0187 +-#define MTXORB_FTDI_RANGE_0188_PID 0x0188 +-#define MTXORB_FTDI_RANGE_0189_PID 0x0189 +-#define MTXORB_FTDI_RANGE_018A_PID 0x018A +-#define MTXORB_FTDI_RANGE_018B_PID 0x018B +-#define MTXORB_FTDI_RANGE_018C_PID 0x018C +-#define MTXORB_FTDI_RANGE_018D_PID 0x018D +-#define MTXORB_FTDI_RANGE_018E_PID 0x018E +-#define MTXORB_FTDI_RANGE_018F_PID 0x018F +-#define MTXORB_FTDI_RANGE_0190_PID 0x0190 +-#define MTXORB_FTDI_RANGE_0191_PID 0x0191 +-#define MTXORB_FTDI_RANGE_0192_PID 0x0192 +-#define MTXORB_FTDI_RANGE_0193_PID 0x0193 +-#define MTXORB_FTDI_RANGE_0194_PID 0x0194 +-#define MTXORB_FTDI_RANGE_0195_PID 0x0195 +-#define MTXORB_FTDI_RANGE_0196_PID 0x0196 +-#define MTXORB_FTDI_RANGE_0197_PID 0x0197 +-#define MTXORB_FTDI_RANGE_0198_PID 0x0198 +-#define MTXORB_FTDI_RANGE_0199_PID 0x0199 +-#define MTXORB_FTDI_RANGE_019A_PID 0x019A +-#define MTXORB_FTDI_RANGE_019B_PID 0x019B +-#define MTXORB_FTDI_RANGE_019C_PID 0x019C +-#define MTXORB_FTDI_RANGE_019D_PID 0x019D +-#define MTXORB_FTDI_RANGE_019E_PID 0x019E +-#define MTXORB_FTDI_RANGE_019F_PID 0x019F +-#define MTXORB_FTDI_RANGE_01A0_PID 0x01A0 +-#define MTXORB_FTDI_RANGE_01A1_PID 0x01A1 +-#define MTXORB_FTDI_RANGE_01A2_PID 0x01A2 +-#define MTXORB_FTDI_RANGE_01A3_PID 0x01A3 +-#define MTXORB_FTDI_RANGE_01A4_PID 0x01A4 +-#define MTXORB_FTDI_RANGE_01A5_PID 0x01A5 +-#define MTXORB_FTDI_RANGE_01A6_PID 0x01A6 +-#define MTXORB_FTDI_RANGE_01A7_PID 0x01A7 +-#define MTXORB_FTDI_RANGE_01A8_PID 0x01A8 +-#define MTXORB_FTDI_RANGE_01A9_PID 0x01A9 +-#define MTXORB_FTDI_RANGE_01AA_PID 0x01AA +-#define MTXORB_FTDI_RANGE_01AB_PID 0x01AB +-#define MTXORB_FTDI_RANGE_01AC_PID 0x01AC +-#define MTXORB_FTDI_RANGE_01AD_PID 0x01AD +-#define MTXORB_FTDI_RANGE_01AE_PID 0x01AE +-#define MTXORB_FTDI_RANGE_01AF_PID 0x01AF +-#define MTXORB_FTDI_RANGE_01B0_PID 0x01B0 +-#define MTXORB_FTDI_RANGE_01B1_PID 0x01B1 +-#define MTXORB_FTDI_RANGE_01B2_PID 0x01B2 +-#define MTXORB_FTDI_RANGE_01B3_PID 0x01B3 +-#define MTXORB_FTDI_RANGE_01B4_PID 0x01B4 +-#define MTXORB_FTDI_RANGE_01B5_PID 0x01B5 +-#define MTXORB_FTDI_RANGE_01B6_PID 0x01B6 +-#define MTXORB_FTDI_RANGE_01B7_PID 0x01B7 +-#define MTXORB_FTDI_RANGE_01B8_PID 0x01B8 +-#define MTXORB_FTDI_RANGE_01B9_PID 0x01B9 +-#define MTXORB_FTDI_RANGE_01BA_PID 0x01BA +-#define MTXORB_FTDI_RANGE_01BB_PID 0x01BB +-#define MTXORB_FTDI_RANGE_01BC_PID 0x01BC +-#define MTXORB_FTDI_RANGE_01BD_PID 0x01BD +-#define MTXORB_FTDI_RANGE_01BE_PID 0x01BE +-#define MTXORB_FTDI_RANGE_01BF_PID 0x01BF +-#define MTXORB_FTDI_RANGE_01C0_PID 0x01C0 +-#define MTXORB_FTDI_RANGE_01C1_PID 0x01C1 +-#define MTXORB_FTDI_RANGE_01C2_PID 0x01C2 +-#define MTXORB_FTDI_RANGE_01C3_PID 0x01C3 +-#define MTXORB_FTDI_RANGE_01C4_PID 0x01C4 +-#define MTXORB_FTDI_RANGE_01C5_PID 0x01C5 +-#define MTXORB_FTDI_RANGE_01C6_PID 0x01C6 +-#define MTXORB_FTDI_RANGE_01C7_PID 0x01C7 +-#define MTXORB_FTDI_RANGE_01C8_PID 0x01C8 +-#define MTXORB_FTDI_RANGE_01C9_PID 0x01C9 +-#define MTXORB_FTDI_RANGE_01CA_PID 0x01CA +-#define MTXORB_FTDI_RANGE_01CB_PID 0x01CB +-#define MTXORB_FTDI_RANGE_01CC_PID 0x01CC +-#define MTXORB_FTDI_RANGE_01CD_PID 0x01CD +-#define MTXORB_FTDI_RANGE_01CE_PID 0x01CE +-#define MTXORB_FTDI_RANGE_01CF_PID 0x01CF +-#define MTXORB_FTDI_RANGE_01D0_PID 0x01D0 +-#define MTXORB_FTDI_RANGE_01D1_PID 0x01D1 +-#define MTXORB_FTDI_RANGE_01D2_PID 0x01D2 +-#define MTXORB_FTDI_RANGE_01D3_PID 0x01D3 +-#define MTXORB_FTDI_RANGE_01D4_PID 0x01D4 +-#define MTXORB_FTDI_RANGE_01D5_PID 0x01D5 +-#define MTXORB_FTDI_RANGE_01D6_PID 0x01D6 +-#define MTXORB_FTDI_RANGE_01D7_PID 0x01D7 +-#define MTXORB_FTDI_RANGE_01D8_PID 0x01D8 +-#define MTXORB_FTDI_RANGE_01D9_PID 0x01D9 +-#define MTXORB_FTDI_RANGE_01DA_PID 0x01DA +-#define MTXORB_FTDI_RANGE_01DB_PID 0x01DB +-#define MTXORB_FTDI_RANGE_01DC_PID 0x01DC +-#define MTXORB_FTDI_RANGE_01DD_PID 0x01DD +-#define MTXORB_FTDI_RANGE_01DE_PID 0x01DE +-#define MTXORB_FTDI_RANGE_01DF_PID 0x01DF +-#define MTXORB_FTDI_RANGE_01E0_PID 0x01E0 +-#define MTXORB_FTDI_RANGE_01E1_PID 0x01E1 +-#define MTXORB_FTDI_RANGE_01E2_PID 0x01E2 +-#define MTXORB_FTDI_RANGE_01E3_PID 0x01E3 +-#define MTXORB_FTDI_RANGE_01E4_PID 0x01E4 +-#define MTXORB_FTDI_RANGE_01E5_PID 0x01E5 +-#define MTXORB_FTDI_RANGE_01E6_PID 0x01E6 +-#define MTXORB_FTDI_RANGE_01E7_PID 0x01E7 +-#define MTXORB_FTDI_RANGE_01E8_PID 0x01E8 +-#define MTXORB_FTDI_RANGE_01E9_PID 0x01E9 +-#define MTXORB_FTDI_RANGE_01EA_PID 0x01EA +-#define MTXORB_FTDI_RANGE_01EB_PID 0x01EB +-#define MTXORB_FTDI_RANGE_01EC_PID 0x01EC +-#define MTXORB_FTDI_RANGE_01ED_PID 0x01ED +-#define MTXORB_FTDI_RANGE_01EE_PID 0x01EE +-#define MTXORB_FTDI_RANGE_01EF_PID 0x01EF +-#define MTXORB_FTDI_RANGE_01F0_PID 0x01F0 +-#define MTXORB_FTDI_RANGE_01F1_PID 0x01F1 +-#define MTXORB_FTDI_RANGE_01F2_PID 0x01F2 +-#define MTXORB_FTDI_RANGE_01F3_PID 0x01F3 +-#define MTXORB_FTDI_RANGE_01F4_PID 0x01F4 +-#define MTXORB_FTDI_RANGE_01F5_PID 0x01F5 +-#define MTXORB_FTDI_RANGE_01F6_PID 0x01F6 +-#define MTXORB_FTDI_RANGE_01F7_PID 0x01F7 +-#define MTXORB_FTDI_RANGE_01F8_PID 0x01F8 +-#define MTXORB_FTDI_RANGE_01F9_PID 0x01F9 +-#define MTXORB_FTDI_RANGE_01FA_PID 0x01FA +-#define MTXORB_FTDI_RANGE_01FB_PID 0x01FB +-#define MTXORB_FTDI_RANGE_01FC_PID 0x01FC +-#define MTXORB_FTDI_RANGE_01FD_PID 0x01FD +-#define MTXORB_FTDI_RANGE_01FE_PID 0x01FE +-#define MTXORB_FTDI_RANGE_01FF_PID 0x01FF +- +- +- +-/* Interbiometrics USB I/O Board */ +-/* Developed for Interbiometrics by Rudolf Gugler */ +-#define INTERBIOMETRICS_VID 0x1209 +-#define INTERBIOMETRICS_IOBOARD_PID 0x1002 +-#define INTERBIOMETRICS_MINI_IOBOARD_PID 0x1006 +- +-/* +- * The following are the values for the Perle Systems +- * UltraPort USB serial converters +- */ +-#define FTDI_PERLE_ULTRAPORT_PID 0xF0C0 /* Perle UltraPort Product Id */ +- +-/* +- * The following are the values for the Sealevel SeaLINK+ adapters. +- * (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and +- * removed some PIDs that don't seem to match any existing products.) +- */ +-#define SEALEVEL_VID 0x0c52 /* Sealevel Vendor ID */ +-#define SEALEVEL_2101_PID 0x2101 /* SeaLINK+232 (2101/2105) */ +-#define SEALEVEL_2102_PID 0x2102 /* SeaLINK+485 (2102) */ +-#define SEALEVEL_2103_PID 0x2103 /* SeaLINK+232I (2103) */ +-#define SEALEVEL_2104_PID 0x2104 /* SeaLINK+485I (2104) */ +-#define SEALEVEL_2106_PID 0x9020 /* SeaLINK+422 (2106) */ +-#define SEALEVEL_2201_1_PID 0x2211 /* SeaPORT+2/232 (2201) Port 1 */ +-#define SEALEVEL_2201_2_PID 0x2221 /* SeaPORT+2/232 (2201) Port 2 */ +-#define SEALEVEL_2202_1_PID 0x2212 /* SeaPORT+2/485 (2202) Port 1 */ +-#define SEALEVEL_2202_2_PID 0x2222 /* SeaPORT+2/485 (2202) Port 2 */ +-#define SEALEVEL_2203_1_PID 0x2213 /* SeaPORT+2 (2203) Port 1 */ +-#define SEALEVEL_2203_2_PID 0x2223 /* SeaPORT+2 (2203) Port 2 */ +-#define SEALEVEL_2401_1_PID 0x2411 /* SeaPORT+4/232 (2401) Port 1 */ +-#define SEALEVEL_2401_2_PID 0x2421 /* SeaPORT+4/232 (2401) Port 2 */ +-#define SEALEVEL_2401_3_PID 0x2431 /* SeaPORT+4/232 (2401) Port 3 */ +-#define SEALEVEL_2401_4_PID 0x2441 /* SeaPORT+4/232 (2401) Port 4 */ +-#define SEALEVEL_2402_1_PID 0x2412 /* SeaPORT+4/485 (2402) Port 1 */ +-#define SEALEVEL_2402_2_PID 0x2422 /* SeaPORT+4/485 (2402) Port 2 */ +-#define SEALEVEL_2402_3_PID 0x2432 /* SeaPORT+4/485 (2402) Port 3 */ +-#define SEALEVEL_2402_4_PID 0x2442 /* SeaPORT+4/485 (2402) Port 4 */ +-#define SEALEVEL_2403_1_PID 0x2413 /* SeaPORT+4 (2403) Port 1 */ +-#define SEALEVEL_2403_2_PID 0x2423 /* SeaPORT+4 (2403) Port 2 */ +-#define SEALEVEL_2403_3_PID 0x2433 /* SeaPORT+4 (2403) Port 3 */ +-#define SEALEVEL_2403_4_PID 0x2443 /* SeaPORT+4 (2403) Port 4 */ +-#define SEALEVEL_2801_1_PID 0X2811 /* SeaLINK+8/232 (2801) Port 1 */ +-#define SEALEVEL_2801_2_PID 0X2821 /* SeaLINK+8/232 (2801) Port 2 */ +-#define SEALEVEL_2801_3_PID 0X2831 /* SeaLINK+8/232 (2801) Port 3 */ +-#define SEALEVEL_2801_4_PID 0X2841 /* SeaLINK+8/232 (2801) Port 4 */ +-#define SEALEVEL_2801_5_PID 0X2851 /* SeaLINK+8/232 (2801) Port 5 */ +-#define SEALEVEL_2801_6_PID 0X2861 /* SeaLINK+8/232 (2801) Port 6 */ +-#define SEALEVEL_2801_7_PID 0X2871 /* SeaLINK+8/232 (2801) Port 7 */ +-#define SEALEVEL_2801_8_PID 0X2881 /* SeaLINK+8/232 (2801) Port 8 */ +-#define SEALEVEL_2802_1_PID 0X2812 /* SeaLINK+8/485 (2802) Port 1 */ +-#define SEALEVEL_2802_2_PID 0X2822 /* SeaLINK+8/485 (2802) Port 2 */ +-#define SEALEVEL_2802_3_PID 0X2832 /* SeaLINK+8/485 (2802) Port 3 */ +-#define SEALEVEL_2802_4_PID 0X2842 /* SeaLINK+8/485 (2802) Port 4 */ +-#define SEALEVEL_2802_5_PID 0X2852 /* SeaLINK+8/485 (2802) Port 5 */ +-#define SEALEVEL_2802_6_PID 0X2862 /* SeaLINK+8/485 (2802) Port 6 */ +-#define SEALEVEL_2802_7_PID 0X2872 /* SeaLINK+8/485 (2802) Port 7 */ +-#define SEALEVEL_2802_8_PID 0X2882 /* SeaLINK+8/485 (2802) Port 8 */ +-#define SEALEVEL_2803_1_PID 0X2813 /* SeaLINK+8 (2803) Port 1 */ +-#define SEALEVEL_2803_2_PID 0X2823 /* SeaLINK+8 (2803) Port 2 */ +-#define SEALEVEL_2803_3_PID 0X2833 /* SeaLINK+8 (2803) Port 3 */ +-#define SEALEVEL_2803_4_PID 0X2843 /* SeaLINK+8 (2803) Port 4 */ +-#define SEALEVEL_2803_5_PID 0X2853 /* SeaLINK+8 (2803) Port 5 */ +-#define SEALEVEL_2803_6_PID 0X2863 /* SeaLINK+8 (2803) Port 6 */ +-#define SEALEVEL_2803_7_PID 0X2873 /* SeaLINK+8 (2803) Port 7 */ +-#define SEALEVEL_2803_8_PID 0X2883 /* SeaLINK+8 (2803) Port 8 */ +- +-/* +- * The following are the values for two KOBIL chipcard terminals. +- */ +-#define KOBIL_VID 0x0d46 /* KOBIL Vendor ID */ +-#define KOBIL_CONV_B1_PID 0x2020 /* KOBIL Konverter for B1 */ +-#define KOBIL_CONV_KAAN_PID 0x2021 /* KOBIL_Konverter for KAAN */ +- +-/* +- * Icom ID-1 digital transceiver +- */ +- +-#define ICOM_ID1_VID 0x0C26 +-#define ICOM_ID1_PID 0x0004 +- +-/* +- * ASK.fr devices +- */ +-#define FTDI_ASK_RDR400_PID 0xC991 /* ASK RDR 400 series card reader */ +- +-/* +- * FTDI USB UART chips used in construction projects from the +- * Elektor Electronics magazine (http://elektor-electronics.co.uk) +- */ +-#define ELEKTOR_VID 0x0C7D +-#define ELEKTOR_FT323R_PID 0x0005 /* RFID-Reader, issue 09-2006 */ +- +-/* +- * DSS-20 Sync Station for Sony Ericsson P800 +- */ +-#define FTDI_DSS20_PID 0xFC82 +- +-/* +- * Home Electronics (www.home-electro.com) USB gadgets +- */ +-#define FTDI_HE_TIRA1_PID 0xFA78 /* Tira-1 IR transceiver */ +- +-/* USB-UIRT - An infrared receiver and transmitter using the 8U232AM chip */ +-/* http://home.earthlink.net/~jrhees/USBUIRT/index.htm */ +-#define FTDI_USB_UIRT_PID 0xF850 /* Product Id */ +- +-/* TNC-X USB-to-packet-radio adapter, versions prior to 3.0 (DLP module) */ +- +-#define FTDI_TNC_X_PID 0xEBE0 +- +-/* +- * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). +- * All of these devices use FTDI's vendor ID (0x0403). +- * +- * The previously included PID for the UO 100 module was incorrect. +- * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58). +- * +- * Armin Laeuger originally sent the PID for the UM 100 module. +- */ +-#define FTDI_R2000KU_TRUE_RNG 0xFB80 /* R2000KU TRUE RNG */ +-#define FTDI_ELV_UR100_PID 0xFB58 /* USB-RS232-Umsetzer (UR 100) */ +-#define FTDI_ELV_UM100_PID 0xFB5A /* USB-Modul UM 100 */ +-#define FTDI_ELV_UO100_PID 0xFB5B /* USB-Modul UO 100 */ +-#define FTDI_ELV_ALC8500_PID 0xF06E /* ALC 8500 Expert */ +-/* Additional ELV PIDs that default to using the FTDI D2XX drivers on +- * MS Windows, rather than the FTDI Virtual Com Port drivers. +- * Maybe these will be easier to use with the libftdi/libusb user-space +- * drivers, or possibly the Comedi drivers in some cases. */ +-#define FTDI_ELV_CLI7000_PID 0xFB59 /* Computer-Light-Interface (CLI 7000) */ +-#define FTDI_ELV_PPS7330_PID 0xFB5C /* Processor-Power-Supply (PPS 7330) */ +-#define FTDI_ELV_TFM100_PID 0xFB5D /* Temperartur-Feuchte Messgeraet (TFM 100) */ +-#define FTDI_ELV_UDF77_PID 0xFB5E /* USB DCF Funkurh (UDF 77) */ +-#define FTDI_ELV_UIO88_PID 0xFB5F /* USB-I/O Interface (UIO 88) */ +-#define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */ +-#define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */ +-#define FTDI_ELV_USI2_PID 0xF06A /* USB-Schrittmotoren-Interface (USI 2) */ +-#define FTDI_ELV_T1100_PID 0xF06B /* Thermometer (T 1100) */ +-#define FTDI_ELV_PCD200_PID 0xF06C /* PC-Datenlogger (PCD 200) */ +-#define FTDI_ELV_ULA200_PID 0xF06D /* USB-LCD-Ansteuerung (ULA 200) */ +-#define FTDI_ELV_FHZ1000PC_PID 0xF06F /* FHZ 1000 PC */ +-#define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ +-#define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ +-#define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ +-#define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */ +-#define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */ +-#define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */ +-#define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */ +-#define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */ +-#define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */ +-#define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ +-#define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */ +- +-/* +- * Definitions for ID TECH (www.idt-net.com) devices +- */ +-#define IDTECH_VID 0x0ACD /* ID TECH Vendor ID */ +-#define IDTECH_IDT1221U_PID 0x0300 /* IDT1221U USB to RS-232 adapter */ +- +-/* +- * Definitions for Omnidirectional Control Technology, Inc. devices +- */ +-#define OCT_VID 0x0B39 /* OCT vendor ID */ +-/* Note: OCT US101 is also rebadged as Dick Smith Electronics (NZ) XH6381 */ +-/* Also rebadged as Dick Smith Electronics (Aus) XH6451 */ +-/* Also rebadged as SIIG Inc. model US2308 hardware version 1 */ +-#define OCT_US101_PID 0x0421 /* OCT US101 USB to RS-232 */ +- +-/* an infrared receiver for user access control with IR tags */ +-#define FTDI_PIEGROUP_PID 0xF208 /* Product Id */ +- +-/* +- * Definitions for Artemis astronomical USB based cameras +- * Check it at http://www.artemisccd.co.uk/ +- */ +-#define FTDI_ARTEMIS_PID 0xDF28 /* All Artemis Cameras */ +- +-/* +- * Definitions for ATIK Instruments astronomical USB based cameras +- * Check it at http://www.atik-instruments.com/ +- */ +-#define FTDI_ATIK_ATK16_PID 0xDF30 /* ATIK ATK-16 Grayscale Camera */ +-#define FTDI_ATIK_ATK16C_PID 0xDF32 /* ATIK ATK-16C Colour Camera */ +-#define FTDI_ATIK_ATK16HR_PID 0xDF31 /* ATIK ATK-16HR Grayscale Camera */ +-#define FTDI_ATIK_ATK16HRC_PID 0xDF33 /* ATIK ATK-16HRC Colour Camera */ +-#define FTDI_ATIK_ATK16IC_PID 0xDF35 /* ATIK ATK-16IC Grayscale Camera */ +- +-/* +- * Protego product ids +- */ +-#define PROTEGO_SPECIAL_1 0xFC70 /* special/unknown device */ +-#define PROTEGO_R2X0 0xFC71 /* R200-USB TRNG unit (R210, R220, and R230) */ +-#define PROTEGO_SPECIAL_3 0xFC72 /* special/unknown device */ +-#define PROTEGO_SPECIAL_4 0xFC73 /* special/unknown device */ +- +-/* +- * Gude Analog- und Digitalsysteme GmbH +- */ +-#define FTDI_GUDEADS_E808_PID 0xE808 +-#define FTDI_GUDEADS_E809_PID 0xE809 +-#define FTDI_GUDEADS_E80A_PID 0xE80A +-#define FTDI_GUDEADS_E80B_PID 0xE80B +-#define FTDI_GUDEADS_E80C_PID 0xE80C +-#define FTDI_GUDEADS_E80D_PID 0xE80D +-#define FTDI_GUDEADS_E80E_PID 0xE80E +-#define FTDI_GUDEADS_E80F_PID 0xE80F +-#define FTDI_GUDEADS_E888_PID 0xE888 /* Expert ISDN Control USB */ +-#define FTDI_GUDEADS_E889_PID 0xE889 /* USB RS-232 OptoBridge */ +-#define FTDI_GUDEADS_E88A_PID 0xE88A +-#define FTDI_GUDEADS_E88B_PID 0xE88B +-#define FTDI_GUDEADS_E88C_PID 0xE88C +-#define FTDI_GUDEADS_E88D_PID 0xE88D +-#define FTDI_GUDEADS_E88E_PID 0xE88E +-#define FTDI_GUDEADS_E88F_PID 0xE88F +- +-/* +- * Linx Technologies product ids +- */ +-#define LINX_SDMUSBQSS_PID 0xF448 /* Linx SDM-USB-QS-S */ +-#define LINX_MASTERDEVEL2_PID 0xF449 /* Linx Master Development 2.0 */ +-#define LINX_FUTURE_0_PID 0xF44A /* Linx future device */ +-#define LINX_FUTURE_1_PID 0xF44B /* Linx future device */ +-#define LINX_FUTURE_2_PID 0xF44C /* Linx future device */ +- +-/* CCS Inc. ICDU/ICDU40 product ID - the FT232BM is used in an in-circuit-debugger */ +-/* unit for PIC16's/PIC18's */ +-#define FTDI_CCSICDU20_0_PID 0xF9D0 +-#define FTDI_CCSICDU40_1_PID 0xF9D1 +-#define FTDI_CCSMACHX_2_PID 0xF9D2 +-#define FTDI_CCSLOAD_N_GO_3_PID 0xF9D3 +-#define FTDI_CCSICDU64_4_PID 0xF9D4 +-#define FTDI_CCSPRIME8_5_PID 0xF9D5 +- +-/* Inside Accesso contactless reader (http://www.insidefr.com) */ +-#define INSIDE_ACCESSO 0xFAD0 +- +-/* +- * Intrepid Control Systems (http://www.intrepidcs.com/) ValueCAN and NeoVI +- */ +-#define INTREPID_VID 0x093C +-#define INTREPID_VALUECAN_PID 0x0601 +-#define INTREPID_NEOVI_PID 0x0701 +- +-/* +- * Falcom Wireless Communications GmbH +- */ +-#define FALCOM_VID 0x0F94 /* Vendor Id */ +-#define FALCOM_TWIST_PID 0x0001 /* Falcom Twist USB GPRS modem */ +-#define FALCOM_SAMBA_PID 0x0005 /* Falcom Samba USB GPRS modem */ +- +-/* +- * SUUNTO product ids +- */ +-#define FTDI_SUUNTO_SPORTS_PID 0xF680 /* Suunto Sports instrument */ +- +-/* +- * Oceanic product ids +- */ +-#define FTDI_OCEANIC_PID 0xF460 /* Oceanic dive instrument */ +- +-/* +- * TTi (Thurlby Thandar Instruments) +- */ +-#define TTI_VID 0x103E /* Vendor Id */ +-#define TTI_QL355P_PID 0x03E8 /* TTi QL355P power supply */ +- +-/* +- * Definitions for B&B Electronics products. +- */ +-#define BANDB_VID 0x0856 /* B&B Electronics Vendor ID */ +-#define BANDB_USOTL4_PID 0xAC01 /* USOTL4 Isolated RS-485 Converter */ +-#define BANDB_USTL4_PID 0xAC02 /* USTL4 RS-485 Converter */ +-#define BANDB_USO9ML2_PID 0xAC03 /* USO9ML2 Isolated RS-232 Converter */ +-#define BANDB_USOPTL4_PID 0xAC11 +-#define BANDB_USPTL4_PID 0xAC12 +-#define BANDB_USO9ML2DR_2_PID 0xAC16 +-#define BANDB_USO9ML2DR_PID 0xAC17 +-#define BANDB_USOPTL4DR2_PID 0xAC18 /* USOPTL4R-2 2-port Isolated RS-232 Converter */ +-#define BANDB_USOPTL4DR_PID 0xAC19 +-#define BANDB_485USB9F_2W_PID 0xAC25 +-#define BANDB_485USB9F_4W_PID 0xAC26 +-#define BANDB_232USB9M_PID 0xAC27 +-#define BANDB_485USBTB_2W_PID 0xAC33 +-#define BANDB_485USBTB_4W_PID 0xAC34 +-#define BANDB_TTL5USB9M_PID 0xAC49 +-#define BANDB_TTL3USB9M_PID 0xAC50 +-#define BANDB_ZZ_PROG1_USB_PID 0xBA02 +- +-/* +- * RM Michaelides CANview USB (http://www.rmcan.com) +- * CAN fieldbus interface adapter, added by port GmbH www.port.de) +- * Ian Abbott changed the macro names for consistency. +- */ +-#define FTDI_RM_CANVIEW_PID 0xfd60 /* Product Id */ +- +-/* +- * EVER Eco Pro UPS (http://www.ever.com.pl/) +- */ +- +-#define EVER_ECO_PRO_CDS 0xe520 /* RS-232 converter */ +- +-/* +- * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485, +- * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices +- * and I'm not entirely sure which are used by which. +- */ +-#define FTDI_4N_GALAXY_DE_1_PID 0xF3C0 +-#define FTDI_4N_GALAXY_DE_2_PID 0xF3C1 +- +-/* +- * Mobility Electronics products. +- */ +-#define MOBILITY_VID 0x1342 +-#define MOBILITY_USB_SERIAL_PID 0x0202 /* EasiDock USB 200 serial */ +- +-/* +- * microHAM product IDs (http://www.microham.com). +- * Submitted by Justin Burket (KL1RL) <zorton@jtan.com> +- * and Mike Studer (K6EEP) <k6eep@hamsoftware.org>. +- * Ian Abbott <abbotti@mev.co.uk> added a few more from the driver INF file. +- */ +-#define FTDI_MHAM_KW_PID 0xEEE8 /* USB-KW interface */ +-#define FTDI_MHAM_YS_PID 0xEEE9 /* USB-YS interface */ +-#define FTDI_MHAM_Y6_PID 0xEEEA /* USB-Y6 interface */ +-#define FTDI_MHAM_Y8_PID 0xEEEB /* USB-Y8 interface */ +-#define FTDI_MHAM_IC_PID 0xEEEC /* USB-IC interface */ +-#define FTDI_MHAM_DB9_PID 0xEEED /* USB-DB9 interface */ +-#define FTDI_MHAM_RS232_PID 0xEEEE /* USB-RS232 interface */ +-#define FTDI_MHAM_Y9_PID 0xEEEF /* USB-Y9 interface */ +- +-/* +- * Active Robots product ids. +- */ +-#define FTDI_ACTIVE_ROBOTS_PID 0xE548 /* USB comms board */ +- +-/* +- * Xsens Technologies BV products (http://www.xsens.com). +- */ +-#define XSENS_CONVERTER_0_PID 0xD388 +-#define XSENS_CONVERTER_1_PID 0xD389 +-#define XSENS_CONVERTER_2_PID 0xD38A +-#define XSENS_CONVERTER_3_PID 0xD38B +-#define XSENS_CONVERTER_4_PID 0xD38C +-#define XSENS_CONVERTER_5_PID 0xD38D +-#define XSENS_CONVERTER_6_PID 0xD38E +-#define XSENS_CONVERTER_7_PID 0xD38F +- +-/* +- * Teratronik product ids. +- * Submitted by O. Wölfelschneider. +- */ +-#define FTDI_TERATRONIK_VCP_PID 0xEC88 /* Teratronik device (preferring VCP driver on windows) */ +-#define FTDI_TERATRONIK_D2XX_PID 0xEC89 /* Teratronik device (preferring D2XX driver on windows) */ +- +-/* +- * Evolution Robotics products (http://www.evolution.com/). +- * Submitted by Shawn M. Lavelle. +- */ +-#define EVOLUTION_VID 0xDEEE /* Vendor ID */ +-#define EVOLUTION_ER1_PID 0x0300 /* ER1 Control Module */ +-#define EVO_8U232AM_PID 0x02FF /* Evolution robotics RCM2 (FT232AM)*/ +-#define EVO_HYBRID_PID 0x0302 /* Evolution robotics RCM4 PID (FT232BM)*/ +-#define EVO_RCM4_PID 0x0303 /* Evolution robotics RCM4 PID */ +- +-/* Pyramid Computer GmbH */ +-#define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */ +- +-/* +- * NDI (www.ndigital.com) product ids +- */ +-#define FTDI_NDI_HUC_PID 0xDA70 /* NDI Host USB Converter */ +-#define FTDI_NDI_SPECTRA_SCU_PID 0xDA71 /* NDI Spectra SCU */ +-#define FTDI_NDI_FUTURE_2_PID 0xDA72 /* NDI future device #2 */ +-#define FTDI_NDI_FUTURE_3_PID 0xDA73 /* NDI future device #3 */ +-#define FTDI_NDI_AURORA_SCU_PID 0xDA74 /* NDI Aurora SCU */ +- +-/* +- * Posiflex inc retail equipment (http://www.posiflex.com.tw) +- */ +-#define POSIFLEX_VID 0x0d3a /* Vendor ID */ +-#define POSIFLEX_PP7000_PID 0x0300 /* PP-7000II thermal printer */ +- +-/* +- * Westrex International devices submitted by Cory Lee +- */ +-#define FTDI_WESTREX_MODEL_777_PID 0xDC00 /* Model 777 */ +-#define FTDI_WESTREX_MODEL_8900F_PID 0xDC01 /* Model 8900F */ +- +-/* +- * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) +- */ +-#define FTDI_RRCIRKITS_LOCOBUFFER_PID 0xc7d0 /* LocoBuffer USB */ +- +-/* +- * Eclo (http://www.eclo.pt/) product IDs. +- * PID 0xEA90 submitted by Martin Grill. +- */ +-#define FTDI_ECLO_COM_1WIRE_PID 0xEA90 /* COM to 1-Wire USB adaptor */ +- +-/* +- * Papouch products (http://www.papouch.com/) +- * Submitted by Folkert van Heusden +- */ +- +-#define PAPOUCH_VID 0x5050 /* Vendor ID */ +-#define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ +-#define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ +- +-/* +- * ACG Identification Technologies GmbH products (http://www.acg.de/). +- * Submitted by anton -at- goto10 -dot- org. +- */ +-#define FTDI_ACG_HFDUAL_PID 0xDD20 /* HF Dual ISO Reader (RFID) */ +- +-/* +- * Yost Engineering, Inc. products (www.yostengineering.com). +- * PID 0xE050 submitted by Aaron Prose. +- */ +-#define FTDI_YEI_SERVOCENTER31_PID 0xE050 /* YEI ServoCenter3.1 USB */ +- +-/* +- * ThorLabs USB motor drivers +- */ +-#define FTDI_THORLABS_PID 0xfaf0 /* ThorLabs USB motor drivers */ +- +-/* +- * Testo products (http://www.testo.com/) +- * Submitted by Colin Leroy +- */ +-#define TESTO_VID 0x128D +-#define TESTO_USB_INTERFACE_PID 0x0001 +- +-/* +- * Gamma Scout (http://gamma-scout.com/). Submitted by rsc@runtux.com. +- */ +-#define FTDI_GAMMA_SCOUT_PID 0xD678 /* Gamma Scout online */ +- +-/* +- * Tactrix OpenPort (ECU) devices. +- * OpenPort 1.3M submitted by Donour Sizemore. +- * OpenPort 1.3S and 1.3U submitted by Ian Abbott. +- */ +-#define FTDI_TACTRIX_OPENPORT_13M_PID 0xCC48 /* OpenPort 1.3 Mitsubishi */ +-#define FTDI_TACTRIX_OPENPORT_13S_PID 0xCC49 /* OpenPort 1.3 Subaru */ +-#define FTDI_TACTRIX_OPENPORT_13U_PID 0xCC4A /* OpenPort 1.3 Universal */ +- +-/* +- * Telldus Technologies + */ +-#define TELLDUS_VID 0x1781 /* Vendor ID */ +-#define TELLDUS_TELLSTICK_PID 0x0C30 /* RF control dongle 433 MHz using FT232RL */ +- +-/* +- * IBS elektronik product ids +- * Submitted by Thomas Schleusener +- */ +-#define FTDI_IBS_US485_PID 0xff38 /* IBS US485 (USB<-->RS422/485 interface) */ +-#define FTDI_IBS_PICPRO_PID 0xff39 /* IBS PIC-Programmer */ +-#define FTDI_IBS_PCMCIA_PID 0xff3a /* IBS Card reader for PCMCIA SRAM-cards */ +-#define FTDI_IBS_PK1_PID 0xff3b /* IBS PK1 - Particel counter */ +-#define FTDI_IBS_RS232MON_PID 0xff3c /* IBS RS232 - Monitor */ +-#define FTDI_IBS_APP70_PID 0xff3d /* APP 70 (dust monitoring system) */ +-#define FTDI_IBS_PEDO_PID 0xff3e /* IBS PEDO-Modem (RF modem 868.35 MHz) */ +-#define FTDI_IBS_PROD_PID 0xff3f /* future device */ +- +-/* +- * MaxStream devices www.maxstream.net +- */ +-#define FTDI_MAXSTREAM_PID 0xEE18 /* Xbee PKG-U Module */ +- +-/* Olimex */ +-#define OLIMEX_VID 0x15BA +-#define OLIMEX_ARM_USB_OCD_PID 0x0003 +- +-/* Luminary Micro Stellaris Boards, VID = FTDI_VID */ +-/* FTDI 2332C Dual channel device, side A=245 FIFO (JTAG), Side B=RS232 UART */ +-#define LMI_LM3S_DEVEL_BOARD_PID 0xbcd8 +-#define LMI_LM3S_EVAL_BOARD_PID 0xbcd9 +- +-/* www.elsterelectricity.com Elster Unicom III Optical Probe */ +-#define FTDI_ELSTER_UNICOM_PID 0xE700 /* Product Id */ +- +-/* +- * The Mobility Lab (TML) +- * Submitted by Pierre Castella +- */ +-#define TML_VID 0x1B91 /* Vendor ID */ +-#define TML_USB_SERIAL_PID 0x0064 /* USB - Serial Converter */ +- +-/* Propox devices */ +-#define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 +- +-/* Rig Expert Ukraine devices */ +-#define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */ +- +-/* Domintell products http://www.domintell.com */ +-#define FTDI_DOMINTELL_DGQG_PID 0xEF50 /* Master */ +-#define FTDI_DOMINTELL_DUSB_PID 0xEF51 /* DUSB01 module */ +- +-/* Alti-2 products http://www.alti-2.com */ +-#define ALTI2_VID 0x1BC9 +-#define ALTI2_N3_PID 0x6001 /* Neptune 3 */ + + /* Commands */ + #define FTDI_SIO_RESET 0 /* Reset the port */ +@@ -910,86 +40,6 @@ + #define INTERFACE_C 3 + #define INTERFACE_D 4 + +-/* +- * FIC / OpenMoko, Inc. http://wiki.openmoko.org/wiki/Neo1973_Debug_Board_v3 +- * Submitted by Harald Welte <laforge@openmoko.org> +- */ +-#define FIC_VID 0x1457 +-#define FIC_NEO1973_DEBUG_PID 0x5118 +- +-/* +- * RATOC REX-USB60F +- */ +-#define RATOC_VENDOR_ID 0x0584 +-#define RATOC_PRODUCT_ID_USB60F 0xb020 +- +-/* +- * DIEBOLD BCS SE923 +- */ +-#define DIEBOLD_BCS_SE923_PID 0xfb99 +- +-/* +- * Atmel STK541 +- */ +-#define ATMEL_VID 0x03eb /* Vendor ID */ +-#define STK541_PID 0x2109 /* Zigbee Controller */ +- +-/* +- * Dresden Elektronic Sensor Terminal Board +- */ +-#define DE_VID 0x1cf1 /* Vendor ID */ +-#define STB_PID 0x0001 /* Sensor Terminal Board */ +-#define WHT_PID 0x0004 /* Wireless Handheld Terminal */ +- +-/* +- * Blackfin gnICE JTAG +- * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice +- */ +-#define ADI_VID 0x0456 +-#define ADI_GNICE_PID 0xF000 +-#define ADI_GNICEPLUS_PID 0xF001 +- +-/* +- * JETI SPECTROMETER SPECBOS 1201 +- * http://www.jeti.com/products/sys/scb/scb1201.php +- */ +-#define JETI_VID 0x0c6c +-#define JETI_SPC1201_PID 0x04b2 +- +-/* +- * Marvell SheevaPlug +- */ +-#define MARVELL_VID 0x9e88 +-#define MARVELL_SHEEVAPLUG_PID 0x9e8f +- +-#define FTDI_TURTELIZER_PID 0xBDC8 /* JTAG/RS-232 adapter by egnite GmBH */ +- +-/* +- * GN Otometrics (http://www.otometrics.com) +- * Submitted by Ville Sundberg. +- */ +-#define GN_OTOMETRICS_VID 0x0c33 /* Vendor ID */ +-#define AURICAL_USB_PID 0x0010 /* Aurical USB Audiometer */ +- +-/* +- * Bayer Ascensia Contour blood glucose meter USB-converter cable. +- * http://winglucofacts.com/cables/ +- */ +-#define BAYER_VID 0x1A79 +-#define BAYER_CONTOUR_CABLE_PID 0x6001 +- +-/* +- * Marvell OpenRD Base, Client +- * http://www.open-rd.org +- * OpenRD Base, Client use VID 0x0403 +- */ +-#define MARVELL_OPENRD_PID 0x9e90 +- +-/* +- * Hameg HO820 and HO870 interface (using VID 0x0403) +- */ +-#define HAMEG_HO820_PID 0xed74 +-#define HAMEG_HO870_PID 0xed71 + + /* + * BmRequestType: 1100 0000b +@@ -1504,4 +554,3 @@ typedef enum { + * B2..7 Length of message - (not including Byte 0) + * + */ +- +--- /dev/null ++++ b/drivers/usb/serial/ftdi_sio_ids.h +@@ -0,0 +1,959 @@ ++/* ++ * vendor/product IDs (VID/PID) of devices using FTDI USB serial converters. ++ * ++ * Philipp G�hring - pg@futureware.at - added the Device ID of the USB relais ++ * from Rudolf Gugler ++ * ++ */ ++ ++#define FTDI_VID 0x0403 /* Vendor Id */ ++#define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ ++#define FTDI_8U232AM_PID 0x6001 /* Similar device to SIO above */ ++#define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */ ++#define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ ++#define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ ++#define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ ++#define FTDI_RELAIS_PID 0xFA10 /* Relais device from Rudolf Gugler */ ++#define FTDI_NF_RIC_VID 0x0DCD /* Vendor Id */ ++#define FTDI_NF_RIC_PID 0x0001 /* Product Id */ ++#define FTDI_USBX_707_PID 0xF857 /* ADSTech IR Blaster USBX-707 */ ++ ++/* Larsen and Brusgaard AltiTrack/USBtrack */ ++#define LARSENBRUSGAARD_VID 0x0FD8 ++#define LB_ALTITRACK_PID 0x0001 ++ ++/* www.canusb.com Lawicel CANUSB device */ ++#define FTDI_CANUSB_PID 0xFFA8 /* Product Id */ ++ ++/* AlphaMicro Components AMC-232USB01 device */ ++#define FTDI_AMC232_PID 0xFF00 /* Product Id */ ++ ++/* www.candapter.com Ewert Energy Systems CANdapter device */ ++#define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ ++ ++/* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */ ++/* the VID is the standard ftdi vid (FTDI_VID) */ ++#define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */ ++#define FTDI_SCS_DEVICE_1_PID 0xD011 /* SCS Tracker / DSP TNC */ ++#define FTDI_SCS_DEVICE_2_PID 0xD012 ++#define FTDI_SCS_DEVICE_3_PID 0xD013 ++#define FTDI_SCS_DEVICE_4_PID 0xD014 ++#define FTDI_SCS_DEVICE_5_PID 0xD015 ++#define FTDI_SCS_DEVICE_6_PID 0xD016 ++#define FTDI_SCS_DEVICE_7_PID 0xD017 ++ ++/* ACT Solutions HomePro ZWave interface (http://www.act-solutions.com/HomePro.htm) */ ++#define FTDI_ACTZWAVE_PID 0xF2D0 ++ ++ ++/* www.starting-point-systems.com �Chameleon device */ ++#define FTDI_MICRO_CHAMELEON_PID 0xCAA0 /* Product Id */ ++ ++/* www.irtrans.de device */ ++#define FTDI_IRTRANS_PID 0xFC60 /* Product Id */ ++ ++ ++/* www.thoughttechnology.com/ TT-USB provide with procomp use ftdi_sio */ ++#define FTDI_TTUSB_PID 0xFF20 /* Product Id */ ++ ++/* iPlus device */ ++#define FTDI_IPLUS_PID 0xD070 /* Product Id */ ++#define FTDI_IPLUS2_PID 0xD071 /* Product Id */ ++ ++/* DMX4ALL DMX Interfaces */ ++#define FTDI_DMX4ALL 0xC850 ++ ++/* OpenDCC (www.opendcc.de) product id */ ++#define FTDI_OPENDCC_PID 0xBFD8 ++#define FTDI_OPENDCC_SNIFFER_PID 0xBFD9 ++#define FTDI_OPENDCC_THROTTLE_PID 0xBFDA ++#define FTDI_OPENDCC_GATEWAY_PID 0xBFDB ++ ++/* Sprog II (Andrew Crosland's SprogII DCC interface) */ ++#define FTDI_SPROG_II 0xF0C8 ++ ++/* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */ ++/* they use the ftdi chipset for the USB interface and the vendor id is the same */ ++#define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ ++#define FTDI_XF_634_PID 0xFC09 /* 634: 20x4 Character Display */ ++#define FTDI_XF_547_PID 0xFC0A /* 547: Two line Display */ ++#define FTDI_XF_633_PID 0xFC0B /* 633: 16x2 Character Display with Keys */ ++#define FTDI_XF_631_PID 0xFC0C /* 631: 20x2 Character Display */ ++#define FTDI_XF_635_PID 0xFC0D /* 635: 20x4 Character Display */ ++#define FTDI_XF_640_PID 0xFC0E /* 640: Two line Display */ ++#define FTDI_XF_642_PID 0xFC0F /* 642: Two line Display */ ++ ++/* Video Networks Limited / Homechoice in the UK use an ftdi-based device for their 1Mb */ ++/* broadband internet service. The following PID is exhibited by the usb device supplied */ ++/* (the VID is the standard ftdi vid (FTDI_VID) */ ++#define FTDI_VNHCPCUSB_D_PID 0xfe38 /* Product Id */ ++ ++/* ++ * PCDJ use ftdi based dj-controllers. The following PID is for their DAC-2 device ++ * http://www.pcdjhardware.com/DAC2.asp (PID sent by Wouter Paesen) ++ * (the VID is the standard ftdi vid (FTDI_VID) */ ++#define FTDI_PCDJ_DAC2_PID 0xFA88 ++ ++/* ++ * The following are the values for the Matrix Orbital LCD displays, ++ * which are the FT232BM ( similar to the 8U232AM ) ++ */ ++#define FTDI_MTXORB_0_PID 0xFA00 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_1_PID 0xFA01 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_2_PID 0xFA02 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_3_PID 0xFA03 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_4_PID 0xFA04 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_5_PID 0xFA05 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */ ++ ++/* OOCDlink by Joern Kaipf <joernk@web.de> ++ * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ ++#define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ ++ ++/* ++ * The following are the values for the Matrix Orbital FTDI Range ++ * Anything in this range will use an FT232RL. ++ */ ++#define MTXORB_VID 0x1B3D ++#define MTXORB_FTDI_RANGE_0100_PID 0x0100 ++#define MTXORB_FTDI_RANGE_0101_PID 0x0101 ++#define MTXORB_FTDI_RANGE_0102_PID 0x0102 ++#define MTXORB_FTDI_RANGE_0103_PID 0x0103 ++#define MTXORB_FTDI_RANGE_0104_PID 0x0104 ++#define MTXORB_FTDI_RANGE_0105_PID 0x0105 ++#define MTXORB_FTDI_RANGE_0106_PID 0x0106 ++#define MTXORB_FTDI_RANGE_0107_PID 0x0107 ++#define MTXORB_FTDI_RANGE_0108_PID 0x0108 ++#define MTXORB_FTDI_RANGE_0109_PID 0x0109 ++#define MTXORB_FTDI_RANGE_010A_PID 0x010A ++#define MTXORB_FTDI_RANGE_010B_PID 0x010B ++#define MTXORB_FTDI_RANGE_010C_PID 0x010C ++#define MTXORB_FTDI_RANGE_010D_PID 0x010D ++#define MTXORB_FTDI_RANGE_010E_PID 0x010E ++#define MTXORB_FTDI_RANGE_010F_PID 0x010F ++#define MTXORB_FTDI_RANGE_0110_PID 0x0110 ++#define MTXORB_FTDI_RANGE_0111_PID 0x0111 ++#define MTXORB_FTDI_RANGE_0112_PID 0x0112 ++#define MTXORB_FTDI_RANGE_0113_PID 0x0113 ++#define MTXORB_FTDI_RANGE_0114_PID 0x0114 ++#define MTXORB_FTDI_RANGE_0115_PID 0x0115 ++#define MTXORB_FTDI_RANGE_0116_PID 0x0116 ++#define MTXORB_FTDI_RANGE_0117_PID 0x0117 ++#define MTXORB_FTDI_RANGE_0118_PID 0x0118 ++#define MTXORB_FTDI_RANGE_0119_PID 0x0119 ++#define MTXORB_FTDI_RANGE_011A_PID 0x011A ++#define MTXORB_FTDI_RANGE_011B_PID 0x011B ++#define MTXORB_FTDI_RANGE_011C_PID 0x011C ++#define MTXORB_FTDI_RANGE_011D_PID 0x011D ++#define MTXORB_FTDI_RANGE_011E_PID 0x011E ++#define MTXORB_FTDI_RANGE_011F_PID 0x011F ++#define MTXORB_FTDI_RANGE_0120_PID 0x0120 ++#define MTXORB_FTDI_RANGE_0121_PID 0x0121 ++#define MTXORB_FTDI_RANGE_0122_PID 0x0122 ++#define MTXORB_FTDI_RANGE_0123_PID 0x0123 ++#define MTXORB_FTDI_RANGE_0124_PID 0x0124 ++#define MTXORB_FTDI_RANGE_0125_PID 0x0125 ++#define MTXORB_FTDI_RANGE_0126_PID 0x0126 ++#define MTXORB_FTDI_RANGE_0127_PID 0x0127 ++#define MTXORB_FTDI_RANGE_0128_PID 0x0128 ++#define MTXORB_FTDI_RANGE_0129_PID 0x0129 ++#define MTXORB_FTDI_RANGE_012A_PID 0x012A ++#define MTXORB_FTDI_RANGE_012B_PID 0x012B ++#define MTXORB_FTDI_RANGE_012C_PID 0x012C ++#define MTXORB_FTDI_RANGE_012D_PID 0x012D ++#define MTXORB_FTDI_RANGE_012E_PID 0x012E ++#define MTXORB_FTDI_RANGE_012F_PID 0x012F ++#define MTXORB_FTDI_RANGE_0130_PID 0x0130 ++#define MTXORB_FTDI_RANGE_0131_PID 0x0131 ++#define MTXORB_FTDI_RANGE_0132_PID 0x0132 ++#define MTXORB_FTDI_RANGE_0133_PID 0x0133 ++#define MTXORB_FTDI_RANGE_0134_PID 0x0134 ++#define MTXORB_FTDI_RANGE_0135_PID 0x0135 ++#define MTXORB_FTDI_RANGE_0136_PID 0x0136 ++#define MTXORB_FTDI_RANGE_0137_PID 0x0137 ++#define MTXORB_FTDI_RANGE_0138_PID 0x0138 ++#define MTXORB_FTDI_RANGE_0139_PID 0x0139 ++#define MTXORB_FTDI_RANGE_013A_PID 0x013A ++#define MTXORB_FTDI_RANGE_013B_PID 0x013B ++#define MTXORB_FTDI_RANGE_013C_PID 0x013C ++#define MTXORB_FTDI_RANGE_013D_PID 0x013D ++#define MTXORB_FTDI_RANGE_013E_PID 0x013E ++#define MTXORB_FTDI_RANGE_013F_PID 0x013F ++#define MTXORB_FTDI_RANGE_0140_PID 0x0140 ++#define MTXORB_FTDI_RANGE_0141_PID 0x0141 ++#define MTXORB_FTDI_RANGE_0142_PID 0x0142 ++#define MTXORB_FTDI_RANGE_0143_PID 0x0143 ++#define MTXORB_FTDI_RANGE_0144_PID 0x0144 ++#define MTXORB_FTDI_RANGE_0145_PID 0x0145 ++#define MTXORB_FTDI_RANGE_0146_PID 0x0146 ++#define MTXORB_FTDI_RANGE_0147_PID 0x0147 ++#define MTXORB_FTDI_RANGE_0148_PID 0x0148 ++#define MTXORB_FTDI_RANGE_0149_PID 0x0149 ++#define MTXORB_FTDI_RANGE_014A_PID 0x014A ++#define MTXORB_FTDI_RANGE_014B_PID 0x014B ++#define MTXORB_FTDI_RANGE_014C_PID 0x014C ++#define MTXORB_FTDI_RANGE_014D_PID 0x014D ++#define MTXORB_FTDI_RANGE_014E_PID 0x014E ++#define MTXORB_FTDI_RANGE_014F_PID 0x014F ++#define MTXORB_FTDI_RANGE_0150_PID 0x0150 ++#define MTXORB_FTDI_RANGE_0151_PID 0x0151 ++#define MTXORB_FTDI_RANGE_0152_PID 0x0152 ++#define MTXORB_FTDI_RANGE_0153_PID 0x0153 ++#define MTXORB_FTDI_RANGE_0154_PID 0x0154 ++#define MTXORB_FTDI_RANGE_0155_PID 0x0155 ++#define MTXORB_FTDI_RANGE_0156_PID 0x0156 ++#define MTXORB_FTDI_RANGE_0157_PID 0x0157 ++#define MTXORB_FTDI_RANGE_0158_PID 0x0158 ++#define MTXORB_FTDI_RANGE_0159_PID 0x0159 ++#define MTXORB_FTDI_RANGE_015A_PID 0x015A ++#define MTXORB_FTDI_RANGE_015B_PID 0x015B ++#define MTXORB_FTDI_RANGE_015C_PID 0x015C ++#define MTXORB_FTDI_RANGE_015D_PID 0x015D ++#define MTXORB_FTDI_RANGE_015E_PID 0x015E ++#define MTXORB_FTDI_RANGE_015F_PID 0x015F ++#define MTXORB_FTDI_RANGE_0160_PID 0x0160 ++#define MTXORB_FTDI_RANGE_0161_PID 0x0161 ++#define MTXORB_FTDI_RANGE_0162_PID 0x0162 ++#define MTXORB_FTDI_RANGE_0163_PID 0x0163 ++#define MTXORB_FTDI_RANGE_0164_PID 0x0164 ++#define MTXORB_FTDI_RANGE_0165_PID 0x0165 ++#define MTXORB_FTDI_RANGE_0166_PID 0x0166 ++#define MTXORB_FTDI_RANGE_0167_PID 0x0167 ++#define MTXORB_FTDI_RANGE_0168_PID 0x0168 ++#define MTXORB_FTDI_RANGE_0169_PID 0x0169 ++#define MTXORB_FTDI_RANGE_016A_PID 0x016A ++#define MTXORB_FTDI_RANGE_016B_PID 0x016B ++#define MTXORB_FTDI_RANGE_016C_PID 0x016C ++#define MTXORB_FTDI_RANGE_016D_PID 0x016D ++#define MTXORB_FTDI_RANGE_016E_PID 0x016E ++#define MTXORB_FTDI_RANGE_016F_PID 0x016F ++#define MTXORB_FTDI_RANGE_0170_PID 0x0170 ++#define MTXORB_FTDI_RANGE_0171_PID 0x0171 ++#define MTXORB_FTDI_RANGE_0172_PID 0x0172 ++#define MTXORB_FTDI_RANGE_0173_PID 0x0173 ++#define MTXORB_FTDI_RANGE_0174_PID 0x0174 ++#define MTXORB_FTDI_RANGE_0175_PID 0x0175 ++#define MTXORB_FTDI_RANGE_0176_PID 0x0176 ++#define MTXORB_FTDI_RANGE_0177_PID 0x0177 ++#define MTXORB_FTDI_RANGE_0178_PID 0x0178 ++#define MTXORB_FTDI_RANGE_0179_PID 0x0179 ++#define MTXORB_FTDI_RANGE_017A_PID 0x017A ++#define MTXORB_FTDI_RANGE_017B_PID 0x017B ++#define MTXORB_FTDI_RANGE_017C_PID 0x017C ++#define MTXORB_FTDI_RANGE_017D_PID 0x017D ++#define MTXORB_FTDI_RANGE_017E_PID 0x017E ++#define MTXORB_FTDI_RANGE_017F_PID 0x017F ++#define MTXORB_FTDI_RANGE_0180_PID 0x0180 ++#define MTXORB_FTDI_RANGE_0181_PID 0x0181 ++#define MTXORB_FTDI_RANGE_0182_PID 0x0182 ++#define MTXORB_FTDI_RANGE_0183_PID 0x0183 ++#define MTXORB_FTDI_RANGE_0184_PID 0x0184 ++#define MTXORB_FTDI_RANGE_0185_PID 0x0185 ++#define MTXORB_FTDI_RANGE_0186_PID 0x0186 ++#define MTXORB_FTDI_RANGE_0187_PID 0x0187 ++#define MTXORB_FTDI_RANGE_0188_PID 0x0188 ++#define MTXORB_FTDI_RANGE_0189_PID 0x0189 ++#define MTXORB_FTDI_RANGE_018A_PID 0x018A ++#define MTXORB_FTDI_RANGE_018B_PID 0x018B ++#define MTXORB_FTDI_RANGE_018C_PID 0x018C ++#define MTXORB_FTDI_RANGE_018D_PID 0x018D ++#define MTXORB_FTDI_RANGE_018E_PID 0x018E ++#define MTXORB_FTDI_RANGE_018F_PID 0x018F ++#define MTXORB_FTDI_RANGE_0190_PID 0x0190 ++#define MTXORB_FTDI_RANGE_0191_PID 0x0191 ++#define MTXORB_FTDI_RANGE_0192_PID 0x0192 ++#define MTXORB_FTDI_RANGE_0193_PID 0x0193 ++#define MTXORB_FTDI_RANGE_0194_PID 0x0194 ++#define MTXORB_FTDI_RANGE_0195_PID 0x0195 ++#define MTXORB_FTDI_RANGE_0196_PID 0x0196 ++#define MTXORB_FTDI_RANGE_0197_PID 0x0197 ++#define MTXORB_FTDI_RANGE_0198_PID 0x0198 ++#define MTXORB_FTDI_RANGE_0199_PID 0x0199 ++#define MTXORB_FTDI_RANGE_019A_PID 0x019A ++#define MTXORB_FTDI_RANGE_019B_PID 0x019B ++#define MTXORB_FTDI_RANGE_019C_PID 0x019C ++#define MTXORB_FTDI_RANGE_019D_PID 0x019D ++#define MTXORB_FTDI_RANGE_019E_PID 0x019E ++#define MTXORB_FTDI_RANGE_019F_PID 0x019F ++#define MTXORB_FTDI_RANGE_01A0_PID 0x01A0 ++#define MTXORB_FTDI_RANGE_01A1_PID 0x01A1 ++#define MTXORB_FTDI_RANGE_01A2_PID 0x01A2 ++#define MTXORB_FTDI_RANGE_01A3_PID 0x01A3 ++#define MTXORB_FTDI_RANGE_01A4_PID 0x01A4 ++#define MTXORB_FTDI_RANGE_01A5_PID 0x01A5 ++#define MTXORB_FTDI_RANGE_01A6_PID 0x01A6 ++#define MTXORB_FTDI_RANGE_01A7_PID 0x01A7 ++#define MTXORB_FTDI_RANGE_01A8_PID 0x01A8 ++#define MTXORB_FTDI_RANGE_01A9_PID 0x01A9 ++#define MTXORB_FTDI_RANGE_01AA_PID 0x01AA ++#define MTXORB_FTDI_RANGE_01AB_PID 0x01AB ++#define MTXORB_FTDI_RANGE_01AC_PID 0x01AC ++#define MTXORB_FTDI_RANGE_01AD_PID 0x01AD ++#define MTXORB_FTDI_RANGE_01AE_PID 0x01AE ++#define MTXORB_FTDI_RANGE_01AF_PID 0x01AF ++#define MTXORB_FTDI_RANGE_01B0_PID 0x01B0 ++#define MTXORB_FTDI_RANGE_01B1_PID 0x01B1 ++#define MTXORB_FTDI_RANGE_01B2_PID 0x01B2 ++#define MTXORB_FTDI_RANGE_01B3_PID 0x01B3 ++#define MTXORB_FTDI_RANGE_01B4_PID 0x01B4 ++#define MTXORB_FTDI_RANGE_01B5_PID 0x01B5 ++#define MTXORB_FTDI_RANGE_01B6_PID 0x01B6 ++#define MTXORB_FTDI_RANGE_01B7_PID 0x01B7 ++#define MTXORB_FTDI_RANGE_01B8_PID 0x01B8 ++#define MTXORB_FTDI_RANGE_01B9_PID 0x01B9 ++#define MTXORB_FTDI_RANGE_01BA_PID 0x01BA ++#define MTXORB_FTDI_RANGE_01BB_PID 0x01BB ++#define MTXORB_FTDI_RANGE_01BC_PID 0x01BC ++#define MTXORB_FTDI_RANGE_01BD_PID 0x01BD ++#define MTXORB_FTDI_RANGE_01BE_PID 0x01BE ++#define MTXORB_FTDI_RANGE_01BF_PID 0x01BF ++#define MTXORB_FTDI_RANGE_01C0_PID 0x01C0 ++#define MTXORB_FTDI_RANGE_01C1_PID 0x01C1 ++#define MTXORB_FTDI_RANGE_01C2_PID 0x01C2 ++#define MTXORB_FTDI_RANGE_01C3_PID 0x01C3 ++#define MTXORB_FTDI_RANGE_01C4_PID 0x01C4 ++#define MTXORB_FTDI_RANGE_01C5_PID 0x01C5 ++#define MTXORB_FTDI_RANGE_01C6_PID 0x01C6 ++#define MTXORB_FTDI_RANGE_01C7_PID 0x01C7 ++#define MTXORB_FTDI_RANGE_01C8_PID 0x01C8 ++#define MTXORB_FTDI_RANGE_01C9_PID 0x01C9 ++#define MTXORB_FTDI_RANGE_01CA_PID 0x01CA ++#define MTXORB_FTDI_RANGE_01CB_PID 0x01CB ++#define MTXORB_FTDI_RANGE_01CC_PID 0x01CC ++#define MTXORB_FTDI_RANGE_01CD_PID 0x01CD ++#define MTXORB_FTDI_RANGE_01CE_PID 0x01CE ++#define MTXORB_FTDI_RANGE_01CF_PID 0x01CF ++#define MTXORB_FTDI_RANGE_01D0_PID 0x01D0 ++#define MTXORB_FTDI_RANGE_01D1_PID 0x01D1 ++#define MTXORB_FTDI_RANGE_01D2_PID 0x01D2 ++#define MTXORB_FTDI_RANGE_01D3_PID 0x01D3 ++#define MTXORB_FTDI_RANGE_01D4_PID 0x01D4 ++#define MTXORB_FTDI_RANGE_01D5_PID 0x01D5 ++#define MTXORB_FTDI_RANGE_01D6_PID 0x01D6 ++#define MTXORB_FTDI_RANGE_01D7_PID 0x01D7 ++#define MTXORB_FTDI_RANGE_01D8_PID 0x01D8 ++#define MTXORB_FTDI_RANGE_01D9_PID 0x01D9 ++#define MTXORB_FTDI_RANGE_01DA_PID 0x01DA ++#define MTXORB_FTDI_RANGE_01DB_PID 0x01DB ++#define MTXORB_FTDI_RANGE_01DC_PID 0x01DC ++#define MTXORB_FTDI_RANGE_01DD_PID 0x01DD ++#define MTXORB_FTDI_RANGE_01DE_PID 0x01DE ++#define MTXORB_FTDI_RANGE_01DF_PID 0x01DF ++#define MTXORB_FTDI_RANGE_01E0_PID 0x01E0 ++#define MTXORB_FTDI_RANGE_01E1_PID 0x01E1 ++#define MTXORB_FTDI_RANGE_01E2_PID 0x01E2 ++#define MTXORB_FTDI_RANGE_01E3_PID 0x01E3 ++#define MTXORB_FTDI_RANGE_01E4_PID 0x01E4 ++#define MTXORB_FTDI_RANGE_01E5_PID 0x01E5 ++#define MTXORB_FTDI_RANGE_01E6_PID 0x01E6 ++#define MTXORB_FTDI_RANGE_01E7_PID 0x01E7 ++#define MTXORB_FTDI_RANGE_01E8_PID 0x01E8 ++#define MTXORB_FTDI_RANGE_01E9_PID 0x01E9 ++#define MTXORB_FTDI_RANGE_01EA_PID 0x01EA ++#define MTXORB_FTDI_RANGE_01EB_PID 0x01EB ++#define MTXORB_FTDI_RANGE_01EC_PID 0x01EC ++#define MTXORB_FTDI_RANGE_01ED_PID 0x01ED ++#define MTXORB_FTDI_RANGE_01EE_PID 0x01EE ++#define MTXORB_FTDI_RANGE_01EF_PID 0x01EF ++#define MTXORB_FTDI_RANGE_01F0_PID 0x01F0 ++#define MTXORB_FTDI_RANGE_01F1_PID 0x01F1 ++#define MTXORB_FTDI_RANGE_01F2_PID 0x01F2 ++#define MTXORB_FTDI_RANGE_01F3_PID 0x01F3 ++#define MTXORB_FTDI_RANGE_01F4_PID 0x01F4 ++#define MTXORB_FTDI_RANGE_01F5_PID 0x01F5 ++#define MTXORB_FTDI_RANGE_01F6_PID 0x01F6 ++#define MTXORB_FTDI_RANGE_01F7_PID 0x01F7 ++#define MTXORB_FTDI_RANGE_01F8_PID 0x01F8 ++#define MTXORB_FTDI_RANGE_01F9_PID 0x01F9 ++#define MTXORB_FTDI_RANGE_01FA_PID 0x01FA ++#define MTXORB_FTDI_RANGE_01FB_PID 0x01FB ++#define MTXORB_FTDI_RANGE_01FC_PID 0x01FC ++#define MTXORB_FTDI_RANGE_01FD_PID 0x01FD ++#define MTXORB_FTDI_RANGE_01FE_PID 0x01FE ++#define MTXORB_FTDI_RANGE_01FF_PID 0x01FF ++ ++ ++ ++/* Interbiometrics USB I/O Board */ ++/* Developed for Interbiometrics by Rudolf Gugler */ ++#define INTERBIOMETRICS_VID 0x1209 ++#define INTERBIOMETRICS_IOBOARD_PID 0x1002 ++#define INTERBIOMETRICS_MINI_IOBOARD_PID 0x1006 ++ ++/* ++ * The following are the values for the Perle Systems ++ * UltraPort USB serial converters ++ */ ++#define FTDI_PERLE_ULTRAPORT_PID 0xF0C0 /* Perle UltraPort Product Id */ ++ ++/* ++ * The following are the values for the Sealevel SeaLINK+ adapters. ++ * (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and ++ * removed some PIDs that don't seem to match any existing products.) ++ */ ++#define SEALEVEL_VID 0x0c52 /* Sealevel Vendor ID */ ++#define SEALEVEL_2101_PID 0x2101 /* SeaLINK+232 (2101/2105) */ ++#define SEALEVEL_2102_PID 0x2102 /* SeaLINK+485 (2102) */ ++#define SEALEVEL_2103_PID 0x2103 /* SeaLINK+232I (2103) */ ++#define SEALEVEL_2104_PID 0x2104 /* SeaLINK+485I (2104) */ ++#define SEALEVEL_2106_PID 0x9020 /* SeaLINK+422 (2106) */ ++#define SEALEVEL_2201_1_PID 0x2211 /* SeaPORT+2/232 (2201) Port 1 */ ++#define SEALEVEL_2201_2_PID 0x2221 /* SeaPORT+2/232 (2201) Port 2 */ ++#define SEALEVEL_2202_1_PID 0x2212 /* SeaPORT+2/485 (2202) Port 1 */ ++#define SEALEVEL_2202_2_PID 0x2222 /* SeaPORT+2/485 (2202) Port 2 */ ++#define SEALEVEL_2203_1_PID 0x2213 /* SeaPORT+2 (2203) Port 1 */ ++#define SEALEVEL_2203_2_PID 0x2223 /* SeaPORT+2 (2203) Port 2 */ ++#define SEALEVEL_2401_1_PID 0x2411 /* SeaPORT+4/232 (2401) Port 1 */ ++#define SEALEVEL_2401_2_PID 0x2421 /* SeaPORT+4/232 (2401) Port 2 */ ++#define SEALEVEL_2401_3_PID 0x2431 /* SeaPORT+4/232 (2401) Port 3 */ ++#define SEALEVEL_2401_4_PID 0x2441 /* SeaPORT+4/232 (2401) Port 4 */ ++#define SEALEVEL_2402_1_PID 0x2412 /* SeaPORT+4/485 (2402) Port 1 */ ++#define SEALEVEL_2402_2_PID 0x2422 /* SeaPORT+4/485 (2402) Port 2 */ ++#define SEALEVEL_2402_3_PID 0x2432 /* SeaPORT+4/485 (2402) Port 3 */ ++#define SEALEVEL_2402_4_PID 0x2442 /* SeaPORT+4/485 (2402) Port 4 */ ++#define SEALEVEL_2403_1_PID 0x2413 /* SeaPORT+4 (2403) Port 1 */ ++#define SEALEVEL_2403_2_PID 0x2423 /* SeaPORT+4 (2403) Port 2 */ ++#define SEALEVEL_2403_3_PID 0x2433 /* SeaPORT+4 (2403) Port 3 */ ++#define SEALEVEL_2403_4_PID 0x2443 /* SeaPORT+4 (2403) Port 4 */ ++#define SEALEVEL_2801_1_PID 0X2811 /* SeaLINK+8/232 (2801) Port 1 */ ++#define SEALEVEL_2801_2_PID 0X2821 /* SeaLINK+8/232 (2801) Port 2 */ ++#define SEALEVEL_2801_3_PID 0X2831 /* SeaLINK+8/232 (2801) Port 3 */ ++#define SEALEVEL_2801_4_PID 0X2841 /* SeaLINK+8/232 (2801) Port 4 */ ++#define SEALEVEL_2801_5_PID 0X2851 /* SeaLINK+8/232 (2801) Port 5 */ ++#define SEALEVEL_2801_6_PID 0X2861 /* SeaLINK+8/232 (2801) Port 6 */ ++#define SEALEVEL_2801_7_PID 0X2871 /* SeaLINK+8/232 (2801) Port 7 */ ++#define SEALEVEL_2801_8_PID 0X2881 /* SeaLINK+8/232 (2801) Port 8 */ ++#define SEALEVEL_2802_1_PID 0X2812 /* SeaLINK+8/485 (2802) Port 1 */ ++#define SEALEVEL_2802_2_PID 0X2822 /* SeaLINK+8/485 (2802) Port 2 */ ++#define SEALEVEL_2802_3_PID 0X2832 /* SeaLINK+8/485 (2802) Port 3 */ ++#define SEALEVEL_2802_4_PID 0X2842 /* SeaLINK+8/485 (2802) Port 4 */ ++#define SEALEVEL_2802_5_PID 0X2852 /* SeaLINK+8/485 (2802) Port 5 */ ++#define SEALEVEL_2802_6_PID 0X2862 /* SeaLINK+8/485 (2802) Port 6 */ ++#define SEALEVEL_2802_7_PID 0X2872 /* SeaLINK+8/485 (2802) Port 7 */ ++#define SEALEVEL_2802_8_PID 0X2882 /* SeaLINK+8/485 (2802) Port 8 */ ++#define SEALEVEL_2803_1_PID 0X2813 /* SeaLINK+8 (2803) Port 1 */ ++#define SEALEVEL_2803_2_PID 0X2823 /* SeaLINK+8 (2803) Port 2 */ ++#define SEALEVEL_2803_3_PID 0X2833 /* SeaLINK+8 (2803) Port 3 */ ++#define SEALEVEL_2803_4_PID 0X2843 /* SeaLINK+8 (2803) Port 4 */ ++#define SEALEVEL_2803_5_PID 0X2853 /* SeaLINK+8 (2803) Port 5 */ ++#define SEALEVEL_2803_6_PID 0X2863 /* SeaLINK+8 (2803) Port 6 */ ++#define SEALEVEL_2803_7_PID 0X2873 /* SeaLINK+8 (2803) Port 7 */ ++#define SEALEVEL_2803_8_PID 0X2883 /* SeaLINK+8 (2803) Port 8 */ ++ ++/* ++ * The following are the values for two KOBIL chipcard terminals. ++ */ ++#define KOBIL_VID 0x0d46 /* KOBIL Vendor ID */ ++#define KOBIL_CONV_B1_PID 0x2020 /* KOBIL Konverter for B1 */ ++#define KOBIL_CONV_KAAN_PID 0x2021 /* KOBIL_Konverter for KAAN */ ++ ++/* ++ * Icom ID-1 digital transceiver ++ */ ++ ++#define ICOM_ID1_VID 0x0C26 ++#define ICOM_ID1_PID 0x0004 ++ ++/* ++ * ASK.fr devices ++ */ ++#define FTDI_ASK_RDR400_PID 0xC991 /* ASK RDR 400 series card reader */ ++ ++/* ++ * FTDI USB UART chips used in construction projects from the ++ * Elektor Electronics magazine (http://elektor-electronics.co.uk) ++ */ ++#define ELEKTOR_VID 0x0C7D ++#define ELEKTOR_FT323R_PID 0x0005 /* RFID-Reader, issue 09-2006 */ ++ ++/* ++ * DSS-20 Sync Station for Sony Ericsson P800 ++ */ ++#define FTDI_DSS20_PID 0xFC82 ++ ++/* ++ * Home Electronics (www.home-electro.com) USB gadgets ++ */ ++#define FTDI_HE_TIRA1_PID 0xFA78 /* Tira-1 IR transceiver */ ++ ++/* USB-UIRT - An infrared receiver and transmitter using the 8U232AM chip */ ++/* http://home.earthlink.net/~jrhees/USBUIRT/index.htm */ ++#define FTDI_USB_UIRT_PID 0xF850 /* Product Id */ ++ ++/* TNC-X USB-to-packet-radio adapter, versions prior to 3.0 (DLP module) */ ++ ++#define FTDI_TNC_X_PID 0xEBE0 ++ ++/* ++ * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). ++ * All of these devices use FTDI's vendor ID (0x0403). ++ * ++ * The previously included PID for the UO 100 module was incorrect. ++ * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58). ++ * ++ * Armin Laeuger originally sent the PID for the UM 100 module. ++ */ ++#define FTDI_R2000KU_TRUE_RNG 0xFB80 /* R2000KU TRUE RNG */ ++#define FTDI_ELV_UR100_PID 0xFB58 /* USB-RS232-Umsetzer (UR 100) */ ++#define FTDI_ELV_UM100_PID 0xFB5A /* USB-Modul UM 100 */ ++#define FTDI_ELV_UO100_PID 0xFB5B /* USB-Modul UO 100 */ ++#define FTDI_ELV_ALC8500_PID 0xF06E /* ALC 8500 Expert */ ++/* Additional ELV PIDs that default to using the FTDI D2XX drivers on ++ * MS Windows, rather than the FTDI Virtual Com Port drivers. ++ * Maybe these will be easier to use with the libftdi/libusb user-space ++ * drivers, or possibly the Comedi drivers in some cases. */ ++#define FTDI_ELV_CLI7000_PID 0xFB59 /* Computer-Light-Interface (CLI 7000) */ ++#define FTDI_ELV_PPS7330_PID 0xFB5C /* Processor-Power-Supply (PPS 7330) */ ++#define FTDI_ELV_TFM100_PID 0xFB5D /* Temperartur-Feuchte Messgeraet (TFM 100) */ ++#define FTDI_ELV_UDF77_PID 0xFB5E /* USB DCF Funkurh (UDF 77) */ ++#define FTDI_ELV_UIO88_PID 0xFB5F /* USB-I/O Interface (UIO 88) */ ++#define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */ ++#define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */ ++#define FTDI_ELV_USI2_PID 0xF06A /* USB-Schrittmotoren-Interface (USI 2) */ ++#define FTDI_ELV_T1100_PID 0xF06B /* Thermometer (T 1100) */ ++#define FTDI_ELV_PCD200_PID 0xF06C /* PC-Datenlogger (PCD 200) */ ++#define FTDI_ELV_ULA200_PID 0xF06D /* USB-LCD-Ansteuerung (ULA 200) */ ++#define FTDI_ELV_FHZ1000PC_PID 0xF06F /* FHZ 1000 PC */ ++#define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ ++#define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ ++#define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ ++#define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */ ++#define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */ ++#define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */ ++#define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */ ++#define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */ ++#define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */ ++#define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ ++#define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */ ++ ++/* ++ * Definitions for ID TECH (www.idt-net.com) devices ++ */ ++#define IDTECH_VID 0x0ACD /* ID TECH Vendor ID */ ++#define IDTECH_IDT1221U_PID 0x0300 /* IDT1221U USB to RS-232 adapter */ ++ ++/* ++ * Definitions for Omnidirectional Control Technology, Inc. devices ++ */ ++#define OCT_VID 0x0B39 /* OCT vendor ID */ ++/* Note: OCT US101 is also rebadged as Dick Smith Electronics (NZ) XH6381 */ ++/* Also rebadged as Dick Smith Electronics (Aus) XH6451 */ ++/* Also rebadged as SIIG Inc. model US2308 hardware version 1 */ ++#define OCT_US101_PID 0x0421 /* OCT US101 USB to RS-232 */ ++ ++/* an infrared receiver for user access control with IR tags */ ++#define FTDI_PIEGROUP_PID 0xF208 /* Product Id */ ++ ++/* ++ * Definitions for Artemis astronomical USB based cameras ++ * Check it at http://www.artemisccd.co.uk/ ++ */ ++#define FTDI_ARTEMIS_PID 0xDF28 /* All Artemis Cameras */ ++ ++/* ++ * Definitions for ATIK Instruments astronomical USB based cameras ++ * Check it at http://www.atik-instruments.com/ ++ */ ++#define FTDI_ATIK_ATK16_PID 0xDF30 /* ATIK ATK-16 Grayscale Camera */ ++#define FTDI_ATIK_ATK16C_PID 0xDF32 /* ATIK ATK-16C Colour Camera */ ++#define FTDI_ATIK_ATK16HR_PID 0xDF31 /* ATIK ATK-16HR Grayscale Camera */ ++#define FTDI_ATIK_ATK16HRC_PID 0xDF33 /* ATIK ATK-16HRC Colour Camera */ ++#define FTDI_ATIK_ATK16IC_PID 0xDF35 /* ATIK ATK-16IC Grayscale Camera */ ++ ++/* ++ * Protego product ids ++ */ ++#define PROTEGO_SPECIAL_1 0xFC70 /* special/unknown device */ ++#define PROTEGO_R2X0 0xFC71 /* R200-USB TRNG unit (R210, R220, and R230) */ ++#define PROTEGO_SPECIAL_3 0xFC72 /* special/unknown device */ ++#define PROTEGO_SPECIAL_4 0xFC73 /* special/unknown device */ ++ ++/* ++ * Gude Analog- und Digitalsysteme GmbH ++ */ ++#define FTDI_GUDEADS_E808_PID 0xE808 ++#define FTDI_GUDEADS_E809_PID 0xE809 ++#define FTDI_GUDEADS_E80A_PID 0xE80A ++#define FTDI_GUDEADS_E80B_PID 0xE80B ++#define FTDI_GUDEADS_E80C_PID 0xE80C ++#define FTDI_GUDEADS_E80D_PID 0xE80D ++#define FTDI_GUDEADS_E80E_PID 0xE80E ++#define FTDI_GUDEADS_E80F_PID 0xE80F ++#define FTDI_GUDEADS_E888_PID 0xE888 /* Expert ISDN Control USB */ ++#define FTDI_GUDEADS_E889_PID 0xE889 /* USB RS-232 OptoBridge */ ++#define FTDI_GUDEADS_E88A_PID 0xE88A ++#define FTDI_GUDEADS_E88B_PID 0xE88B ++#define FTDI_GUDEADS_E88C_PID 0xE88C ++#define FTDI_GUDEADS_E88D_PID 0xE88D ++#define FTDI_GUDEADS_E88E_PID 0xE88E ++#define FTDI_GUDEADS_E88F_PID 0xE88F ++ ++/* ++ * Linx Technologies product ids ++ */ ++#define LINX_SDMUSBQSS_PID 0xF448 /* Linx SDM-USB-QS-S */ ++#define LINX_MASTERDEVEL2_PID 0xF449 /* Linx Master Development 2.0 */ ++#define LINX_FUTURE_0_PID 0xF44A /* Linx future device */ ++#define LINX_FUTURE_1_PID 0xF44B /* Linx future device */ ++#define LINX_FUTURE_2_PID 0xF44C /* Linx future device */ ++ ++/* CCS Inc. ICDU/ICDU40 product ID - the FT232BM is used in an in-circuit-debugger */ ++/* unit for PIC16's/PIC18's */ ++#define FTDI_CCSICDU20_0_PID 0xF9D0 ++#define FTDI_CCSICDU40_1_PID 0xF9D1 ++#define FTDI_CCSMACHX_2_PID 0xF9D2 ++#define FTDI_CCSLOAD_N_GO_3_PID 0xF9D3 ++#define FTDI_CCSICDU64_4_PID 0xF9D4 ++#define FTDI_CCSPRIME8_5_PID 0xF9D5 ++ ++/* Inside Accesso contactless reader (http://www.insidefr.com) */ ++#define INSIDE_ACCESSO 0xFAD0 ++ ++/* ++ * Intrepid Control Systems (http://www.intrepidcs.com/) ValueCAN and NeoVI ++ */ ++#define INTREPID_VID 0x093C ++#define INTREPID_VALUECAN_PID 0x0601 ++#define INTREPID_NEOVI_PID 0x0701 ++ ++/* ++ * Falcom Wireless Communications GmbH ++ */ ++#define FALCOM_VID 0x0F94 /* Vendor Id */ ++#define FALCOM_TWIST_PID 0x0001 /* Falcom Twist USB GPRS modem */ ++#define FALCOM_SAMBA_PID 0x0005 /* Falcom Samba USB GPRS modem */ ++ ++/* ++ * SUUNTO product ids ++ */ ++#define FTDI_SUUNTO_SPORTS_PID 0xF680 /* Suunto Sports instrument */ ++ ++/* ++ * Oceanic product ids ++ */ ++#define FTDI_OCEANIC_PID 0xF460 /* Oceanic dive instrument */ ++ ++/* ++ * TTi (Thurlby Thandar Instruments) ++ */ ++#define TTI_VID 0x103E /* Vendor Id */ ++#define TTI_QL355P_PID 0x03E8 /* TTi QL355P power supply */ ++ ++/* ++ * Definitions for B&B Electronics products. ++ */ ++#define BANDB_VID 0x0856 /* B&B Electronics Vendor ID */ ++#define BANDB_USOTL4_PID 0xAC01 /* USOTL4 Isolated RS-485 Converter */ ++#define BANDB_USTL4_PID 0xAC02 /* USTL4 RS-485 Converter */ ++#define BANDB_USO9ML2_PID 0xAC03 /* USO9ML2 Isolated RS-232 Converter */ ++#define BANDB_USOPTL4_PID 0xAC11 ++#define BANDB_USPTL4_PID 0xAC12 ++#define BANDB_USO9ML2DR_2_PID 0xAC16 ++#define BANDB_USO9ML2DR_PID 0xAC17 ++#define BANDB_USOPTL4DR2_PID 0xAC18 /* USOPTL4R-2 2-port Isolated RS-232 Converter */ ++#define BANDB_USOPTL4DR_PID 0xAC19 ++#define BANDB_485USB9F_2W_PID 0xAC25 ++#define BANDB_485USB9F_4W_PID 0xAC26 ++#define BANDB_232USB9M_PID 0xAC27 ++#define BANDB_485USBTB_2W_PID 0xAC33 ++#define BANDB_485USBTB_4W_PID 0xAC34 ++#define BANDB_TTL5USB9M_PID 0xAC49 ++#define BANDB_TTL3USB9M_PID 0xAC50 ++#define BANDB_ZZ_PROG1_USB_PID 0xBA02 ++ ++/* ++ * RM Michaelides CANview USB (http://www.rmcan.com) ++ * CAN fieldbus interface adapter, added by port GmbH www.port.de) ++ * Ian Abbott changed the macro names for consistency. ++ */ ++#define FTDI_RM_CANVIEW_PID 0xfd60 /* Product Id */ ++ ++/* ++ * EVER Eco Pro UPS (http://www.ever.com.pl/) ++ */ ++ ++#define EVER_ECO_PRO_CDS 0xe520 /* RS-232 converter */ ++ ++/* ++ * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485, ++ * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices ++ * and I'm not entirely sure which are used by which. ++ */ ++#define FTDI_4N_GALAXY_DE_1_PID 0xF3C0 ++#define FTDI_4N_GALAXY_DE_2_PID 0xF3C1 ++ ++/* ++ * Mobility Electronics products. ++ */ ++#define MOBILITY_VID 0x1342 ++#define MOBILITY_USB_SERIAL_PID 0x0202 /* EasiDock USB 200 serial */ ++ ++/* ++ * microHAM product IDs (http://www.microham.com). ++ * Submitted by Justin Burket (KL1RL) <zorton@jtan.com> ++ * and Mike Studer (K6EEP) <k6eep@hamsoftware.org>. ++ * Ian Abbott <abbotti@mev.co.uk> added a few more from the driver INF file. ++ */ ++#define FTDI_MHAM_KW_PID 0xEEE8 /* USB-KW interface */ ++#define FTDI_MHAM_YS_PID 0xEEE9 /* USB-YS interface */ ++#define FTDI_MHAM_Y6_PID 0xEEEA /* USB-Y6 interface */ ++#define FTDI_MHAM_Y8_PID 0xEEEB /* USB-Y8 interface */ ++#define FTDI_MHAM_IC_PID 0xEEEC /* USB-IC interface */ ++#define FTDI_MHAM_DB9_PID 0xEEED /* USB-DB9 interface */ ++#define FTDI_MHAM_RS232_PID 0xEEEE /* USB-RS232 interface */ ++#define FTDI_MHAM_Y9_PID 0xEEEF /* USB-Y9 interface */ ++ ++/* ++ * Active Robots product ids. ++ */ ++#define FTDI_ACTIVE_ROBOTS_PID 0xE548 /* USB comms board */ ++ ++/* ++ * Xsens Technologies BV products (http://www.xsens.com). ++ */ ++#define XSENS_CONVERTER_0_PID 0xD388 ++#define XSENS_CONVERTER_1_PID 0xD389 ++#define XSENS_CONVERTER_2_PID 0xD38A ++#define XSENS_CONVERTER_3_PID 0xD38B ++#define XSENS_CONVERTER_4_PID 0xD38C ++#define XSENS_CONVERTER_5_PID 0xD38D ++#define XSENS_CONVERTER_6_PID 0xD38E ++#define XSENS_CONVERTER_7_PID 0xD38F ++ ++/* ++ * Teratronik product ids. ++ * Submitted by O. W�lfelschneider. ++ */ ++#define FTDI_TERATRONIK_VCP_PID 0xEC88 /* Teratronik device (preferring VCP driver on windows) */ ++#define FTDI_TERATRONIK_D2XX_PID 0xEC89 /* Teratronik device (preferring D2XX driver on windows) */ ++ ++/* ++ * Evolution Robotics products (http://www.evolution.com/). ++ * Submitted by Shawn M. Lavelle. ++ */ ++#define EVOLUTION_VID 0xDEEE /* Vendor ID */ ++#define EVOLUTION_ER1_PID 0x0300 /* ER1 Control Module */ ++#define EVO_8U232AM_PID 0x02FF /* Evolution robotics RCM2 (FT232AM)*/ ++#define EVO_HYBRID_PID 0x0302 /* Evolution robotics RCM4 PID (FT232BM)*/ ++#define EVO_RCM4_PID 0x0303 /* Evolution robotics RCM4 PID */ ++ ++/* Pyramid Computer GmbH */ ++#define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */ ++ ++/* ++ * NDI (www.ndigital.com) product ids ++ */ ++#define FTDI_NDI_HUC_PID 0xDA70 /* NDI Host USB Converter */ ++#define FTDI_NDI_SPECTRA_SCU_PID 0xDA71 /* NDI Spectra SCU */ ++#define FTDI_NDI_FUTURE_2_PID 0xDA72 /* NDI future device #2 */ ++#define FTDI_NDI_FUTURE_3_PID 0xDA73 /* NDI future device #3 */ ++#define FTDI_NDI_AURORA_SCU_PID 0xDA74 /* NDI Aurora SCU */ ++ ++/* ++ * Posiflex inc retail equipment (http://www.posiflex.com.tw) ++ */ ++#define POSIFLEX_VID 0x0d3a /* Vendor ID */ ++#define POSIFLEX_PP7000_PID 0x0300 /* PP-7000II thermal printer */ ++ ++/* ++ * Westrex International devices submitted by Cory Lee ++ */ ++#define FTDI_WESTREX_MODEL_777_PID 0xDC00 /* Model 777 */ ++#define FTDI_WESTREX_MODEL_8900F_PID 0xDC01 /* Model 8900F */ ++ ++/* ++ * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) ++ */ ++#define FTDI_RRCIRKITS_LOCOBUFFER_PID 0xc7d0 /* LocoBuffer USB */ ++ ++/* ++ * Eclo (http://www.eclo.pt/) product IDs. ++ * PID 0xEA90 submitted by Martin Grill. ++ */ ++#define FTDI_ECLO_COM_1WIRE_PID 0xEA90 /* COM to 1-Wire USB adaptor */ ++ ++/* ++ * Papouch products (http://www.papouch.com/) ++ * Submitted by Folkert van Heusden ++ */ ++ ++#define PAPOUCH_VID 0x5050 /* Vendor ID */ ++#define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ ++#define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ ++ ++/* ++ * ACG Identification Technologies GmbH products (http://www.acg.de/). ++ * Submitted by anton -at- goto10 -dot- org. ++ */ ++#define FTDI_ACG_HFDUAL_PID 0xDD20 /* HF Dual ISO Reader (RFID) */ ++ ++/* ++ * Yost Engineering, Inc. products (www.yostengineering.com). ++ * PID 0xE050 submitted by Aaron Prose. ++ */ ++#define FTDI_YEI_SERVOCENTER31_PID 0xE050 /* YEI ServoCenter3.1 USB */ ++ ++/* ++ * ThorLabs USB motor drivers ++ */ ++#define FTDI_THORLABS_PID 0xfaf0 /* ThorLabs USB motor drivers */ ++ ++/* ++ * Testo products (http://www.testo.com/) ++ * Submitted by Colin Leroy ++ */ ++#define TESTO_VID 0x128D ++#define TESTO_USB_INTERFACE_PID 0x0001 ++ ++/* ++ * Gamma Scout (http://gamma-scout.com/). Submitted by rsc@runtux.com. ++ */ ++#define FTDI_GAMMA_SCOUT_PID 0xD678 /* Gamma Scout online */ ++ ++/* ++ * Tactrix OpenPort (ECU) devices. ++ * OpenPort 1.3M submitted by Donour Sizemore. ++ * OpenPort 1.3S and 1.3U submitted by Ian Abbott. ++ */ ++#define FTDI_TACTRIX_OPENPORT_13M_PID 0xCC48 /* OpenPort 1.3 Mitsubishi */ ++#define FTDI_TACTRIX_OPENPORT_13S_PID 0xCC49 /* OpenPort 1.3 Subaru */ ++#define FTDI_TACTRIX_OPENPORT_13U_PID 0xCC4A /* OpenPort 1.3 Universal */ ++ ++/* ++ * Telldus Technologies ++ */ ++#define TELLDUS_VID 0x1781 /* Vendor ID */ ++#define TELLDUS_TELLSTICK_PID 0x0C30 /* RF control dongle 433 MHz using FT232RL */ ++ ++/* ++ * IBS elektronik product ids ++ * Submitted by Thomas Schleusener ++ */ ++#define FTDI_IBS_US485_PID 0xff38 /* IBS US485 (USB<-->RS422/485 interface) */ ++#define FTDI_IBS_PICPRO_PID 0xff39 /* IBS PIC-Programmer */ ++#define FTDI_IBS_PCMCIA_PID 0xff3a /* IBS Card reader for PCMCIA SRAM-cards */ ++#define FTDI_IBS_PK1_PID 0xff3b /* IBS PK1 - Particel counter */ ++#define FTDI_IBS_RS232MON_PID 0xff3c /* IBS RS232 - Monitor */ ++#define FTDI_IBS_APP70_PID 0xff3d /* APP 70 (dust monitoring system) */ ++#define FTDI_IBS_PEDO_PID 0xff3e /* IBS PEDO-Modem (RF modem 868.35 MHz) */ ++#define FTDI_IBS_PROD_PID 0xff3f /* future device */ ++ ++/* ++ * MaxStream devices www.maxstream.net ++ */ ++#define FTDI_MAXSTREAM_PID 0xEE18 /* Xbee PKG-U Module */ ++ ++/* Olimex */ ++#define OLIMEX_VID 0x15BA ++#define OLIMEX_ARM_USB_OCD_PID 0x0003 ++ ++/* Luminary Micro Stellaris Boards, VID = FTDI_VID */ ++/* FTDI 2332C Dual channel device, side A=245 FIFO (JTAG), Side B=RS232 UART */ ++#define LMI_LM3S_DEVEL_BOARD_PID 0xbcd8 ++#define LMI_LM3S_EVAL_BOARD_PID 0xbcd9 ++ ++/* www.elsterelectricity.com Elster Unicom III Optical Probe */ ++#define FTDI_ELSTER_UNICOM_PID 0xE700 /* Product Id */ ++ ++/* ++ * The Mobility Lab (TML) ++ * Submitted by Pierre Castella ++ */ ++#define TML_VID 0x1B91 /* Vendor ID */ ++#define TML_USB_SERIAL_PID 0x0064 /* USB - Serial Converter */ ++ ++/* Propox devices */ ++#define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 ++ ++/* Rig Expert Ukraine devices */ ++#define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */ ++ ++/* Domintell products http://www.domintell.com */ ++#define FTDI_DOMINTELL_DGQG_PID 0xEF50 /* Master */ ++#define FTDI_DOMINTELL_DUSB_PID 0xEF51 /* DUSB01 module */ ++ ++/* Alti-2 products http://www.alti-2.com */ ++#define ALTI2_VID 0x1BC9 ++#define ALTI2_N3_PID 0x6001 /* Neptune 3 */ ++ ++/* ++ * FIC / OpenMoko, Inc. http://wiki.openmoko.org/wiki/Neo1973_Debug_Board_v3 ++ * Submitted by Harald Welte <laforge@openmoko.org> ++ */ ++#define FIC_VID 0x1457 ++#define FIC_NEO1973_DEBUG_PID 0x5118 ++ ++/* ++ * RATOC REX-USB60F ++ */ ++#define RATOC_VENDOR_ID 0x0584 ++#define RATOC_PRODUCT_ID_USB60F 0xb020 ++ ++/* ++ * DIEBOLD BCS SE923 ++ */ ++#define DIEBOLD_BCS_SE923_PID 0xfb99 ++ ++/* ++ * Atmel STK541 ++ */ ++#define ATMEL_VID 0x03eb /* Vendor ID */ ++#define STK541_PID 0x2109 /* Zigbee Controller */ ++ ++/* ++ * Dresden Elektronic Sensor Terminal Board ++ */ ++#define DE_VID 0x1cf1 /* Vendor ID */ ++#define STB_PID 0x0001 /* Sensor Terminal Board */ ++#define WHT_PID 0x0004 /* Wireless Handheld Terminal */ ++ ++/* ++ * Blackfin gnICE JTAG ++ * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice ++ */ ++#define ADI_VID 0x0456 ++#define ADI_GNICE_PID 0xF000 ++#define ADI_GNICEPLUS_PID 0xF001 ++ ++/* ++ * JETI SPECTROMETER SPECBOS 1201 ++ * http://www.jeti.com/products/sys/scb/scb1201.php ++ */ ++#define JETI_VID 0x0c6c ++#define JETI_SPC1201_PID 0x04b2 ++ ++/* ++ * Marvell SheevaPlug ++ */ ++#define MARVELL_VID 0x9e88 ++#define MARVELL_SHEEVAPLUG_PID 0x9e8f ++ ++#define FTDI_TURTELIZER_PID 0xBDC8 /* JTAG/RS-232 adapter by egnite GmBH */ ++ ++/* ++ * GN Otometrics (http://www.otometrics.com) ++ * Submitted by Ville Sundberg. ++ */ ++#define GN_OTOMETRICS_VID 0x0c33 /* Vendor ID */ ++#define AURICAL_USB_PID 0x0010 /* Aurical USB Audiometer */ ++ ++/* ++ * Bayer Ascensia Contour blood glucose meter USB-converter cable. ++ * http://winglucofacts.com/cables/ ++ */ ++#define BAYER_VID 0x1A79 ++#define BAYER_CONTOUR_CABLE_PID 0x6001 ++ ++/* ++ * Marvell OpenRD Base, Client ++ * http://www.open-rd.org ++ * OpenRD Base, Client use VID 0x0403 ++ */ ++#define MARVELL_OPENRD_PID 0x9e90 ++ ++/* ++ * Hameg HO820 and HO870 interface (using VID 0x0403) ++ */ ++#define HAMEG_HO820_PID 0xed74 ++#define HAMEG_HO870_PID 0xed71 ++ diff --git a/usb.current/usb-ftdi_sio-sort-pid-vid-entries-in-new-ftdi_sio_ids.h-header.patch b/usb.current/usb-ftdi_sio-sort-pid-vid-entries-in-new-ftdi_sio_ids.h-header.patch new file mode 100644 index 00000000000000..489cec625adc30 --- /dev/null +++ b/usb.current/usb-ftdi_sio-sort-pid-vid-entries-in-new-ftdi_sio_ids.h-header.patch @@ -0,0 +1,1720 @@ +From andi@lisas.de Tue Dec 22 14:36:00 2009 +From: Andreas Mohr <andi@lisas.de> +Date: Thu, 17 Dec 2009 11:56:09 +0100 +Subject: USB: ftdi_sio: sort PID/VID entries in new ftdi_sio_ids.h header +To: Greg KH <gregkh@suse.de> +Cc: Andreas Mohr <andi@lisas.de>, kuba@mareimbrium.org, linux-usb@vger.kernel.org +Message-ID: <20091217105607.GA12983@rhlx01.hs-esslingen.de> +Content-Disposition: inline + + +This is a (almost) sort-only patch to sort FTDI device +product ID definitions in new ftdi_sio_ids.h header. + +Advantage is that new device ID submissions will now have a specific (sorted) +position - less future merge conflicts. + +Compile-tested, based on _current_ mainline git. +Minor checkpatch.pl warnings were eliminated whereever it made sense, +very minor text changes. + + +Signed-off-by: Andreas Mohr <andi@lisas.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + + +--- + drivers/usb/serial/ftdi_sio_ids.h | 1487 +++++++++++++++++++------------------- + 1 file changed, 757 insertions(+), 730 deletions(-) + +--- a/drivers/usb/serial/ftdi_sio_ids.h ++++ b/drivers/usb/serial/ftdi_sio_ids.h +@@ -1,36 +1,85 @@ + /* + * vendor/product IDs (VID/PID) of devices using FTDI USB serial converters. ++ * Please keep numerically sorted within individual areas, thanks! + * + * Philipp G�hring - pg@futureware.at - added the Device ID of the USB relais + * from Rudolf Gugler + * + */ + ++ ++/**********************************/ ++/***** devices using FTDI VID *****/ ++/**********************************/ ++ ++ + #define FTDI_VID 0x0403 /* Vendor Id */ +-#define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ ++ ++ ++/*** "original" FTDI device PIDs ***/ ++ + #define FTDI_8U232AM_PID 0x6001 /* Similar device to SIO above */ + #define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */ + #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ +-#define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ + #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ +-#define FTDI_RELAIS_PID 0xFA10 /* Relais device from Rudolf Gugler */ +-#define FTDI_NF_RIC_VID 0x0DCD /* Vendor Id */ +-#define FTDI_NF_RIC_PID 0x0001 /* Product Id */ +-#define FTDI_USBX_707_PID 0xF857 /* ADSTech IR Blaster USBX-707 */ ++#define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ ++#define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ + +-/* Larsen and Brusgaard AltiTrack/USBtrack */ +-#define LARSENBRUSGAARD_VID 0x0FD8 +-#define LB_ALTITRACK_PID 0x0001 + +-/* www.canusb.com Lawicel CANUSB device */ +-#define FTDI_CANUSB_PID 0xFFA8 /* Product Id */ ++/*** third-party PIDs (using FTDI_VID) ***/ + +-/* AlphaMicro Components AMC-232USB01 device */ +-#define FTDI_AMC232_PID 0xFF00 /* Product Id */ ++/* ++ * Marvell OpenRD Base, Client ++ * http://www.open-rd.org ++ * OpenRD Base, Client use VID 0x0403 ++ */ ++#define MARVELL_OPENRD_PID 0x9e90 + + /* www.candapter.com Ewert Energy Systems CANdapter device */ + #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ + ++/* OOCDlink by Joern Kaipf <joernk@web.de> ++ * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ ++#define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ ++ ++/* Luminary Micro Stellaris Boards, VID = FTDI_VID */ ++/* FTDI 2332C Dual channel device, side A=245 FIFO (JTAG), Side B=RS232 UART */ ++#define LMI_LM3S_DEVEL_BOARD_PID 0xbcd8 ++#define LMI_LM3S_EVAL_BOARD_PID 0xbcd9 ++ ++#define FTDI_TURTELIZER_PID 0xBDC8 /* JTAG/RS-232 adapter by egnite GmBH */ ++ ++/* OpenDCC (www.opendcc.de) product id */ ++#define FTDI_OPENDCC_PID 0xBFD8 ++#define FTDI_OPENDCC_SNIFFER_PID 0xBFD9 ++#define FTDI_OPENDCC_THROTTLE_PID 0xBFDA ++#define FTDI_OPENDCC_GATEWAY_PID 0xBFDB ++ ++/* ++ * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) ++ */ ++#define FTDI_RRCIRKITS_LOCOBUFFER_PID 0xc7d0 /* LocoBuffer USB */ ++ ++/* DMX4ALL DMX Interfaces */ ++#define FTDI_DMX4ALL 0xC850 ++ ++/* ++ * ASK.fr devices ++ */ ++#define FTDI_ASK_RDR400_PID 0xC991 /* ASK RDR 400 series card reader */ ++ ++/* www.starting-point-systems.com �Chameleon device */ ++#define FTDI_MICRO_CHAMELEON_PID 0xCAA0 /* Product Id */ ++ ++/* ++ * Tactrix OpenPort (ECU) devices. ++ * OpenPort 1.3M submitted by Donour Sizemore. ++ * OpenPort 1.3S and 1.3U submitted by Ian Abbott. ++ */ ++#define FTDI_TACTRIX_OPENPORT_13M_PID 0xCC48 /* OpenPort 1.3 Mitsubishi */ ++#define FTDI_TACTRIX_OPENPORT_13S_PID 0xCC49 /* OpenPort 1.3 Subaru */ ++#define FTDI_TACTRIX_OPENPORT_13U_PID 0xCC4A /* OpenPort 1.3 Universal */ ++ + /* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */ + /* the VID is the standard ftdi vid (FTDI_VID) */ + #define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */ +@@ -42,523 +91,280 @@ + #define FTDI_SCS_DEVICE_6_PID 0xD016 + #define FTDI_SCS_DEVICE_7_PID 0xD017 + +-/* ACT Solutions HomePro ZWave interface (http://www.act-solutions.com/HomePro.htm) */ +-#define FTDI_ACTZWAVE_PID 0xF2D0 ++/* iPlus device */ ++#define FTDI_IPLUS_PID 0xD070 /* Product Id */ ++#define FTDI_IPLUS2_PID 0xD071 /* Product Id */ + ++/* ++ * Gamma Scout (http://gamma-scout.com/). Submitted by rsc@runtux.com. ++ */ ++#define FTDI_GAMMA_SCOUT_PID 0xD678 /* Gamma Scout online */ + +-/* www.starting-point-systems.com �Chameleon device */ +-#define FTDI_MICRO_CHAMELEON_PID 0xCAA0 /* Product Id */ ++/* Propox devices */ ++#define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 + +-/* www.irtrans.de device */ +-#define FTDI_IRTRANS_PID 0xFC60 /* Product Id */ ++/* ++ * Xsens Technologies BV products (http://www.xsens.com). ++ */ ++#define XSENS_CONVERTER_0_PID 0xD388 ++#define XSENS_CONVERTER_1_PID 0xD389 ++#define XSENS_CONVERTER_2_PID 0xD38A ++#define XSENS_CONVERTER_3_PID 0xD38B ++#define XSENS_CONVERTER_4_PID 0xD38C ++#define XSENS_CONVERTER_5_PID 0xD38D ++#define XSENS_CONVERTER_6_PID 0xD38E ++#define XSENS_CONVERTER_7_PID 0xD38F + ++/* ++ * NDI (www.ndigital.com) product ids ++ */ ++#define FTDI_NDI_HUC_PID 0xDA70 /* NDI Host USB Converter */ ++#define FTDI_NDI_SPECTRA_SCU_PID 0xDA71 /* NDI Spectra SCU */ ++#define FTDI_NDI_FUTURE_2_PID 0xDA72 /* NDI future device #2 */ ++#define FTDI_NDI_FUTURE_3_PID 0xDA73 /* NDI future device #3 */ ++#define FTDI_NDI_AURORA_SCU_PID 0xDA74 /* NDI Aurora SCU */ + +-/* www.thoughttechnology.com/ TT-USB provide with procomp use ftdi_sio */ +-#define FTDI_TTUSB_PID 0xFF20 /* Product Id */ ++/* ++ * Westrex International devices submitted by Cory Lee ++ */ ++#define FTDI_WESTREX_MODEL_777_PID 0xDC00 /* Model 777 */ ++#define FTDI_WESTREX_MODEL_8900F_PID 0xDC01 /* Model 8900F */ + +-/* iPlus device */ +-#define FTDI_IPLUS_PID 0xD070 /* Product Id */ +-#define FTDI_IPLUS2_PID 0xD071 /* Product Id */ ++/* ++ * ACG Identification Technologies GmbH products (http://www.acg.de/). ++ * Submitted by anton -at- goto10 -dot- org. ++ */ ++#define FTDI_ACG_HFDUAL_PID 0xDD20 /* HF Dual ISO Reader (RFID) */ + +-/* DMX4ALL DMX Interfaces */ +-#define FTDI_DMX4ALL 0xC850 ++/* ++ * Definitions for Artemis astronomical USB based cameras ++ * Check it at http://www.artemisccd.co.uk/ ++ */ ++#define FTDI_ARTEMIS_PID 0xDF28 /* All Artemis Cameras */ + +-/* OpenDCC (www.opendcc.de) product id */ +-#define FTDI_OPENDCC_PID 0xBFD8 +-#define FTDI_OPENDCC_SNIFFER_PID 0xBFD9 +-#define FTDI_OPENDCC_THROTTLE_PID 0xBFDA +-#define FTDI_OPENDCC_GATEWAY_PID 0xBFDB ++/* ++ * Definitions for ATIK Instruments astronomical USB based cameras ++ * Check it at http://www.atik-instruments.com/ ++ */ ++#define FTDI_ATIK_ATK16_PID 0xDF30 /* ATIK ATK-16 Grayscale Camera */ ++#define FTDI_ATIK_ATK16C_PID 0xDF32 /* ATIK ATK-16C Colour Camera */ ++#define FTDI_ATIK_ATK16HR_PID 0xDF31 /* ATIK ATK-16HR Grayscale Camera */ ++#define FTDI_ATIK_ATK16HRC_PID 0xDF33 /* ATIK ATK-16HRC Colour Camera */ ++#define FTDI_ATIK_ATK16IC_PID 0xDF35 /* ATIK ATK-16IC Grayscale Camera */ + +-/* Sprog II (Andrew Crosland's SprogII DCC interface) */ +-#define FTDI_SPROG_II 0xF0C8 ++/* ++ * Yost Engineering, Inc. products (www.yostengineering.com). ++ * PID 0xE050 submitted by Aaron Prose. ++ */ ++#define FTDI_YEI_SERVOCENTER31_PID 0xE050 /* YEI ServoCenter3.1 USB */ + +-/* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */ +-/* they use the ftdi chipset for the USB interface and the vendor id is the same */ +-#define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ +-#define FTDI_XF_634_PID 0xFC09 /* 634: 20x4 Character Display */ +-#define FTDI_XF_547_PID 0xFC0A /* 547: Two line Display */ +-#define FTDI_XF_633_PID 0xFC0B /* 633: 16x2 Character Display with Keys */ +-#define FTDI_XF_631_PID 0xFC0C /* 631: 20x2 Character Display */ +-#define FTDI_XF_635_PID 0xFC0D /* 635: 20x4 Character Display */ +-#define FTDI_XF_640_PID 0xFC0E /* 640: Two line Display */ +-#define FTDI_XF_642_PID 0xFC0F /* 642: Two line Display */ ++/* ++ * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). ++ * All of these devices use FTDI's vendor ID (0x0403). ++ * ++ * The previously included PID for the UO 100 module was incorrect. ++ * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58). ++ * ++ * Armin Laeuger originally sent the PID for the UM 100 module. ++ */ ++#define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */ ++#define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */ ++#define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */ ++#define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ ++#define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ ++#define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ ++#define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ ++#define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */ ++#define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */ ++#define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */ ++#define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */ ++#define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */ ++#define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */ ++#define FTDI_ELV_USI2_PID 0xF06A /* USB-Schrittmotoren-Interface (USI 2) */ ++#define FTDI_ELV_T1100_PID 0xF06B /* Thermometer (T 1100) */ ++#define FTDI_ELV_PCD200_PID 0xF06C /* PC-Datenlogger (PCD 200) */ ++#define FTDI_ELV_ULA200_PID 0xF06D /* USB-LCD-Ansteuerung (ULA 200) */ ++#define FTDI_ELV_ALC8500_PID 0xF06E /* ALC 8500 Expert */ ++#define FTDI_ELV_FHZ1000PC_PID 0xF06F /* FHZ 1000 PC */ ++#define FTDI_ELV_UR100_PID 0xFB58 /* USB-RS232-Umsetzer (UR 100) */ ++#define FTDI_ELV_UM100_PID 0xFB5A /* USB-Modul UM 100 */ ++#define FTDI_ELV_UO100_PID 0xFB5B /* USB-Modul UO 100 */ ++/* Additional ELV PIDs that default to using the FTDI D2XX drivers on ++ * MS Windows, rather than the FTDI Virtual Com Port drivers. ++ * Maybe these will be easier to use with the libftdi/libusb user-space ++ * drivers, or possibly the Comedi drivers in some cases. */ ++#define FTDI_ELV_CLI7000_PID 0xFB59 /* Computer-Light-Interface (CLI 7000) */ ++#define FTDI_ELV_PPS7330_PID 0xFB5C /* Processor-Power-Supply (PPS 7330) */ ++#define FTDI_ELV_TFM100_PID 0xFB5D /* Temperartur-Feuchte Messgeraet (TFM 100) */ ++#define FTDI_ELV_UDF77_PID 0xFB5E /* USB DCF Funkurh (UDF 77) */ ++#define FTDI_ELV_UIO88_PID 0xFB5F /* USB-I/O Interface (UIO 88) */ + +-/* Video Networks Limited / Homechoice in the UK use an ftdi-based device for their 1Mb */ +-/* broadband internet service. The following PID is exhibited by the usb device supplied */ +-/* (the VID is the standard ftdi vid (FTDI_VID) */ +-#define FTDI_VNHCPCUSB_D_PID 0xfe38 /* Product Id */ ++/* ++ * EVER Eco Pro UPS (http://www.ever.com.pl/) ++ */ ++ ++#define EVER_ECO_PRO_CDS 0xe520 /* RS-232 converter */ + + /* +- * PCDJ use ftdi based dj-controllers. The following PID is for their DAC-2 device +- * http://www.pcdjhardware.com/DAC2.asp (PID sent by Wouter Paesen) +- * (the VID is the standard ftdi vid (FTDI_VID) */ +-#define FTDI_PCDJ_DAC2_PID 0xFA88 ++ * Active Robots product ids. ++ */ ++#define FTDI_ACTIVE_ROBOTS_PID 0xE548 /* USB comms board */ ++ ++/* Pyramid Computer GmbH */ ++#define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */ ++ ++/* www.elsterelectricity.com Elster Unicom III Optical Probe */ ++#define FTDI_ELSTER_UNICOM_PID 0xE700 /* Product Id */ + + /* +- * The following are the values for the Matrix Orbital LCD displays, +- * which are the FT232BM ( similar to the 8U232AM ) ++ * Gude Analog- und Digitalsysteme GmbH + */ +-#define FTDI_MTXORB_0_PID 0xFA00 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_1_PID 0xFA01 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_2_PID 0xFA02 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_3_PID 0xFA03 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_4_PID 0xFA04 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_5_PID 0xFA05 /* Matrix Orbital Product Id */ +-#define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */ ++#define FTDI_GUDEADS_E808_PID 0xE808 ++#define FTDI_GUDEADS_E809_PID 0xE809 ++#define FTDI_GUDEADS_E80A_PID 0xE80A ++#define FTDI_GUDEADS_E80B_PID 0xE80B ++#define FTDI_GUDEADS_E80C_PID 0xE80C ++#define FTDI_GUDEADS_E80D_PID 0xE80D ++#define FTDI_GUDEADS_E80E_PID 0xE80E ++#define FTDI_GUDEADS_E80F_PID 0xE80F ++#define FTDI_GUDEADS_E888_PID 0xE888 /* Expert ISDN Control USB */ ++#define FTDI_GUDEADS_E889_PID 0xE889 /* USB RS-232 OptoBridge */ ++#define FTDI_GUDEADS_E88A_PID 0xE88A ++#define FTDI_GUDEADS_E88B_PID 0xE88B ++#define FTDI_GUDEADS_E88C_PID 0xE88C ++#define FTDI_GUDEADS_E88D_PID 0xE88D ++#define FTDI_GUDEADS_E88E_PID 0xE88E ++#define FTDI_GUDEADS_E88F_PID 0xE88F + +-/* OOCDlink by Joern Kaipf <joernk@web.de> +- * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ +-#define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ ++/* ++ * Eclo (http://www.eclo.pt/) product IDs. ++ * PID 0xEA90 submitted by Martin Grill. ++ */ ++#define FTDI_ECLO_COM_1WIRE_PID 0xEA90 /* COM to 1-Wire USB adaptor */ ++ ++/* TNC-X USB-to-packet-radio adapter, versions prior to 3.0 (DLP module) */ ++#define FTDI_TNC_X_PID 0xEBE0 + + /* +- * The following are the values for the Matrix Orbital FTDI Range +- * Anything in this range will use an FT232RL. ++ * Teratronik product ids. ++ * Submitted by O. W�lfelschneider. + */ +-#define MTXORB_VID 0x1B3D +-#define MTXORB_FTDI_RANGE_0100_PID 0x0100 +-#define MTXORB_FTDI_RANGE_0101_PID 0x0101 +-#define MTXORB_FTDI_RANGE_0102_PID 0x0102 +-#define MTXORB_FTDI_RANGE_0103_PID 0x0103 +-#define MTXORB_FTDI_RANGE_0104_PID 0x0104 +-#define MTXORB_FTDI_RANGE_0105_PID 0x0105 +-#define MTXORB_FTDI_RANGE_0106_PID 0x0106 +-#define MTXORB_FTDI_RANGE_0107_PID 0x0107 +-#define MTXORB_FTDI_RANGE_0108_PID 0x0108 +-#define MTXORB_FTDI_RANGE_0109_PID 0x0109 +-#define MTXORB_FTDI_RANGE_010A_PID 0x010A +-#define MTXORB_FTDI_RANGE_010B_PID 0x010B +-#define MTXORB_FTDI_RANGE_010C_PID 0x010C +-#define MTXORB_FTDI_RANGE_010D_PID 0x010D +-#define MTXORB_FTDI_RANGE_010E_PID 0x010E +-#define MTXORB_FTDI_RANGE_010F_PID 0x010F +-#define MTXORB_FTDI_RANGE_0110_PID 0x0110 +-#define MTXORB_FTDI_RANGE_0111_PID 0x0111 +-#define MTXORB_FTDI_RANGE_0112_PID 0x0112 +-#define MTXORB_FTDI_RANGE_0113_PID 0x0113 +-#define MTXORB_FTDI_RANGE_0114_PID 0x0114 +-#define MTXORB_FTDI_RANGE_0115_PID 0x0115 +-#define MTXORB_FTDI_RANGE_0116_PID 0x0116 +-#define MTXORB_FTDI_RANGE_0117_PID 0x0117 +-#define MTXORB_FTDI_RANGE_0118_PID 0x0118 +-#define MTXORB_FTDI_RANGE_0119_PID 0x0119 +-#define MTXORB_FTDI_RANGE_011A_PID 0x011A +-#define MTXORB_FTDI_RANGE_011B_PID 0x011B +-#define MTXORB_FTDI_RANGE_011C_PID 0x011C +-#define MTXORB_FTDI_RANGE_011D_PID 0x011D +-#define MTXORB_FTDI_RANGE_011E_PID 0x011E +-#define MTXORB_FTDI_RANGE_011F_PID 0x011F +-#define MTXORB_FTDI_RANGE_0120_PID 0x0120 +-#define MTXORB_FTDI_RANGE_0121_PID 0x0121 +-#define MTXORB_FTDI_RANGE_0122_PID 0x0122 +-#define MTXORB_FTDI_RANGE_0123_PID 0x0123 +-#define MTXORB_FTDI_RANGE_0124_PID 0x0124 +-#define MTXORB_FTDI_RANGE_0125_PID 0x0125 +-#define MTXORB_FTDI_RANGE_0126_PID 0x0126 +-#define MTXORB_FTDI_RANGE_0127_PID 0x0127 +-#define MTXORB_FTDI_RANGE_0128_PID 0x0128 +-#define MTXORB_FTDI_RANGE_0129_PID 0x0129 +-#define MTXORB_FTDI_RANGE_012A_PID 0x012A +-#define MTXORB_FTDI_RANGE_012B_PID 0x012B +-#define MTXORB_FTDI_RANGE_012C_PID 0x012C +-#define MTXORB_FTDI_RANGE_012D_PID 0x012D +-#define MTXORB_FTDI_RANGE_012E_PID 0x012E +-#define MTXORB_FTDI_RANGE_012F_PID 0x012F +-#define MTXORB_FTDI_RANGE_0130_PID 0x0130 +-#define MTXORB_FTDI_RANGE_0131_PID 0x0131 +-#define MTXORB_FTDI_RANGE_0132_PID 0x0132 +-#define MTXORB_FTDI_RANGE_0133_PID 0x0133 +-#define MTXORB_FTDI_RANGE_0134_PID 0x0134 +-#define MTXORB_FTDI_RANGE_0135_PID 0x0135 +-#define MTXORB_FTDI_RANGE_0136_PID 0x0136 +-#define MTXORB_FTDI_RANGE_0137_PID 0x0137 +-#define MTXORB_FTDI_RANGE_0138_PID 0x0138 +-#define MTXORB_FTDI_RANGE_0139_PID 0x0139 +-#define MTXORB_FTDI_RANGE_013A_PID 0x013A +-#define MTXORB_FTDI_RANGE_013B_PID 0x013B +-#define MTXORB_FTDI_RANGE_013C_PID 0x013C +-#define MTXORB_FTDI_RANGE_013D_PID 0x013D +-#define MTXORB_FTDI_RANGE_013E_PID 0x013E +-#define MTXORB_FTDI_RANGE_013F_PID 0x013F +-#define MTXORB_FTDI_RANGE_0140_PID 0x0140 +-#define MTXORB_FTDI_RANGE_0141_PID 0x0141 +-#define MTXORB_FTDI_RANGE_0142_PID 0x0142 +-#define MTXORB_FTDI_RANGE_0143_PID 0x0143 +-#define MTXORB_FTDI_RANGE_0144_PID 0x0144 +-#define MTXORB_FTDI_RANGE_0145_PID 0x0145 +-#define MTXORB_FTDI_RANGE_0146_PID 0x0146 +-#define MTXORB_FTDI_RANGE_0147_PID 0x0147 +-#define MTXORB_FTDI_RANGE_0148_PID 0x0148 +-#define MTXORB_FTDI_RANGE_0149_PID 0x0149 +-#define MTXORB_FTDI_RANGE_014A_PID 0x014A +-#define MTXORB_FTDI_RANGE_014B_PID 0x014B +-#define MTXORB_FTDI_RANGE_014C_PID 0x014C +-#define MTXORB_FTDI_RANGE_014D_PID 0x014D +-#define MTXORB_FTDI_RANGE_014E_PID 0x014E +-#define MTXORB_FTDI_RANGE_014F_PID 0x014F +-#define MTXORB_FTDI_RANGE_0150_PID 0x0150 +-#define MTXORB_FTDI_RANGE_0151_PID 0x0151 +-#define MTXORB_FTDI_RANGE_0152_PID 0x0152 +-#define MTXORB_FTDI_RANGE_0153_PID 0x0153 +-#define MTXORB_FTDI_RANGE_0154_PID 0x0154 +-#define MTXORB_FTDI_RANGE_0155_PID 0x0155 +-#define MTXORB_FTDI_RANGE_0156_PID 0x0156 +-#define MTXORB_FTDI_RANGE_0157_PID 0x0157 +-#define MTXORB_FTDI_RANGE_0158_PID 0x0158 +-#define MTXORB_FTDI_RANGE_0159_PID 0x0159 +-#define MTXORB_FTDI_RANGE_015A_PID 0x015A +-#define MTXORB_FTDI_RANGE_015B_PID 0x015B +-#define MTXORB_FTDI_RANGE_015C_PID 0x015C +-#define MTXORB_FTDI_RANGE_015D_PID 0x015D +-#define MTXORB_FTDI_RANGE_015E_PID 0x015E +-#define MTXORB_FTDI_RANGE_015F_PID 0x015F +-#define MTXORB_FTDI_RANGE_0160_PID 0x0160 +-#define MTXORB_FTDI_RANGE_0161_PID 0x0161 +-#define MTXORB_FTDI_RANGE_0162_PID 0x0162 +-#define MTXORB_FTDI_RANGE_0163_PID 0x0163 +-#define MTXORB_FTDI_RANGE_0164_PID 0x0164 +-#define MTXORB_FTDI_RANGE_0165_PID 0x0165 +-#define MTXORB_FTDI_RANGE_0166_PID 0x0166 +-#define MTXORB_FTDI_RANGE_0167_PID 0x0167 +-#define MTXORB_FTDI_RANGE_0168_PID 0x0168 +-#define MTXORB_FTDI_RANGE_0169_PID 0x0169 +-#define MTXORB_FTDI_RANGE_016A_PID 0x016A +-#define MTXORB_FTDI_RANGE_016B_PID 0x016B +-#define MTXORB_FTDI_RANGE_016C_PID 0x016C +-#define MTXORB_FTDI_RANGE_016D_PID 0x016D +-#define MTXORB_FTDI_RANGE_016E_PID 0x016E +-#define MTXORB_FTDI_RANGE_016F_PID 0x016F +-#define MTXORB_FTDI_RANGE_0170_PID 0x0170 +-#define MTXORB_FTDI_RANGE_0171_PID 0x0171 +-#define MTXORB_FTDI_RANGE_0172_PID 0x0172 +-#define MTXORB_FTDI_RANGE_0173_PID 0x0173 +-#define MTXORB_FTDI_RANGE_0174_PID 0x0174 +-#define MTXORB_FTDI_RANGE_0175_PID 0x0175 +-#define MTXORB_FTDI_RANGE_0176_PID 0x0176 +-#define MTXORB_FTDI_RANGE_0177_PID 0x0177 +-#define MTXORB_FTDI_RANGE_0178_PID 0x0178 +-#define MTXORB_FTDI_RANGE_0179_PID 0x0179 +-#define MTXORB_FTDI_RANGE_017A_PID 0x017A +-#define MTXORB_FTDI_RANGE_017B_PID 0x017B +-#define MTXORB_FTDI_RANGE_017C_PID 0x017C +-#define MTXORB_FTDI_RANGE_017D_PID 0x017D +-#define MTXORB_FTDI_RANGE_017E_PID 0x017E +-#define MTXORB_FTDI_RANGE_017F_PID 0x017F +-#define MTXORB_FTDI_RANGE_0180_PID 0x0180 +-#define MTXORB_FTDI_RANGE_0181_PID 0x0181 +-#define MTXORB_FTDI_RANGE_0182_PID 0x0182 +-#define MTXORB_FTDI_RANGE_0183_PID 0x0183 +-#define MTXORB_FTDI_RANGE_0184_PID 0x0184 +-#define MTXORB_FTDI_RANGE_0185_PID 0x0185 +-#define MTXORB_FTDI_RANGE_0186_PID 0x0186 +-#define MTXORB_FTDI_RANGE_0187_PID 0x0187 +-#define MTXORB_FTDI_RANGE_0188_PID 0x0188 +-#define MTXORB_FTDI_RANGE_0189_PID 0x0189 +-#define MTXORB_FTDI_RANGE_018A_PID 0x018A +-#define MTXORB_FTDI_RANGE_018B_PID 0x018B +-#define MTXORB_FTDI_RANGE_018C_PID 0x018C +-#define MTXORB_FTDI_RANGE_018D_PID 0x018D +-#define MTXORB_FTDI_RANGE_018E_PID 0x018E +-#define MTXORB_FTDI_RANGE_018F_PID 0x018F +-#define MTXORB_FTDI_RANGE_0190_PID 0x0190 +-#define MTXORB_FTDI_RANGE_0191_PID 0x0191 +-#define MTXORB_FTDI_RANGE_0192_PID 0x0192 +-#define MTXORB_FTDI_RANGE_0193_PID 0x0193 +-#define MTXORB_FTDI_RANGE_0194_PID 0x0194 +-#define MTXORB_FTDI_RANGE_0195_PID 0x0195 +-#define MTXORB_FTDI_RANGE_0196_PID 0x0196 +-#define MTXORB_FTDI_RANGE_0197_PID 0x0197 +-#define MTXORB_FTDI_RANGE_0198_PID 0x0198 +-#define MTXORB_FTDI_RANGE_0199_PID 0x0199 +-#define MTXORB_FTDI_RANGE_019A_PID 0x019A +-#define MTXORB_FTDI_RANGE_019B_PID 0x019B +-#define MTXORB_FTDI_RANGE_019C_PID 0x019C +-#define MTXORB_FTDI_RANGE_019D_PID 0x019D +-#define MTXORB_FTDI_RANGE_019E_PID 0x019E +-#define MTXORB_FTDI_RANGE_019F_PID 0x019F +-#define MTXORB_FTDI_RANGE_01A0_PID 0x01A0 +-#define MTXORB_FTDI_RANGE_01A1_PID 0x01A1 +-#define MTXORB_FTDI_RANGE_01A2_PID 0x01A2 +-#define MTXORB_FTDI_RANGE_01A3_PID 0x01A3 +-#define MTXORB_FTDI_RANGE_01A4_PID 0x01A4 +-#define MTXORB_FTDI_RANGE_01A5_PID 0x01A5 +-#define MTXORB_FTDI_RANGE_01A6_PID 0x01A6 +-#define MTXORB_FTDI_RANGE_01A7_PID 0x01A7 +-#define MTXORB_FTDI_RANGE_01A8_PID 0x01A8 +-#define MTXORB_FTDI_RANGE_01A9_PID 0x01A9 +-#define MTXORB_FTDI_RANGE_01AA_PID 0x01AA +-#define MTXORB_FTDI_RANGE_01AB_PID 0x01AB +-#define MTXORB_FTDI_RANGE_01AC_PID 0x01AC +-#define MTXORB_FTDI_RANGE_01AD_PID 0x01AD +-#define MTXORB_FTDI_RANGE_01AE_PID 0x01AE +-#define MTXORB_FTDI_RANGE_01AF_PID 0x01AF +-#define MTXORB_FTDI_RANGE_01B0_PID 0x01B0 +-#define MTXORB_FTDI_RANGE_01B1_PID 0x01B1 +-#define MTXORB_FTDI_RANGE_01B2_PID 0x01B2 +-#define MTXORB_FTDI_RANGE_01B3_PID 0x01B3 +-#define MTXORB_FTDI_RANGE_01B4_PID 0x01B4 +-#define MTXORB_FTDI_RANGE_01B5_PID 0x01B5 +-#define MTXORB_FTDI_RANGE_01B6_PID 0x01B6 +-#define MTXORB_FTDI_RANGE_01B7_PID 0x01B7 +-#define MTXORB_FTDI_RANGE_01B8_PID 0x01B8 +-#define MTXORB_FTDI_RANGE_01B9_PID 0x01B9 +-#define MTXORB_FTDI_RANGE_01BA_PID 0x01BA +-#define MTXORB_FTDI_RANGE_01BB_PID 0x01BB +-#define MTXORB_FTDI_RANGE_01BC_PID 0x01BC +-#define MTXORB_FTDI_RANGE_01BD_PID 0x01BD +-#define MTXORB_FTDI_RANGE_01BE_PID 0x01BE +-#define MTXORB_FTDI_RANGE_01BF_PID 0x01BF +-#define MTXORB_FTDI_RANGE_01C0_PID 0x01C0 +-#define MTXORB_FTDI_RANGE_01C1_PID 0x01C1 +-#define MTXORB_FTDI_RANGE_01C2_PID 0x01C2 +-#define MTXORB_FTDI_RANGE_01C3_PID 0x01C3 +-#define MTXORB_FTDI_RANGE_01C4_PID 0x01C4 +-#define MTXORB_FTDI_RANGE_01C5_PID 0x01C5 +-#define MTXORB_FTDI_RANGE_01C6_PID 0x01C6 +-#define MTXORB_FTDI_RANGE_01C7_PID 0x01C7 +-#define MTXORB_FTDI_RANGE_01C8_PID 0x01C8 +-#define MTXORB_FTDI_RANGE_01C9_PID 0x01C9 +-#define MTXORB_FTDI_RANGE_01CA_PID 0x01CA +-#define MTXORB_FTDI_RANGE_01CB_PID 0x01CB +-#define MTXORB_FTDI_RANGE_01CC_PID 0x01CC +-#define MTXORB_FTDI_RANGE_01CD_PID 0x01CD +-#define MTXORB_FTDI_RANGE_01CE_PID 0x01CE +-#define MTXORB_FTDI_RANGE_01CF_PID 0x01CF +-#define MTXORB_FTDI_RANGE_01D0_PID 0x01D0 +-#define MTXORB_FTDI_RANGE_01D1_PID 0x01D1 +-#define MTXORB_FTDI_RANGE_01D2_PID 0x01D2 +-#define MTXORB_FTDI_RANGE_01D3_PID 0x01D3 +-#define MTXORB_FTDI_RANGE_01D4_PID 0x01D4 +-#define MTXORB_FTDI_RANGE_01D5_PID 0x01D5 +-#define MTXORB_FTDI_RANGE_01D6_PID 0x01D6 +-#define MTXORB_FTDI_RANGE_01D7_PID 0x01D7 +-#define MTXORB_FTDI_RANGE_01D8_PID 0x01D8 +-#define MTXORB_FTDI_RANGE_01D9_PID 0x01D9 +-#define MTXORB_FTDI_RANGE_01DA_PID 0x01DA +-#define MTXORB_FTDI_RANGE_01DB_PID 0x01DB +-#define MTXORB_FTDI_RANGE_01DC_PID 0x01DC +-#define MTXORB_FTDI_RANGE_01DD_PID 0x01DD +-#define MTXORB_FTDI_RANGE_01DE_PID 0x01DE +-#define MTXORB_FTDI_RANGE_01DF_PID 0x01DF +-#define MTXORB_FTDI_RANGE_01E0_PID 0x01E0 +-#define MTXORB_FTDI_RANGE_01E1_PID 0x01E1 +-#define MTXORB_FTDI_RANGE_01E2_PID 0x01E2 +-#define MTXORB_FTDI_RANGE_01E3_PID 0x01E3 +-#define MTXORB_FTDI_RANGE_01E4_PID 0x01E4 +-#define MTXORB_FTDI_RANGE_01E5_PID 0x01E5 +-#define MTXORB_FTDI_RANGE_01E6_PID 0x01E6 +-#define MTXORB_FTDI_RANGE_01E7_PID 0x01E7 +-#define MTXORB_FTDI_RANGE_01E8_PID 0x01E8 +-#define MTXORB_FTDI_RANGE_01E9_PID 0x01E9 +-#define MTXORB_FTDI_RANGE_01EA_PID 0x01EA +-#define MTXORB_FTDI_RANGE_01EB_PID 0x01EB +-#define MTXORB_FTDI_RANGE_01EC_PID 0x01EC +-#define MTXORB_FTDI_RANGE_01ED_PID 0x01ED +-#define MTXORB_FTDI_RANGE_01EE_PID 0x01EE +-#define MTXORB_FTDI_RANGE_01EF_PID 0x01EF +-#define MTXORB_FTDI_RANGE_01F0_PID 0x01F0 +-#define MTXORB_FTDI_RANGE_01F1_PID 0x01F1 +-#define MTXORB_FTDI_RANGE_01F2_PID 0x01F2 +-#define MTXORB_FTDI_RANGE_01F3_PID 0x01F3 +-#define MTXORB_FTDI_RANGE_01F4_PID 0x01F4 +-#define MTXORB_FTDI_RANGE_01F5_PID 0x01F5 +-#define MTXORB_FTDI_RANGE_01F6_PID 0x01F6 +-#define MTXORB_FTDI_RANGE_01F7_PID 0x01F7 +-#define MTXORB_FTDI_RANGE_01F8_PID 0x01F8 +-#define MTXORB_FTDI_RANGE_01F9_PID 0x01F9 +-#define MTXORB_FTDI_RANGE_01FA_PID 0x01FA +-#define MTXORB_FTDI_RANGE_01FB_PID 0x01FB +-#define MTXORB_FTDI_RANGE_01FC_PID 0x01FC +-#define MTXORB_FTDI_RANGE_01FD_PID 0x01FD +-#define MTXORB_FTDI_RANGE_01FE_PID 0x01FE +-#define MTXORB_FTDI_RANGE_01FF_PID 0x01FF +- +- +- +-/* Interbiometrics USB I/O Board */ +-/* Developed for Interbiometrics by Rudolf Gugler */ +-#define INTERBIOMETRICS_VID 0x1209 +-#define INTERBIOMETRICS_IOBOARD_PID 0x1002 +-#define INTERBIOMETRICS_MINI_IOBOARD_PID 0x1006 +- +-/* +- * The following are the values for the Perle Systems +- * UltraPort USB serial converters +- */ +-#define FTDI_PERLE_ULTRAPORT_PID 0xF0C0 /* Perle UltraPort Product Id */ +- +-/* +- * The following are the values for the Sealevel SeaLINK+ adapters. +- * (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and +- * removed some PIDs that don't seem to match any existing products.) +- */ +-#define SEALEVEL_VID 0x0c52 /* Sealevel Vendor ID */ +-#define SEALEVEL_2101_PID 0x2101 /* SeaLINK+232 (2101/2105) */ +-#define SEALEVEL_2102_PID 0x2102 /* SeaLINK+485 (2102) */ +-#define SEALEVEL_2103_PID 0x2103 /* SeaLINK+232I (2103) */ +-#define SEALEVEL_2104_PID 0x2104 /* SeaLINK+485I (2104) */ +-#define SEALEVEL_2106_PID 0x9020 /* SeaLINK+422 (2106) */ +-#define SEALEVEL_2201_1_PID 0x2211 /* SeaPORT+2/232 (2201) Port 1 */ +-#define SEALEVEL_2201_2_PID 0x2221 /* SeaPORT+2/232 (2201) Port 2 */ +-#define SEALEVEL_2202_1_PID 0x2212 /* SeaPORT+2/485 (2202) Port 1 */ +-#define SEALEVEL_2202_2_PID 0x2222 /* SeaPORT+2/485 (2202) Port 2 */ +-#define SEALEVEL_2203_1_PID 0x2213 /* SeaPORT+2 (2203) Port 1 */ +-#define SEALEVEL_2203_2_PID 0x2223 /* SeaPORT+2 (2203) Port 2 */ +-#define SEALEVEL_2401_1_PID 0x2411 /* SeaPORT+4/232 (2401) Port 1 */ +-#define SEALEVEL_2401_2_PID 0x2421 /* SeaPORT+4/232 (2401) Port 2 */ +-#define SEALEVEL_2401_3_PID 0x2431 /* SeaPORT+4/232 (2401) Port 3 */ +-#define SEALEVEL_2401_4_PID 0x2441 /* SeaPORT+4/232 (2401) Port 4 */ +-#define SEALEVEL_2402_1_PID 0x2412 /* SeaPORT+4/485 (2402) Port 1 */ +-#define SEALEVEL_2402_2_PID 0x2422 /* SeaPORT+4/485 (2402) Port 2 */ +-#define SEALEVEL_2402_3_PID 0x2432 /* SeaPORT+4/485 (2402) Port 3 */ +-#define SEALEVEL_2402_4_PID 0x2442 /* SeaPORT+4/485 (2402) Port 4 */ +-#define SEALEVEL_2403_1_PID 0x2413 /* SeaPORT+4 (2403) Port 1 */ +-#define SEALEVEL_2403_2_PID 0x2423 /* SeaPORT+4 (2403) Port 2 */ +-#define SEALEVEL_2403_3_PID 0x2433 /* SeaPORT+4 (2403) Port 3 */ +-#define SEALEVEL_2403_4_PID 0x2443 /* SeaPORT+4 (2403) Port 4 */ +-#define SEALEVEL_2801_1_PID 0X2811 /* SeaLINK+8/232 (2801) Port 1 */ +-#define SEALEVEL_2801_2_PID 0X2821 /* SeaLINK+8/232 (2801) Port 2 */ +-#define SEALEVEL_2801_3_PID 0X2831 /* SeaLINK+8/232 (2801) Port 3 */ +-#define SEALEVEL_2801_4_PID 0X2841 /* SeaLINK+8/232 (2801) Port 4 */ +-#define SEALEVEL_2801_5_PID 0X2851 /* SeaLINK+8/232 (2801) Port 5 */ +-#define SEALEVEL_2801_6_PID 0X2861 /* SeaLINK+8/232 (2801) Port 6 */ +-#define SEALEVEL_2801_7_PID 0X2871 /* SeaLINK+8/232 (2801) Port 7 */ +-#define SEALEVEL_2801_8_PID 0X2881 /* SeaLINK+8/232 (2801) Port 8 */ +-#define SEALEVEL_2802_1_PID 0X2812 /* SeaLINK+8/485 (2802) Port 1 */ +-#define SEALEVEL_2802_2_PID 0X2822 /* SeaLINK+8/485 (2802) Port 2 */ +-#define SEALEVEL_2802_3_PID 0X2832 /* SeaLINK+8/485 (2802) Port 3 */ +-#define SEALEVEL_2802_4_PID 0X2842 /* SeaLINK+8/485 (2802) Port 4 */ +-#define SEALEVEL_2802_5_PID 0X2852 /* SeaLINK+8/485 (2802) Port 5 */ +-#define SEALEVEL_2802_6_PID 0X2862 /* SeaLINK+8/485 (2802) Port 6 */ +-#define SEALEVEL_2802_7_PID 0X2872 /* SeaLINK+8/485 (2802) Port 7 */ +-#define SEALEVEL_2802_8_PID 0X2882 /* SeaLINK+8/485 (2802) Port 8 */ +-#define SEALEVEL_2803_1_PID 0X2813 /* SeaLINK+8 (2803) Port 1 */ +-#define SEALEVEL_2803_2_PID 0X2823 /* SeaLINK+8 (2803) Port 2 */ +-#define SEALEVEL_2803_3_PID 0X2833 /* SeaLINK+8 (2803) Port 3 */ +-#define SEALEVEL_2803_4_PID 0X2843 /* SeaLINK+8 (2803) Port 4 */ +-#define SEALEVEL_2803_5_PID 0X2853 /* SeaLINK+8 (2803) Port 5 */ +-#define SEALEVEL_2803_6_PID 0X2863 /* SeaLINK+8 (2803) Port 6 */ +-#define SEALEVEL_2803_7_PID 0X2873 /* SeaLINK+8 (2803) Port 7 */ +-#define SEALEVEL_2803_8_PID 0X2883 /* SeaLINK+8 (2803) Port 8 */ ++#define FTDI_TERATRONIK_VCP_PID 0xEC88 /* Teratronik device (preferring VCP driver on windows) */ ++#define FTDI_TERATRONIK_D2XX_PID 0xEC89 /* Teratronik device (preferring D2XX driver on windows) */ + +-/* +- * The following are the values for two KOBIL chipcard terminals. +- */ +-#define KOBIL_VID 0x0d46 /* KOBIL Vendor ID */ +-#define KOBIL_CONV_B1_PID 0x2020 /* KOBIL Konverter for B1 */ +-#define KOBIL_CONV_KAAN_PID 0x2021 /* KOBIL_Konverter for KAAN */ ++/* Rig Expert Ukraine devices */ ++#define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */ + + /* +- * Icom ID-1 digital transceiver ++ * Hameg HO820 and HO870 interface (using VID 0x0403) + */ +- +-#define ICOM_ID1_VID 0x0C26 +-#define ICOM_ID1_PID 0x0004 ++#define HAMEG_HO820_PID 0xed74 ++#define HAMEG_HO870_PID 0xed71 + + /* +- * ASK.fr devices ++ * MaxStream devices www.maxstream.net + */ +-#define FTDI_ASK_RDR400_PID 0xC991 /* ASK RDR 400 series card reader */ ++#define FTDI_MAXSTREAM_PID 0xEE18 /* Xbee PKG-U Module */ + + /* +- * FTDI USB UART chips used in construction projects from the +- * Elektor Electronics magazine (http://elektor-electronics.co.uk) ++ * microHAM product IDs (http://www.microham.com). ++ * Submitted by Justin Burket (KL1RL) <zorton@jtan.com> ++ * and Mike Studer (K6EEP) <k6eep@hamsoftware.org>. ++ * Ian Abbott <abbotti@mev.co.uk> added a few more from the driver INF file. + */ +-#define ELEKTOR_VID 0x0C7D +-#define ELEKTOR_FT323R_PID 0x0005 /* RFID-Reader, issue 09-2006 */ ++#define FTDI_MHAM_KW_PID 0xEEE8 /* USB-KW interface */ ++#define FTDI_MHAM_YS_PID 0xEEE9 /* USB-YS interface */ ++#define FTDI_MHAM_Y6_PID 0xEEEA /* USB-Y6 interface */ ++#define FTDI_MHAM_Y8_PID 0xEEEB /* USB-Y8 interface */ ++#define FTDI_MHAM_IC_PID 0xEEEC /* USB-IC interface */ ++#define FTDI_MHAM_DB9_PID 0xEEED /* USB-DB9 interface */ ++#define FTDI_MHAM_RS232_PID 0xEEEE /* USB-RS232 interface */ ++#define FTDI_MHAM_Y9_PID 0xEEEF /* USB-Y9 interface */ + +-/* +- * DSS-20 Sync Station for Sony Ericsson P800 +- */ +-#define FTDI_DSS20_PID 0xFC82 ++/* Domintell products http://www.domintell.com */ ++#define FTDI_DOMINTELL_DGQG_PID 0xEF50 /* Master */ ++#define FTDI_DOMINTELL_DUSB_PID 0xEF51 /* DUSB01 module */ + + /* +- * Home Electronics (www.home-electro.com) USB gadgets ++ * The following are the values for the Perle Systems ++ * UltraPort USB serial converters + */ +-#define FTDI_HE_TIRA1_PID 0xFA78 /* Tira-1 IR transceiver */ ++#define FTDI_PERLE_ULTRAPORT_PID 0xF0C0 /* Perle UltraPort Product Id */ + +-/* USB-UIRT - An infrared receiver and transmitter using the 8U232AM chip */ +-/* http://home.earthlink.net/~jrhees/USBUIRT/index.htm */ +-#define FTDI_USB_UIRT_PID 0xF850 /* Product Id */ ++/* Sprog II (Andrew Crosland's SprogII DCC interface) */ ++#define FTDI_SPROG_II 0xF0C8 + +-/* TNC-X USB-to-packet-radio adapter, versions prior to 3.0 (DLP module) */ ++/* an infrared receiver for user access control with IR tags */ ++#define FTDI_PIEGROUP_PID 0xF208 /* Product Id */ + +-#define FTDI_TNC_X_PID 0xEBE0 ++/* ACT Solutions HomePro ZWave interface ++ (http://www.act-solutions.com/HomePro.htm) */ ++#define FTDI_ACTZWAVE_PID 0xF2D0 + +-/* +- * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). +- * All of these devices use FTDI's vendor ID (0x0403). +- * +- * The previously included PID for the UO 100 module was incorrect. +- * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58). +- * +- * Armin Laeuger originally sent the PID for the UM 100 module. +- */ +-#define FTDI_R2000KU_TRUE_RNG 0xFB80 /* R2000KU TRUE RNG */ +-#define FTDI_ELV_UR100_PID 0xFB58 /* USB-RS232-Umsetzer (UR 100) */ +-#define FTDI_ELV_UM100_PID 0xFB5A /* USB-Modul UM 100 */ +-#define FTDI_ELV_UO100_PID 0xFB5B /* USB-Modul UO 100 */ +-#define FTDI_ELV_ALC8500_PID 0xF06E /* ALC 8500 Expert */ +-/* Additional ELV PIDs that default to using the FTDI D2XX drivers on +- * MS Windows, rather than the FTDI Virtual Com Port drivers. +- * Maybe these will be easier to use with the libftdi/libusb user-space +- * drivers, or possibly the Comedi drivers in some cases. */ +-#define FTDI_ELV_CLI7000_PID 0xFB59 /* Computer-Light-Interface (CLI 7000) */ +-#define FTDI_ELV_PPS7330_PID 0xFB5C /* Processor-Power-Supply (PPS 7330) */ +-#define FTDI_ELV_TFM100_PID 0xFB5D /* Temperartur-Feuchte Messgeraet (TFM 100) */ +-#define FTDI_ELV_UDF77_PID 0xFB5E /* USB DCF Funkurh (UDF 77) */ +-#define FTDI_ELV_UIO88_PID 0xFB5F /* USB-I/O Interface (UIO 88) */ +-#define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */ +-#define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */ +-#define FTDI_ELV_USI2_PID 0xF06A /* USB-Schrittmotoren-Interface (USI 2) */ +-#define FTDI_ELV_T1100_PID 0xF06B /* Thermometer (T 1100) */ +-#define FTDI_ELV_PCD200_PID 0xF06C /* PC-Datenlogger (PCD 200) */ +-#define FTDI_ELV_ULA200_PID 0xF06D /* USB-LCD-Ansteuerung (ULA 200) */ +-#define FTDI_ELV_FHZ1000PC_PID 0xF06F /* FHZ 1000 PC */ +-#define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ +-#define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ +-#define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ +-#define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */ +-#define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */ +-#define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */ +-#define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */ +-#define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */ +-#define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */ +-#define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ +-#define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */ ++/* ++ * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485, ++ * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices ++ * and I'm not entirely sure which are used by which. ++ */ ++#define FTDI_4N_GALAXY_DE_1_PID 0xF3C0 ++#define FTDI_4N_GALAXY_DE_2_PID 0xF3C1 + + /* +- * Definitions for ID TECH (www.idt-net.com) devices ++ * Linx Technologies product ids + */ +-#define IDTECH_VID 0x0ACD /* ID TECH Vendor ID */ +-#define IDTECH_IDT1221U_PID 0x0300 /* IDT1221U USB to RS-232 adapter */ ++#define LINX_SDMUSBQSS_PID 0xF448 /* Linx SDM-USB-QS-S */ ++#define LINX_MASTERDEVEL2_PID 0xF449 /* Linx Master Development 2.0 */ ++#define LINX_FUTURE_0_PID 0xF44A /* Linx future device */ ++#define LINX_FUTURE_1_PID 0xF44B /* Linx future device */ ++#define LINX_FUTURE_2_PID 0xF44C /* Linx future device */ + + /* +- * Definitions for Omnidirectional Control Technology, Inc. devices ++ * Oceanic product ids + */ +-#define OCT_VID 0x0B39 /* OCT vendor ID */ +-/* Note: OCT US101 is also rebadged as Dick Smith Electronics (NZ) XH6381 */ +-/* Also rebadged as Dick Smith Electronics (Aus) XH6451 */ +-/* Also rebadged as SIIG Inc. model US2308 hardware version 1 */ +-#define OCT_US101_PID 0x0421 /* OCT US101 USB to RS-232 */ ++#define FTDI_OCEANIC_PID 0xF460 /* Oceanic dive instrument */ + +-/* an infrared receiver for user access control with IR tags */ +-#define FTDI_PIEGROUP_PID 0xF208 /* Product Id */ ++/* ++ * SUUNTO product ids ++ */ ++#define FTDI_SUUNTO_SPORTS_PID 0xF680 /* Suunto Sports instrument */ ++ ++/* USB-UIRT - An infrared receiver and transmitter using the 8U232AM chip */ ++/* http://home.earthlink.net/~jrhees/USBUIRT/index.htm */ ++#define FTDI_USB_UIRT_PID 0xF850 /* Product Id */ ++ ++/* CCS Inc. ICDU/ICDU40 product ID - ++ * the FT232BM is used in an in-circuit-debugger unit for PIC16's/PIC18's */ ++#define FTDI_CCSICDU20_0_PID 0xF9D0 ++#define FTDI_CCSICDU40_1_PID 0xF9D1 ++#define FTDI_CCSMACHX_2_PID 0xF9D2 ++#define FTDI_CCSLOAD_N_GO_3_PID 0xF9D3 ++#define FTDI_CCSICDU64_4_PID 0xF9D4 ++#define FTDI_CCSPRIME8_5_PID 0xF9D5 + + /* +- * Definitions for Artemis astronomical USB based cameras +- * Check it at http://www.artemisccd.co.uk/ ++ * The following are the values for the Matrix Orbital LCD displays, ++ * which are the FT232BM ( similar to the 8U232AM ) + */ +-#define FTDI_ARTEMIS_PID 0xDF28 /* All Artemis Cameras */ ++#define FTDI_MTXORB_0_PID 0xFA00 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_1_PID 0xFA01 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_2_PID 0xFA02 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_3_PID 0xFA03 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_4_PID 0xFA04 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_5_PID 0xFA05 /* Matrix Orbital Product Id */ ++#define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */ + + /* +- * Definitions for ATIK Instruments astronomical USB based cameras +- * Check it at http://www.atik-instruments.com/ ++ * Home Electronics (www.home-electro.com) USB gadgets + */ +-#define FTDI_ATIK_ATK16_PID 0xDF30 /* ATIK ATK-16 Grayscale Camera */ +-#define FTDI_ATIK_ATK16C_PID 0xDF32 /* ATIK ATK-16C Colour Camera */ +-#define FTDI_ATIK_ATK16HR_PID 0xDF31 /* ATIK ATK-16HR Grayscale Camera */ +-#define FTDI_ATIK_ATK16HRC_PID 0xDF33 /* ATIK ATK-16HRC Colour Camera */ +-#define FTDI_ATIK_ATK16IC_PID 0xDF35 /* ATIK ATK-16IC Grayscale Camera */ ++#define FTDI_HE_TIRA1_PID 0xFA78 /* Tira-1 IR transceiver */ ++ ++/* Inside Accesso contactless reader (http://www.insidefr.com) */ ++#define INSIDE_ACCESSO 0xFAD0 ++ ++/* ++ * ThorLabs USB motor drivers ++ */ ++#define FTDI_THORLABS_PID 0xfaf0 /* ThorLabs USB motor drivers */ + + /* + * Protego product ids +@@ -569,75 +375,106 @@ + #define PROTEGO_SPECIAL_4 0xFC73 /* special/unknown device */ + + /* +- * Gude Analog- und Digitalsysteme GmbH ++ * DSS-20 Sync Station for Sony Ericsson P800 + */ +-#define FTDI_GUDEADS_E808_PID 0xE808 +-#define FTDI_GUDEADS_E809_PID 0xE809 +-#define FTDI_GUDEADS_E80A_PID 0xE80A +-#define FTDI_GUDEADS_E80B_PID 0xE80B +-#define FTDI_GUDEADS_E80C_PID 0xE80C +-#define FTDI_GUDEADS_E80D_PID 0xE80D +-#define FTDI_GUDEADS_E80E_PID 0xE80E +-#define FTDI_GUDEADS_E80F_PID 0xE80F +-#define FTDI_GUDEADS_E888_PID 0xE888 /* Expert ISDN Control USB */ +-#define FTDI_GUDEADS_E889_PID 0xE889 /* USB RS-232 OptoBridge */ +-#define FTDI_GUDEADS_E88A_PID 0xE88A +-#define FTDI_GUDEADS_E88B_PID 0xE88B +-#define FTDI_GUDEADS_E88C_PID 0xE88C +-#define FTDI_GUDEADS_E88D_PID 0xE88D +-#define FTDI_GUDEADS_E88E_PID 0xE88E +-#define FTDI_GUDEADS_E88F_PID 0xE88F ++#define FTDI_DSS20_PID 0xFC82 ++ ++/* www.irtrans.de device */ ++#define FTDI_IRTRANS_PID 0xFC60 /* Product Id */ + + /* +- * Linx Technologies product ids ++ * RM Michaelides CANview USB (http://www.rmcan.com) (FTDI_VID) ++ * CAN fieldbus interface adapter, added by port GmbH www.port.de) ++ * Ian Abbott changed the macro names for consistency. + */ +-#define LINX_SDMUSBQSS_PID 0xF448 /* Linx SDM-USB-QS-S */ +-#define LINX_MASTERDEVEL2_PID 0xF449 /* Linx Master Development 2.0 */ +-#define LINX_FUTURE_0_PID 0xF44A /* Linx future device */ +-#define LINX_FUTURE_1_PID 0xF44B /* Linx future device */ +-#define LINX_FUTURE_2_PID 0xF44C /* Linx future device */ ++#define FTDI_RM_CANVIEW_PID 0xfd60 /* Product Id */ ++/* www.thoughttechnology.com/ TT-USB provide with procomp use ftdi_sio */ ++#define FTDI_TTUSB_PID 0xFF20 /* Product Id */ + +-/* CCS Inc. ICDU/ICDU40 product ID - the FT232BM is used in an in-circuit-debugger */ +-/* unit for PIC16's/PIC18's */ +-#define FTDI_CCSICDU20_0_PID 0xF9D0 +-#define FTDI_CCSICDU40_1_PID 0xF9D1 +-#define FTDI_CCSMACHX_2_PID 0xF9D2 +-#define FTDI_CCSLOAD_N_GO_3_PID 0xF9D3 +-#define FTDI_CCSICDU64_4_PID 0xF9D4 +-#define FTDI_CCSPRIME8_5_PID 0xF9D5 ++#define FTDI_USBX_707_PID 0xF857 /* ADSTech IR Blaster USBX-707 (FTDI_VID) */ + +-/* Inside Accesso contactless reader (http://www.insidefr.com) */ +-#define INSIDE_ACCESSO 0xFAD0 ++#define FTDI_RELAIS_PID 0xFA10 /* Relais device from Rudolf Gugler */ + + /* +- * Intrepid Control Systems (http://www.intrepidcs.com/) ValueCAN and NeoVI ++ * PCDJ use ftdi based dj-controllers. The following PID is ++ * for their DAC-2 device http://www.pcdjhardware.com/DAC2.asp ++ * (the VID is the standard ftdi vid (FTDI_VID), PID sent by Wouter Paesen) + */ +-#define INTREPID_VID 0x093C +-#define INTREPID_VALUECAN_PID 0x0601 +-#define INTREPID_NEOVI_PID 0x0701 ++#define FTDI_PCDJ_DAC2_PID 0xFA88 ++ ++#define FTDI_R2000KU_TRUE_RNG 0xFB80 /* R2000KU TRUE RNG (FTDI_VID) */ + + /* +- * Falcom Wireless Communications GmbH ++ * DIEBOLD BCS SE923 (FTDI_VID) + */ +-#define FALCOM_VID 0x0F94 /* Vendor Id */ +-#define FALCOM_TWIST_PID 0x0001 /* Falcom Twist USB GPRS modem */ +-#define FALCOM_SAMBA_PID 0x0005 /* Falcom Samba USB GPRS modem */ ++#define DIEBOLD_BCS_SE923_PID 0xfb99 ++ ++/* www.crystalfontz.com devices ++ * - thanx for providing free devices for evaluation ! ++ * they use the ftdi chipset for the USB interface ++ * and the vendor id is the same ++ */ ++#define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ ++#define FTDI_XF_634_PID 0xFC09 /* 634: 20x4 Character Display */ ++#define FTDI_XF_547_PID 0xFC0A /* 547: Two line Display */ ++#define FTDI_XF_633_PID 0xFC0B /* 633: 16x2 Character Display with Keys */ ++#define FTDI_XF_631_PID 0xFC0C /* 631: 20x2 Character Display */ ++#define FTDI_XF_635_PID 0xFC0D /* 635: 20x4 Character Display */ ++#define FTDI_XF_640_PID 0xFC0E /* 640: Two line Display */ ++#define FTDI_XF_642_PID 0xFC0F /* 642: Two line Display */ + + /* +- * SUUNTO product ids ++ * Video Networks Limited / Homechoice in the UK use an ftdi-based device ++ * for their 1Mb broadband internet service. The following PID is exhibited ++ * by the usb device supplied (the VID is the standard ftdi vid (FTDI_VID) + */ +-#define FTDI_SUUNTO_SPORTS_PID 0xF680 /* Suunto Sports instrument */ ++#define FTDI_VNHCPCUSB_D_PID 0xfe38 /* Product Id */ ++ ++/* AlphaMicro Components AMC-232USB01 device (FTDI_VID) */ ++#define FTDI_AMC232_PID 0xFF00 /* Product Id */ + + /* +- * Oceanic product ids ++ * IBS elektronik product ids (FTDI_VID) ++ * Submitted by Thomas Schleusener + */ +-#define FTDI_OCEANIC_PID 0xF460 /* Oceanic dive instrument */ ++#define FTDI_IBS_US485_PID 0xff38 /* IBS US485 (USB<-->RS422/485 interface) */ ++#define FTDI_IBS_PICPRO_PID 0xff39 /* IBS PIC-Programmer */ ++#define FTDI_IBS_PCMCIA_PID 0xff3a /* IBS Card reader for PCMCIA SRAM-cards */ ++#define FTDI_IBS_PK1_PID 0xff3b /* IBS PK1 - Particel counter */ ++#define FTDI_IBS_RS232MON_PID 0xff3c /* IBS RS232 - Monitor */ ++#define FTDI_IBS_APP70_PID 0xff3d /* APP 70 (dust monitoring system) */ ++#define FTDI_IBS_PEDO_PID 0xff3e /* IBS PEDO-Modem (RF modem 868.35 MHz) */ ++#define FTDI_IBS_PROD_PID 0xff3f /* future device */ ++/* www.canusb.com Lawicel CANUSB device (FTDI_VID) */ ++#define FTDI_CANUSB_PID 0xFFA8 /* Product Id */ ++ ++ ++ ++/********************************/ ++/** third-party VID/PID combos **/ ++/********************************/ ++ ++ + + /* +- * TTi (Thurlby Thandar Instruments) ++ * Atmel STK541 + */ +-#define TTI_VID 0x103E /* Vendor Id */ +-#define TTI_QL355P_PID 0x03E8 /* TTi QL355P power supply */ ++#define ATMEL_VID 0x03eb /* Vendor ID */ ++#define STK541_PID 0x2109 /* Zigbee Controller */ ++ ++/* ++ * Blackfin gnICE JTAG ++ * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice ++ */ ++#define ADI_VID 0x0456 ++#define ADI_GNICE_PID 0xF000 ++#define ADI_GNICEPLUS_PID 0xF001 ++ ++/* ++ * RATOC REX-USB60F ++ */ ++#define RATOC_VENDOR_ID 0x0584 ++#define RATOC_PRODUCT_ID_USB60F 0xb020 + + /* + * Definitions for B&B Electronics products. +@@ -662,141 +499,147 @@ + #define BANDB_ZZ_PROG1_USB_PID 0xBA02 + + /* +- * RM Michaelides CANview USB (http://www.rmcan.com) +- * CAN fieldbus interface adapter, added by port GmbH www.port.de) +- * Ian Abbott changed the macro names for consistency. +- */ +-#define FTDI_RM_CANVIEW_PID 0xfd60 /* Product Id */ +- +-/* +- * EVER Eco Pro UPS (http://www.ever.com.pl/) +- */ +- +-#define EVER_ECO_PRO_CDS 0xe520 /* RS-232 converter */ +- +-/* +- * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485, +- * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices +- * and I'm not entirely sure which are used by which. +- */ +-#define FTDI_4N_GALAXY_DE_1_PID 0xF3C0 +-#define FTDI_4N_GALAXY_DE_2_PID 0xF3C1 +- +-/* +- * Mobility Electronics products. +- */ +-#define MOBILITY_VID 0x1342 +-#define MOBILITY_USB_SERIAL_PID 0x0202 /* EasiDock USB 200 serial */ +- +-/* +- * microHAM product IDs (http://www.microham.com). +- * Submitted by Justin Burket (KL1RL) <zorton@jtan.com> +- * and Mike Studer (K6EEP) <k6eep@hamsoftware.org>. +- * Ian Abbott <abbotti@mev.co.uk> added a few more from the driver INF file. +- */ +-#define FTDI_MHAM_KW_PID 0xEEE8 /* USB-KW interface */ +-#define FTDI_MHAM_YS_PID 0xEEE9 /* USB-YS interface */ +-#define FTDI_MHAM_Y6_PID 0xEEEA /* USB-Y6 interface */ +-#define FTDI_MHAM_Y8_PID 0xEEEB /* USB-Y8 interface */ +-#define FTDI_MHAM_IC_PID 0xEEEC /* USB-IC interface */ +-#define FTDI_MHAM_DB9_PID 0xEEED /* USB-DB9 interface */ +-#define FTDI_MHAM_RS232_PID 0xEEEE /* USB-RS232 interface */ +-#define FTDI_MHAM_Y9_PID 0xEEEF /* USB-Y9 interface */ +- +-/* +- * Active Robots product ids. +- */ +-#define FTDI_ACTIVE_ROBOTS_PID 0xE548 /* USB comms board */ +- +-/* +- * Xsens Technologies BV products (http://www.xsens.com). ++ * Intrepid Control Systems (http://www.intrepidcs.com/) ValueCAN and NeoVI + */ +-#define XSENS_CONVERTER_0_PID 0xD388 +-#define XSENS_CONVERTER_1_PID 0xD389 +-#define XSENS_CONVERTER_2_PID 0xD38A +-#define XSENS_CONVERTER_3_PID 0xD38B +-#define XSENS_CONVERTER_4_PID 0xD38C +-#define XSENS_CONVERTER_5_PID 0xD38D +-#define XSENS_CONVERTER_6_PID 0xD38E +-#define XSENS_CONVERTER_7_PID 0xD38F ++#define INTREPID_VID 0x093C ++#define INTREPID_VALUECAN_PID 0x0601 ++#define INTREPID_NEOVI_PID 0x0701 + + /* +- * Teratronik product ids. +- * Submitted by O. W�lfelschneider. ++ * Definitions for ID TECH (www.idt-net.com) devices + */ +-#define FTDI_TERATRONIK_VCP_PID 0xEC88 /* Teratronik device (preferring VCP driver on windows) */ +-#define FTDI_TERATRONIK_D2XX_PID 0xEC89 /* Teratronik device (preferring D2XX driver on windows) */ ++#define IDTECH_VID 0x0ACD /* ID TECH Vendor ID */ ++#define IDTECH_IDT1221U_PID 0x0300 /* IDT1221U USB to RS-232 adapter */ + + /* +- * Evolution Robotics products (http://www.evolution.com/). +- * Submitted by Shawn M. Lavelle. ++ * Definitions for Omnidirectional Control Technology, Inc. devices + */ +-#define EVOLUTION_VID 0xDEEE /* Vendor ID */ +-#define EVOLUTION_ER1_PID 0x0300 /* ER1 Control Module */ +-#define EVO_8U232AM_PID 0x02FF /* Evolution robotics RCM2 (FT232AM)*/ +-#define EVO_HYBRID_PID 0x0302 /* Evolution robotics RCM4 PID (FT232BM)*/ +-#define EVO_RCM4_PID 0x0303 /* Evolution robotics RCM4 PID */ +- +-/* Pyramid Computer GmbH */ +-#define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */ ++#define OCT_VID 0x0B39 /* OCT vendor ID */ ++/* Note: OCT US101 is also rebadged as Dick Smith Electronics (NZ) XH6381 */ ++/* Also rebadged as Dick Smith Electronics (Aus) XH6451 */ ++/* Also rebadged as SIIG Inc. model US2308 hardware version 1 */ ++#define OCT_US101_PID 0x0421 /* OCT US101 USB to RS-232 */ + + /* +- * NDI (www.ndigital.com) product ids ++ * Icom ID-1 digital transceiver + */ +-#define FTDI_NDI_HUC_PID 0xDA70 /* NDI Host USB Converter */ +-#define FTDI_NDI_SPECTRA_SCU_PID 0xDA71 /* NDI Spectra SCU */ +-#define FTDI_NDI_FUTURE_2_PID 0xDA72 /* NDI future device #2 */ +-#define FTDI_NDI_FUTURE_3_PID 0xDA73 /* NDI future device #3 */ +-#define FTDI_NDI_AURORA_SCU_PID 0xDA74 /* NDI Aurora SCU */ ++ ++#define ICOM_ID1_VID 0x0C26 ++#define ICOM_ID1_PID 0x0004 + + /* +- * Posiflex inc retail equipment (http://www.posiflex.com.tw) ++ * GN Otometrics (http://www.otometrics.com) ++ * Submitted by Ville Sundberg. + */ +-#define POSIFLEX_VID 0x0d3a /* Vendor ID */ +-#define POSIFLEX_PP7000_PID 0x0300 /* PP-7000II thermal printer */ ++#define GN_OTOMETRICS_VID 0x0c33 /* Vendor ID */ ++#define AURICAL_USB_PID 0x0010 /* Aurical USB Audiometer */ + + /* +- * Westrex International devices submitted by Cory Lee ++ * The following are the values for the Sealevel SeaLINK+ adapters. ++ * (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and ++ * removed some PIDs that don't seem to match any existing products.) + */ +-#define FTDI_WESTREX_MODEL_777_PID 0xDC00 /* Model 777 */ +-#define FTDI_WESTREX_MODEL_8900F_PID 0xDC01 /* Model 8900F */ ++#define SEALEVEL_VID 0x0c52 /* Sealevel Vendor ID */ ++#define SEALEVEL_2101_PID 0x2101 /* SeaLINK+232 (2101/2105) */ ++#define SEALEVEL_2102_PID 0x2102 /* SeaLINK+485 (2102) */ ++#define SEALEVEL_2103_PID 0x2103 /* SeaLINK+232I (2103) */ ++#define SEALEVEL_2104_PID 0x2104 /* SeaLINK+485I (2104) */ ++#define SEALEVEL_2106_PID 0x9020 /* SeaLINK+422 (2106) */ ++#define SEALEVEL_2201_1_PID 0x2211 /* SeaPORT+2/232 (2201) Port 1 */ ++#define SEALEVEL_2201_2_PID 0x2221 /* SeaPORT+2/232 (2201) Port 2 */ ++#define SEALEVEL_2202_1_PID 0x2212 /* SeaPORT+2/485 (2202) Port 1 */ ++#define SEALEVEL_2202_2_PID 0x2222 /* SeaPORT+2/485 (2202) Port 2 */ ++#define SEALEVEL_2203_1_PID 0x2213 /* SeaPORT+2 (2203) Port 1 */ ++#define SEALEVEL_2203_2_PID 0x2223 /* SeaPORT+2 (2203) Port 2 */ ++#define SEALEVEL_2401_1_PID 0x2411 /* SeaPORT+4/232 (2401) Port 1 */ ++#define SEALEVEL_2401_2_PID 0x2421 /* SeaPORT+4/232 (2401) Port 2 */ ++#define SEALEVEL_2401_3_PID 0x2431 /* SeaPORT+4/232 (2401) Port 3 */ ++#define SEALEVEL_2401_4_PID 0x2441 /* SeaPORT+4/232 (2401) Port 4 */ ++#define SEALEVEL_2402_1_PID 0x2412 /* SeaPORT+4/485 (2402) Port 1 */ ++#define SEALEVEL_2402_2_PID 0x2422 /* SeaPORT+4/485 (2402) Port 2 */ ++#define SEALEVEL_2402_3_PID 0x2432 /* SeaPORT+4/485 (2402) Port 3 */ ++#define SEALEVEL_2402_4_PID 0x2442 /* SeaPORT+4/485 (2402) Port 4 */ ++#define SEALEVEL_2403_1_PID 0x2413 /* SeaPORT+4 (2403) Port 1 */ ++#define SEALEVEL_2403_2_PID 0x2423 /* SeaPORT+4 (2403) Port 2 */ ++#define SEALEVEL_2403_3_PID 0x2433 /* SeaPORT+4 (2403) Port 3 */ ++#define SEALEVEL_2403_4_PID 0x2443 /* SeaPORT+4 (2403) Port 4 */ ++#define SEALEVEL_2801_1_PID 0X2811 /* SeaLINK+8/232 (2801) Port 1 */ ++#define SEALEVEL_2801_2_PID 0X2821 /* SeaLINK+8/232 (2801) Port 2 */ ++#define SEALEVEL_2801_3_PID 0X2831 /* SeaLINK+8/232 (2801) Port 3 */ ++#define SEALEVEL_2801_4_PID 0X2841 /* SeaLINK+8/232 (2801) Port 4 */ ++#define SEALEVEL_2801_5_PID 0X2851 /* SeaLINK+8/232 (2801) Port 5 */ ++#define SEALEVEL_2801_6_PID 0X2861 /* SeaLINK+8/232 (2801) Port 6 */ ++#define SEALEVEL_2801_7_PID 0X2871 /* SeaLINK+8/232 (2801) Port 7 */ ++#define SEALEVEL_2801_8_PID 0X2881 /* SeaLINK+8/232 (2801) Port 8 */ ++#define SEALEVEL_2802_1_PID 0X2812 /* SeaLINK+8/485 (2802) Port 1 */ ++#define SEALEVEL_2802_2_PID 0X2822 /* SeaLINK+8/485 (2802) Port 2 */ ++#define SEALEVEL_2802_3_PID 0X2832 /* SeaLINK+8/485 (2802) Port 3 */ ++#define SEALEVEL_2802_4_PID 0X2842 /* SeaLINK+8/485 (2802) Port 4 */ ++#define SEALEVEL_2802_5_PID 0X2852 /* SeaLINK+8/485 (2802) Port 5 */ ++#define SEALEVEL_2802_6_PID 0X2862 /* SeaLINK+8/485 (2802) Port 6 */ ++#define SEALEVEL_2802_7_PID 0X2872 /* SeaLINK+8/485 (2802) Port 7 */ ++#define SEALEVEL_2802_8_PID 0X2882 /* SeaLINK+8/485 (2802) Port 8 */ ++#define SEALEVEL_2803_1_PID 0X2813 /* SeaLINK+8 (2803) Port 1 */ ++#define SEALEVEL_2803_2_PID 0X2823 /* SeaLINK+8 (2803) Port 2 */ ++#define SEALEVEL_2803_3_PID 0X2833 /* SeaLINK+8 (2803) Port 3 */ ++#define SEALEVEL_2803_4_PID 0X2843 /* SeaLINK+8 (2803) Port 4 */ ++#define SEALEVEL_2803_5_PID 0X2853 /* SeaLINK+8 (2803) Port 5 */ ++#define SEALEVEL_2803_6_PID 0X2863 /* SeaLINK+8 (2803) Port 6 */ ++#define SEALEVEL_2803_7_PID 0X2873 /* SeaLINK+8 (2803) Port 7 */ ++#define SEALEVEL_2803_8_PID 0X2883 /* SeaLINK+8 (2803) Port 8 */ + + /* +- * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) ++ * JETI SPECTROMETER SPECBOS 1201 ++ * http://www.jeti.com/products/sys/scb/scb1201.php + */ +-#define FTDI_RRCIRKITS_LOCOBUFFER_PID 0xc7d0 /* LocoBuffer USB */ ++#define JETI_VID 0x0c6c ++#define JETI_SPC1201_PID 0x04b2 + + /* +- * Eclo (http://www.eclo.pt/) product IDs. +- * PID 0xEA90 submitted by Martin Grill. ++ * FTDI USB UART chips used in construction projects from the ++ * Elektor Electronics magazine (http://elektor-electronics.co.uk) + */ +-#define FTDI_ECLO_COM_1WIRE_PID 0xEA90 /* COM to 1-Wire USB adaptor */ ++#define ELEKTOR_VID 0x0C7D ++#define ELEKTOR_FT323R_PID 0x0005 /* RFID-Reader, issue 09-2006 */ + + /* +- * Papouch products (http://www.papouch.com/) +- * Submitted by Folkert van Heusden ++ * Posiflex inc retail equipment (http://www.posiflex.com.tw) + */ +- +-#define PAPOUCH_VID 0x5050 /* Vendor ID */ +-#define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ +-#define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ ++#define POSIFLEX_VID 0x0d3a /* Vendor ID */ ++#define POSIFLEX_PP7000_PID 0x0300 /* PP-7000II thermal printer */ + + /* +- * ACG Identification Technologies GmbH products (http://www.acg.de/). +- * Submitted by anton -at- goto10 -dot- org. ++ * The following are the values for two KOBIL chipcard terminals. + */ +-#define FTDI_ACG_HFDUAL_PID 0xDD20 /* HF Dual ISO Reader (RFID) */ ++#define KOBIL_VID 0x0d46 /* KOBIL Vendor ID */ ++#define KOBIL_CONV_B1_PID 0x2020 /* KOBIL Konverter for B1 */ ++#define KOBIL_CONV_KAAN_PID 0x2021 /* KOBIL_Konverter for KAAN */ ++ ++#define FTDI_NF_RIC_VID 0x0DCD /* Vendor Id */ ++#define FTDI_NF_RIC_PID 0x0001 /* Product Id */ + + /* +- * Yost Engineering, Inc. products (www.yostengineering.com). +- * PID 0xE050 submitted by Aaron Prose. ++ * Falcom Wireless Communications GmbH + */ +-#define FTDI_YEI_SERVOCENTER31_PID 0xE050 /* YEI ServoCenter3.1 USB */ ++#define FALCOM_VID 0x0F94 /* Vendor Id */ ++#define FALCOM_TWIST_PID 0x0001 /* Falcom Twist USB GPRS modem */ ++#define FALCOM_SAMBA_PID 0x0005 /* Falcom Samba USB GPRS modem */ ++ ++/* Larsen and Brusgaard AltiTrack/USBtrack */ ++#define LARSENBRUSGAARD_VID 0x0FD8 ++#define LB_ALTITRACK_PID 0x0001 + + /* +- * ThorLabs USB motor drivers ++ * TTi (Thurlby Thandar Instruments) + */ +-#define FTDI_THORLABS_PID 0xfaf0 /* ThorLabs USB motor drivers */ ++#define TTI_VID 0x103E /* Vendor Id */ ++#define TTI_QL355P_PID 0x03E8 /* TTi QL355P power supply */ ++ ++/* Interbiometrics USB I/O Board */ ++/* Developed for Interbiometrics by Rudolf Gugler */ ++#define INTERBIOMETRICS_VID 0x1209 ++#define INTERBIOMETRICS_IOBOARD_PID 0x1002 ++#define INTERBIOMETRICS_MINI_IOBOARD_PID 0x1006 + + /* + * Testo products (http://www.testo.com/) +@@ -806,18 +649,21 @@ + #define TESTO_USB_INTERFACE_PID 0x0001 + + /* +- * Gamma Scout (http://gamma-scout.com/). Submitted by rsc@runtux.com. ++ * Mobility Electronics products. + */ +-#define FTDI_GAMMA_SCOUT_PID 0xD678 /* Gamma Scout online */ ++#define MOBILITY_VID 0x1342 ++#define MOBILITY_USB_SERIAL_PID 0x0202 /* EasiDock USB 200 serial */ + + /* +- * Tactrix OpenPort (ECU) devices. +- * OpenPort 1.3M submitted by Donour Sizemore. +- * OpenPort 1.3S and 1.3U submitted by Ian Abbott. ++ * FIC / OpenMoko, Inc. http://wiki.openmoko.org/wiki/Neo1973_Debug_Board_v3 ++ * Submitted by Harald Welte <laforge@openmoko.org> + */ +-#define FTDI_TACTRIX_OPENPORT_13M_PID 0xCC48 /* OpenPort 1.3 Mitsubishi */ +-#define FTDI_TACTRIX_OPENPORT_13S_PID 0xCC49 /* OpenPort 1.3 Subaru */ +-#define FTDI_TACTRIX_OPENPORT_13U_PID 0xCC4A /* OpenPort 1.3 Universal */ ++#define FIC_VID 0x1457 ++#define FIC_NEO1973_DEBUG_PID 0x5118 ++ ++/* Olimex */ ++#define OLIMEX_VID 0x15BA ++#define OLIMEX_ARM_USB_OCD_PID 0x0003 + + /* + * Telldus Technologies +@@ -826,34 +672,275 @@ + #define TELLDUS_TELLSTICK_PID 0x0C30 /* RF control dongle 433 MHz using FT232RL */ + + /* +- * IBS elektronik product ids +- * Submitted by Thomas Schleusener ++ * Bayer Ascensia Contour blood glucose meter USB-converter cable. ++ * http://winglucofacts.com/cables/ + */ +-#define FTDI_IBS_US485_PID 0xff38 /* IBS US485 (USB<-->RS422/485 interface) */ +-#define FTDI_IBS_PICPRO_PID 0xff39 /* IBS PIC-Programmer */ +-#define FTDI_IBS_PCMCIA_PID 0xff3a /* IBS Card reader for PCMCIA SRAM-cards */ +-#define FTDI_IBS_PK1_PID 0xff3b /* IBS PK1 - Particel counter */ +-#define FTDI_IBS_RS232MON_PID 0xff3c /* IBS RS232 - Monitor */ +-#define FTDI_IBS_APP70_PID 0xff3d /* APP 70 (dust monitoring system) */ +-#define FTDI_IBS_PEDO_PID 0xff3e /* IBS PEDO-Modem (RF modem 868.35 MHz) */ +-#define FTDI_IBS_PROD_PID 0xff3f /* future device */ ++#define BAYER_VID 0x1A79 ++#define BAYER_CONTOUR_CABLE_PID 0x6001 + + /* +- * MaxStream devices www.maxstream.net ++ * The following are the values for the Matrix Orbital FTDI Range ++ * Anything in this range will use an FT232RL. + */ +-#define FTDI_MAXSTREAM_PID 0xEE18 /* Xbee PKG-U Module */ +- +-/* Olimex */ +-#define OLIMEX_VID 0x15BA +-#define OLIMEX_ARM_USB_OCD_PID 0x0003 ++#define MTXORB_VID 0x1B3D ++#define MTXORB_FTDI_RANGE_0100_PID 0x0100 ++#define MTXORB_FTDI_RANGE_0101_PID 0x0101 ++#define MTXORB_FTDI_RANGE_0102_PID 0x0102 ++#define MTXORB_FTDI_RANGE_0103_PID 0x0103 ++#define MTXORB_FTDI_RANGE_0104_PID 0x0104 ++#define MTXORB_FTDI_RANGE_0105_PID 0x0105 ++#define MTXORB_FTDI_RANGE_0106_PID 0x0106 ++#define MTXORB_FTDI_RANGE_0107_PID 0x0107 ++#define MTXORB_FTDI_RANGE_0108_PID 0x0108 ++#define MTXORB_FTDI_RANGE_0109_PID 0x0109 ++#define MTXORB_FTDI_RANGE_010A_PID 0x010A ++#define MTXORB_FTDI_RANGE_010B_PID 0x010B ++#define MTXORB_FTDI_RANGE_010C_PID 0x010C ++#define MTXORB_FTDI_RANGE_010D_PID 0x010D ++#define MTXORB_FTDI_RANGE_010E_PID 0x010E ++#define MTXORB_FTDI_RANGE_010F_PID 0x010F ++#define MTXORB_FTDI_RANGE_0110_PID 0x0110 ++#define MTXORB_FTDI_RANGE_0111_PID 0x0111 ++#define MTXORB_FTDI_RANGE_0112_PID 0x0112 ++#define MTXORB_FTDI_RANGE_0113_PID 0x0113 ++#define MTXORB_FTDI_RANGE_0114_PID 0x0114 ++#define MTXORB_FTDI_RANGE_0115_PID 0x0115 ++#define MTXORB_FTDI_RANGE_0116_PID 0x0116 ++#define MTXORB_FTDI_RANGE_0117_PID 0x0117 ++#define MTXORB_FTDI_RANGE_0118_PID 0x0118 ++#define MTXORB_FTDI_RANGE_0119_PID 0x0119 ++#define MTXORB_FTDI_RANGE_011A_PID 0x011A ++#define MTXORB_FTDI_RANGE_011B_PID 0x011B ++#define MTXORB_FTDI_RANGE_011C_PID 0x011C ++#define MTXORB_FTDI_RANGE_011D_PID 0x011D ++#define MTXORB_FTDI_RANGE_011E_PID 0x011E ++#define MTXORB_FTDI_RANGE_011F_PID 0x011F ++#define MTXORB_FTDI_RANGE_0120_PID 0x0120 ++#define MTXORB_FTDI_RANGE_0121_PID 0x0121 ++#define MTXORB_FTDI_RANGE_0122_PID 0x0122 ++#define MTXORB_FTDI_RANGE_0123_PID 0x0123 ++#define MTXORB_FTDI_RANGE_0124_PID 0x0124 ++#define MTXORB_FTDI_RANGE_0125_PID 0x0125 ++#define MTXORB_FTDI_RANGE_0126_PID 0x0126 ++#define MTXORB_FTDI_RANGE_0127_PID 0x0127 ++#define MTXORB_FTDI_RANGE_0128_PID 0x0128 ++#define MTXORB_FTDI_RANGE_0129_PID 0x0129 ++#define MTXORB_FTDI_RANGE_012A_PID 0x012A ++#define MTXORB_FTDI_RANGE_012B_PID 0x012B ++#define MTXORB_FTDI_RANGE_012C_PID 0x012C ++#define MTXORB_FTDI_RANGE_012D_PID 0x012D ++#define MTXORB_FTDI_RANGE_012E_PID 0x012E ++#define MTXORB_FTDI_RANGE_012F_PID 0x012F ++#define MTXORB_FTDI_RANGE_0130_PID 0x0130 ++#define MTXORB_FTDI_RANGE_0131_PID 0x0131 ++#define MTXORB_FTDI_RANGE_0132_PID 0x0132 ++#define MTXORB_FTDI_RANGE_0133_PID 0x0133 ++#define MTXORB_FTDI_RANGE_0134_PID 0x0134 ++#define MTXORB_FTDI_RANGE_0135_PID 0x0135 ++#define MTXORB_FTDI_RANGE_0136_PID 0x0136 ++#define MTXORB_FTDI_RANGE_0137_PID 0x0137 ++#define MTXORB_FTDI_RANGE_0138_PID 0x0138 ++#define MTXORB_FTDI_RANGE_0139_PID 0x0139 ++#define MTXORB_FTDI_RANGE_013A_PID 0x013A ++#define MTXORB_FTDI_RANGE_013B_PID 0x013B ++#define MTXORB_FTDI_RANGE_013C_PID 0x013C ++#define MTXORB_FTDI_RANGE_013D_PID 0x013D ++#define MTXORB_FTDI_RANGE_013E_PID 0x013E ++#define MTXORB_FTDI_RANGE_013F_PID 0x013F ++#define MTXORB_FTDI_RANGE_0140_PID 0x0140 ++#define MTXORB_FTDI_RANGE_0141_PID 0x0141 ++#define MTXORB_FTDI_RANGE_0142_PID 0x0142 ++#define MTXORB_FTDI_RANGE_0143_PID 0x0143 ++#define MTXORB_FTDI_RANGE_0144_PID 0x0144 ++#define MTXORB_FTDI_RANGE_0145_PID 0x0145 ++#define MTXORB_FTDI_RANGE_0146_PID 0x0146 ++#define MTXORB_FTDI_RANGE_0147_PID 0x0147 ++#define MTXORB_FTDI_RANGE_0148_PID 0x0148 ++#define MTXORB_FTDI_RANGE_0149_PID 0x0149 ++#define MTXORB_FTDI_RANGE_014A_PID 0x014A ++#define MTXORB_FTDI_RANGE_014B_PID 0x014B ++#define MTXORB_FTDI_RANGE_014C_PID 0x014C ++#define MTXORB_FTDI_RANGE_014D_PID 0x014D ++#define MTXORB_FTDI_RANGE_014E_PID 0x014E ++#define MTXORB_FTDI_RANGE_014F_PID 0x014F ++#define MTXORB_FTDI_RANGE_0150_PID 0x0150 ++#define MTXORB_FTDI_RANGE_0151_PID 0x0151 ++#define MTXORB_FTDI_RANGE_0152_PID 0x0152 ++#define MTXORB_FTDI_RANGE_0153_PID 0x0153 ++#define MTXORB_FTDI_RANGE_0154_PID 0x0154 ++#define MTXORB_FTDI_RANGE_0155_PID 0x0155 ++#define MTXORB_FTDI_RANGE_0156_PID 0x0156 ++#define MTXORB_FTDI_RANGE_0157_PID 0x0157 ++#define MTXORB_FTDI_RANGE_0158_PID 0x0158 ++#define MTXORB_FTDI_RANGE_0159_PID 0x0159 ++#define MTXORB_FTDI_RANGE_015A_PID 0x015A ++#define MTXORB_FTDI_RANGE_015B_PID 0x015B ++#define MTXORB_FTDI_RANGE_015C_PID 0x015C ++#define MTXORB_FTDI_RANGE_015D_PID 0x015D ++#define MTXORB_FTDI_RANGE_015E_PID 0x015E ++#define MTXORB_FTDI_RANGE_015F_PID 0x015F ++#define MTXORB_FTDI_RANGE_0160_PID 0x0160 ++#define MTXORB_FTDI_RANGE_0161_PID 0x0161 ++#define MTXORB_FTDI_RANGE_0162_PID 0x0162 ++#define MTXORB_FTDI_RANGE_0163_PID 0x0163 ++#define MTXORB_FTDI_RANGE_0164_PID 0x0164 ++#define MTXORB_FTDI_RANGE_0165_PID 0x0165 ++#define MTXORB_FTDI_RANGE_0166_PID 0x0166 ++#define MTXORB_FTDI_RANGE_0167_PID 0x0167 ++#define MTXORB_FTDI_RANGE_0168_PID 0x0168 ++#define MTXORB_FTDI_RANGE_0169_PID 0x0169 ++#define MTXORB_FTDI_RANGE_016A_PID 0x016A ++#define MTXORB_FTDI_RANGE_016B_PID 0x016B ++#define MTXORB_FTDI_RANGE_016C_PID 0x016C ++#define MTXORB_FTDI_RANGE_016D_PID 0x016D ++#define MTXORB_FTDI_RANGE_016E_PID 0x016E ++#define MTXORB_FTDI_RANGE_016F_PID 0x016F ++#define MTXORB_FTDI_RANGE_0170_PID 0x0170 ++#define MTXORB_FTDI_RANGE_0171_PID 0x0171 ++#define MTXORB_FTDI_RANGE_0172_PID 0x0172 ++#define MTXORB_FTDI_RANGE_0173_PID 0x0173 ++#define MTXORB_FTDI_RANGE_0174_PID 0x0174 ++#define MTXORB_FTDI_RANGE_0175_PID 0x0175 ++#define MTXORB_FTDI_RANGE_0176_PID 0x0176 ++#define MTXORB_FTDI_RANGE_0177_PID 0x0177 ++#define MTXORB_FTDI_RANGE_0178_PID 0x0178 ++#define MTXORB_FTDI_RANGE_0179_PID 0x0179 ++#define MTXORB_FTDI_RANGE_017A_PID 0x017A ++#define MTXORB_FTDI_RANGE_017B_PID 0x017B ++#define MTXORB_FTDI_RANGE_017C_PID 0x017C ++#define MTXORB_FTDI_RANGE_017D_PID 0x017D ++#define MTXORB_FTDI_RANGE_017E_PID 0x017E ++#define MTXORB_FTDI_RANGE_017F_PID 0x017F ++#define MTXORB_FTDI_RANGE_0180_PID 0x0180 ++#define MTXORB_FTDI_RANGE_0181_PID 0x0181 ++#define MTXORB_FTDI_RANGE_0182_PID 0x0182 ++#define MTXORB_FTDI_RANGE_0183_PID 0x0183 ++#define MTXORB_FTDI_RANGE_0184_PID 0x0184 ++#define MTXORB_FTDI_RANGE_0185_PID 0x0185 ++#define MTXORB_FTDI_RANGE_0186_PID 0x0186 ++#define MTXORB_FTDI_RANGE_0187_PID 0x0187 ++#define MTXORB_FTDI_RANGE_0188_PID 0x0188 ++#define MTXORB_FTDI_RANGE_0189_PID 0x0189 ++#define MTXORB_FTDI_RANGE_018A_PID 0x018A ++#define MTXORB_FTDI_RANGE_018B_PID 0x018B ++#define MTXORB_FTDI_RANGE_018C_PID 0x018C ++#define MTXORB_FTDI_RANGE_018D_PID 0x018D ++#define MTXORB_FTDI_RANGE_018E_PID 0x018E ++#define MTXORB_FTDI_RANGE_018F_PID 0x018F ++#define MTXORB_FTDI_RANGE_0190_PID 0x0190 ++#define MTXORB_FTDI_RANGE_0191_PID 0x0191 ++#define MTXORB_FTDI_RANGE_0192_PID 0x0192 ++#define MTXORB_FTDI_RANGE_0193_PID 0x0193 ++#define MTXORB_FTDI_RANGE_0194_PID 0x0194 ++#define MTXORB_FTDI_RANGE_0195_PID 0x0195 ++#define MTXORB_FTDI_RANGE_0196_PID 0x0196 ++#define MTXORB_FTDI_RANGE_0197_PID 0x0197 ++#define MTXORB_FTDI_RANGE_0198_PID 0x0198 ++#define MTXORB_FTDI_RANGE_0199_PID 0x0199 ++#define MTXORB_FTDI_RANGE_019A_PID 0x019A ++#define MTXORB_FTDI_RANGE_019B_PID 0x019B ++#define MTXORB_FTDI_RANGE_019C_PID 0x019C ++#define MTXORB_FTDI_RANGE_019D_PID 0x019D ++#define MTXORB_FTDI_RANGE_019E_PID 0x019E ++#define MTXORB_FTDI_RANGE_019F_PID 0x019F ++#define MTXORB_FTDI_RANGE_01A0_PID 0x01A0 ++#define MTXORB_FTDI_RANGE_01A1_PID 0x01A1 ++#define MTXORB_FTDI_RANGE_01A2_PID 0x01A2 ++#define MTXORB_FTDI_RANGE_01A3_PID 0x01A3 ++#define MTXORB_FTDI_RANGE_01A4_PID 0x01A4 ++#define MTXORB_FTDI_RANGE_01A5_PID 0x01A5 ++#define MTXORB_FTDI_RANGE_01A6_PID 0x01A6 ++#define MTXORB_FTDI_RANGE_01A7_PID 0x01A7 ++#define MTXORB_FTDI_RANGE_01A8_PID 0x01A8 ++#define MTXORB_FTDI_RANGE_01A9_PID 0x01A9 ++#define MTXORB_FTDI_RANGE_01AA_PID 0x01AA ++#define MTXORB_FTDI_RANGE_01AB_PID 0x01AB ++#define MTXORB_FTDI_RANGE_01AC_PID 0x01AC ++#define MTXORB_FTDI_RANGE_01AD_PID 0x01AD ++#define MTXORB_FTDI_RANGE_01AE_PID 0x01AE ++#define MTXORB_FTDI_RANGE_01AF_PID 0x01AF ++#define MTXORB_FTDI_RANGE_01B0_PID 0x01B0 ++#define MTXORB_FTDI_RANGE_01B1_PID 0x01B1 ++#define MTXORB_FTDI_RANGE_01B2_PID 0x01B2 ++#define MTXORB_FTDI_RANGE_01B3_PID 0x01B3 ++#define MTXORB_FTDI_RANGE_01B4_PID 0x01B4 ++#define MTXORB_FTDI_RANGE_01B5_PID 0x01B5 ++#define MTXORB_FTDI_RANGE_01B6_PID 0x01B6 ++#define MTXORB_FTDI_RANGE_01B7_PID 0x01B7 ++#define MTXORB_FTDI_RANGE_01B8_PID 0x01B8 ++#define MTXORB_FTDI_RANGE_01B9_PID 0x01B9 ++#define MTXORB_FTDI_RANGE_01BA_PID 0x01BA ++#define MTXORB_FTDI_RANGE_01BB_PID 0x01BB ++#define MTXORB_FTDI_RANGE_01BC_PID 0x01BC ++#define MTXORB_FTDI_RANGE_01BD_PID 0x01BD ++#define MTXORB_FTDI_RANGE_01BE_PID 0x01BE ++#define MTXORB_FTDI_RANGE_01BF_PID 0x01BF ++#define MTXORB_FTDI_RANGE_01C0_PID 0x01C0 ++#define MTXORB_FTDI_RANGE_01C1_PID 0x01C1 ++#define MTXORB_FTDI_RANGE_01C2_PID 0x01C2 ++#define MTXORB_FTDI_RANGE_01C3_PID 0x01C3 ++#define MTXORB_FTDI_RANGE_01C4_PID 0x01C4 ++#define MTXORB_FTDI_RANGE_01C5_PID 0x01C5 ++#define MTXORB_FTDI_RANGE_01C6_PID 0x01C6 ++#define MTXORB_FTDI_RANGE_01C7_PID 0x01C7 ++#define MTXORB_FTDI_RANGE_01C8_PID 0x01C8 ++#define MTXORB_FTDI_RANGE_01C9_PID 0x01C9 ++#define MTXORB_FTDI_RANGE_01CA_PID 0x01CA ++#define MTXORB_FTDI_RANGE_01CB_PID 0x01CB ++#define MTXORB_FTDI_RANGE_01CC_PID 0x01CC ++#define MTXORB_FTDI_RANGE_01CD_PID 0x01CD ++#define MTXORB_FTDI_RANGE_01CE_PID 0x01CE ++#define MTXORB_FTDI_RANGE_01CF_PID 0x01CF ++#define MTXORB_FTDI_RANGE_01D0_PID 0x01D0 ++#define MTXORB_FTDI_RANGE_01D1_PID 0x01D1 ++#define MTXORB_FTDI_RANGE_01D2_PID 0x01D2 ++#define MTXORB_FTDI_RANGE_01D3_PID 0x01D3 ++#define MTXORB_FTDI_RANGE_01D4_PID 0x01D4 ++#define MTXORB_FTDI_RANGE_01D5_PID 0x01D5 ++#define MTXORB_FTDI_RANGE_01D6_PID 0x01D6 ++#define MTXORB_FTDI_RANGE_01D7_PID 0x01D7 ++#define MTXORB_FTDI_RANGE_01D8_PID 0x01D8 ++#define MTXORB_FTDI_RANGE_01D9_PID 0x01D9 ++#define MTXORB_FTDI_RANGE_01DA_PID 0x01DA ++#define MTXORB_FTDI_RANGE_01DB_PID 0x01DB ++#define MTXORB_FTDI_RANGE_01DC_PID 0x01DC ++#define MTXORB_FTDI_RANGE_01DD_PID 0x01DD ++#define MTXORB_FTDI_RANGE_01DE_PID 0x01DE ++#define MTXORB_FTDI_RANGE_01DF_PID 0x01DF ++#define MTXORB_FTDI_RANGE_01E0_PID 0x01E0 ++#define MTXORB_FTDI_RANGE_01E1_PID 0x01E1 ++#define MTXORB_FTDI_RANGE_01E2_PID 0x01E2 ++#define MTXORB_FTDI_RANGE_01E3_PID 0x01E3 ++#define MTXORB_FTDI_RANGE_01E4_PID 0x01E4 ++#define MTXORB_FTDI_RANGE_01E5_PID 0x01E5 ++#define MTXORB_FTDI_RANGE_01E6_PID 0x01E6 ++#define MTXORB_FTDI_RANGE_01E7_PID 0x01E7 ++#define MTXORB_FTDI_RANGE_01E8_PID 0x01E8 ++#define MTXORB_FTDI_RANGE_01E9_PID 0x01E9 ++#define MTXORB_FTDI_RANGE_01EA_PID 0x01EA ++#define MTXORB_FTDI_RANGE_01EB_PID 0x01EB ++#define MTXORB_FTDI_RANGE_01EC_PID 0x01EC ++#define MTXORB_FTDI_RANGE_01ED_PID 0x01ED ++#define MTXORB_FTDI_RANGE_01EE_PID 0x01EE ++#define MTXORB_FTDI_RANGE_01EF_PID 0x01EF ++#define MTXORB_FTDI_RANGE_01F0_PID 0x01F0 ++#define MTXORB_FTDI_RANGE_01F1_PID 0x01F1 ++#define MTXORB_FTDI_RANGE_01F2_PID 0x01F2 ++#define MTXORB_FTDI_RANGE_01F3_PID 0x01F3 ++#define MTXORB_FTDI_RANGE_01F4_PID 0x01F4 ++#define MTXORB_FTDI_RANGE_01F5_PID 0x01F5 ++#define MTXORB_FTDI_RANGE_01F6_PID 0x01F6 ++#define MTXORB_FTDI_RANGE_01F7_PID 0x01F7 ++#define MTXORB_FTDI_RANGE_01F8_PID 0x01F8 ++#define MTXORB_FTDI_RANGE_01F9_PID 0x01F9 ++#define MTXORB_FTDI_RANGE_01FA_PID 0x01FA ++#define MTXORB_FTDI_RANGE_01FB_PID 0x01FB ++#define MTXORB_FTDI_RANGE_01FC_PID 0x01FC ++#define MTXORB_FTDI_RANGE_01FD_PID 0x01FD ++#define MTXORB_FTDI_RANGE_01FE_PID 0x01FE ++#define MTXORB_FTDI_RANGE_01FF_PID 0x01FF + +-/* Luminary Micro Stellaris Boards, VID = FTDI_VID */ +-/* FTDI 2332C Dual channel device, side A=245 FIFO (JTAG), Side B=RS232 UART */ +-#define LMI_LM3S_DEVEL_BOARD_PID 0xbcd8 +-#define LMI_LM3S_EVAL_BOARD_PID 0xbcd9 + +-/* www.elsterelectricity.com Elster Unicom III Optical Probe */ +-#define FTDI_ELSTER_UNICOM_PID 0xE700 /* Product Id */ + + /* + * The Mobility Lab (TML) +@@ -862,45 +949,11 @@ + #define TML_VID 0x1B91 /* Vendor ID */ + #define TML_USB_SERIAL_PID 0x0064 /* USB - Serial Converter */ + +-/* Propox devices */ +-#define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 +- +-/* Rig Expert Ukraine devices */ +-#define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */ +- +-/* Domintell products http://www.domintell.com */ +-#define FTDI_DOMINTELL_DGQG_PID 0xEF50 /* Master */ +-#define FTDI_DOMINTELL_DUSB_PID 0xEF51 /* DUSB01 module */ +- + /* Alti-2 products http://www.alti-2.com */ + #define ALTI2_VID 0x1BC9 + #define ALTI2_N3_PID 0x6001 /* Neptune 3 */ + + /* +- * FIC / OpenMoko, Inc. http://wiki.openmoko.org/wiki/Neo1973_Debug_Board_v3 +- * Submitted by Harald Welte <laforge@openmoko.org> +- */ +-#define FIC_VID 0x1457 +-#define FIC_NEO1973_DEBUG_PID 0x5118 +- +-/* +- * RATOC REX-USB60F +- */ +-#define RATOC_VENDOR_ID 0x0584 +-#define RATOC_PRODUCT_ID_USB60F 0xb020 +- +-/* +- * DIEBOLD BCS SE923 +- */ +-#define DIEBOLD_BCS_SE923_PID 0xfb99 +- +-/* +- * Atmel STK541 +- */ +-#define ATMEL_VID 0x03eb /* Vendor ID */ +-#define STK541_PID 0x2109 /* Zigbee Controller */ +- +-/* + * Dresden Elektronic Sensor Terminal Board + */ + #define DE_VID 0x1cf1 /* Vendor ID */ +@@ -908,19 +961,13 @@ + #define WHT_PID 0x0004 /* Wireless Handheld Terminal */ + + /* +- * Blackfin gnICE JTAG +- * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice ++ * Papouch products (http://www.papouch.com/) ++ * Submitted by Folkert van Heusden + */ +-#define ADI_VID 0x0456 +-#define ADI_GNICE_PID 0xF000 +-#define ADI_GNICEPLUS_PID 0xF001 + +-/* +- * JETI SPECTROMETER SPECBOS 1201 +- * http://www.jeti.com/products/sys/scb/scb1201.php +- */ +-#define JETI_VID 0x0c6c +-#define JETI_SPC1201_PID 0x04b2 ++#define PAPOUCH_VID 0x5050 /* Vendor ID */ ++#define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ ++#define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ + + /* + * Marvell SheevaPlug +@@ -928,32 +975,12 @@ + #define MARVELL_VID 0x9e88 + #define MARVELL_SHEEVAPLUG_PID 0x9e8f + +-#define FTDI_TURTELIZER_PID 0xBDC8 /* JTAG/RS-232 adapter by egnite GmBH */ +- + /* +- * GN Otometrics (http://www.otometrics.com) +- * Submitted by Ville Sundberg. +- */ +-#define GN_OTOMETRICS_VID 0x0c33 /* Vendor ID */ +-#define AURICAL_USB_PID 0x0010 /* Aurical USB Audiometer */ +- +-/* +- * Bayer Ascensia Contour blood glucose meter USB-converter cable. +- * http://winglucofacts.com/cables/ +- */ +-#define BAYER_VID 0x1A79 +-#define BAYER_CONTOUR_CABLE_PID 0x6001 +- +-/* +- * Marvell OpenRD Base, Client +- * http://www.open-rd.org +- * OpenRD Base, Client use VID 0x0403 +- */ +-#define MARVELL_OPENRD_PID 0x9e90 +- +-/* +- * Hameg HO820 and HO870 interface (using VID 0x0403) ++ * Evolution Robotics products (http://www.evolution.com/). ++ * Submitted by Shawn M. Lavelle. + */ +-#define HAMEG_HO820_PID 0xed74 +-#define HAMEG_HO870_PID 0xed71 +- ++#define EVOLUTION_VID 0xDEEE /* Vendor ID */ ++#define EVOLUTION_ER1_PID 0x0300 /* ER1 Control Module */ ++#define EVO_8U232AM_PID 0x02FF /* Evolution robotics RCM2 (FT232AM)*/ ++#define EVO_HYBRID_PID 0x0302 /* Evolution robotics RCM4 PID (FT232BM)*/ ++#define EVO_RCM4_PID 0x0303 /* Evolution robotics RCM4 PID */ diff --git a/usb.current/usb-musb-correct-dma-address-for-tx.patch b/usb.current/usb-musb-correct-dma-address-for-tx.patch new file mode 100644 index 00000000000000..912e6fdb6aecce --- /dev/null +++ b/usb.current/usb-musb-correct-dma-address-for-tx.patch @@ -0,0 +1,34 @@ +From vapier@gentoo.org Tue Dec 22 14:20:14 2009 +From: Cliff Cai <cliff.cai@analog.com> +Date: Mon, 21 Dec 2009 21:18:02 -0500 +Subject: USB: musb: correct DMA address for tx +To: linux-usb@vger.kernel.org, Felipe Balbi <felipe.balbi@nokia.com> +Cc: uclinux-dist-devel@blackfin.uclinux.org, Cliff Cai <cliff.cai@analog.com> +Message-ID: <1261448282-20059-1-git-send-email-vapier@gentoo.org> + + +From: Cliff Cai <cliff.cai@analog.com> + +Since a DMA transfer may need to be kicked off several times to complete, +the DMA start must include the length that has already been transferred. + +Signed-off-by: Cliff Cai <cliff.cai@analog.com> +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Cc: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_gadget.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/musb/musb_gadget.c ++++ b/drivers/usb/musb/musb_gadget.c +@@ -319,7 +319,7 @@ static void txstate(struct musb *musb, s + use_dma = use_dma && c->channel_program( + musb_ep->dma, musb_ep->packet_sz, + musb_ep->dma->desired_mode, +- request->dma, request_size); ++ request->dma + request->actual, request_size); + if (use_dma) { + if (musb_ep->dma->desired_mode == 0) { + /* diff --git a/usb.current/usb-musb-do-not-work-if-no-gadget-driver-is-loaded.patch b/usb.current/usb-musb-do-not-work-if-no-gadget-driver-is-loaded.patch new file mode 100644 index 00000000000000..6ef2536aacb0e6 --- /dev/null +++ b/usb.current/usb-musb-do-not-work-if-no-gadget-driver-is-loaded.patch @@ -0,0 +1,39 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:16:27 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 13:47:30 +0200 +Subject: USB: musb: do not work if no gadget driver is loaded +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Atal Shargorodsky <ext-atal.shargorodsky@nokia.com>, Yauheni Kaliuta <yauheni.kaliuta@nokia.com>, Maulik <x0082077@ti.com>, Felipe Balbi <felipe.balbi@nokia.com>, David Brownell <dbrownell@users.sourceforge.net> +Message-ID: <1260877650-32451-1-git-send-email-felipe.balbi@nokia.com> + + +On OTG and gadget-only configurations, we need a gadget driver +in order to work properly, so avoid changing operation modes +when there's no gadget driver loaded. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Cc: David Brownell <dbrownell@users.sourceforge.net> +Acked-by: Anand Gadiyar <gadiyar@ti.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -1521,6 +1521,14 @@ irqreturn_t musb_interrupt(struct musb * + (devctl & MUSB_DEVCTL_HM) ? "host" : "peripheral", + musb->int_usb, musb->int_tx, musb->int_rx); + ++#ifdef CONFIG_USB_GADGET_MUSB_HDRC ++ if (is_otg_enabled(musb) || is_peripheral_enabled(musb)) ++ if (!musb->gadget_driver) { ++ DBG(5, "No gadget driver loaded\n"); ++ return IRQ_HANDLED; ++ } ++#endif ++ + /* the core can interrupt us for multiple reasons; docs have + * a generic interrupt flowchart to follow + */ diff --git a/usb.current/usb-musb-fix-array-index-out-of-bounds-issue.patch b/usb.current/usb-musb-fix-array-index-out-of-bounds-issue.patch new file mode 100644 index 00000000000000..33e519f9830839 --- /dev/null +++ b/usb.current/usb-musb-fix-array-index-out-of-bounds-issue.patch @@ -0,0 +1,40 @@ +From x0082077@ti.com Tue Dec 22 14:21:30 2009 +From: Maulik Mankad <x0082077@ti.com> +Date: Tue, 22 Dec 2009 16:19:53 +0530 +Subject: USB: musb: Fix array index out of bounds issue +To: linux-usb@vger.kernel.org +Cc: david-b@pacbell.net, Maulik Mankad <x0082077@ti.com> +Message-ID: <1261478993-32294-1-git-send-email-x0082077@ti.com> + + +This patch fixes the below array index out of bounds issue. + +Buffer overflow, array index of 'aInfo' may be out of +bounds. Array 'aInfo' of size 78 may use index value(s) 6..84 + +The data stored in 'aInfo' array exceeds the array size of 78. + +This patch increases the size of this array to hold the string +correctly without any memory corruption. + +This issue was reported by Klockwork tool. + +Signed-off-by: Maulik Mankad <x0082077@ti.com> +Cc: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -1319,7 +1319,7 @@ static int __init musb_core_init(u16 mus + #endif + u8 reg; + char *type; +- char aInfo[78], aRevision[32], aDate[12]; ++ char aInfo[90], aRevision[32], aDate[12]; + void __iomem *mbase = musb->mregs; + int status = 0; + int i; diff --git a/usb.current/usb-musb-fix-compiling-warning-with-min-macro.patch b/usb.current/usb-musb-fix-compiling-warning-with-min-macro.patch new file mode 100644 index 00000000000000..39d3f280a666a1 --- /dev/null +++ b/usb.current/usb-musb-fix-compiling-warning-with-min-macro.patch @@ -0,0 +1,38 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:12:35 2009 +From: Cliff Cai <cliff.cai@analog.com> +Date: Tue, 15 Dec 2009 11:08:44 +0200 +Subject: USB: musb: fix compiling warning with min() macro +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Cliff Cai <cliff.cai@analog.com>, Mike Frysinger <vapier@gentoo.org>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260868125-4774-8-git-send-email-felipe.balbi@nokia.com> + + +From: Cliff Cai <cliff.cai@analog.com> + +Current musb gadget dma code produces the warning: +drivers/usb/musb/musb_gadget.c: In function 'txstate': +drivers/usb/musb/musb_gadget.c:312: warning: comparison of distinct + pointer types lacks a cast + +So switch to min_t(size_t, ...). + +Signed-off-by: Cliff Cai <cliff.cai@analog.com> +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_gadget.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/musb/musb_gadget.c ++++ b/drivers/usb/musb/musb_gadget.c +@@ -309,7 +309,7 @@ static void txstate(struct musb *musb, s + size_t request_size; + + /* setup DMA, then program endpoint CSR */ +- request_size = min(request->length, ++ request_size = min_t(size_t, request->length, + musb_ep->dma->max_len); + if (request_size < musb_ep->packet_sz) + musb_ep->dma->desired_mode = 0; diff --git a/usb.current/usb-musb-fix-for-crash-in-dm646x-usb-when-cppi-dma-is-enabled.patch b/usb.current/usb-musb-fix-for-crash-in-dm646x-usb-when-cppi-dma-is-enabled.patch new file mode 100644 index 00000000000000..69524ec482f242 --- /dev/null +++ b/usb.current/usb-musb-fix-for-crash-in-dm646x-usb-when-cppi-dma-is-enabled.patch @@ -0,0 +1,53 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:16:50 2009 +From: Swaminathan S <swami.iyer@ti.com> +Date: Tue, 15 Dec 2009 13:30:00 +0200 +Subject: USB: musb: fix for crash in DM646x USB when (CPPI)DMA is enabled +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Atal Shargorodsky <ext-atal.shargorodsky@nokia.com>, Yauheni Kaliuta <yauheni.kaliuta@nokia.com>, Swaminathan S <swami.iyer@ti.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260876601-7598-12-git-send-email-felipe.balbi@nokia.com> + + +From: Swaminathan S <swami.iyer@ti.com> + +Race condition exists between the cppi_interrupt handler and +davinci_interrupt handler w.r.t completing a TX IO. Since DM646x +has seperate DMA and USB endpoint interrupts cppi_interrupt handler +needs to hold the lock while operating on the endpoint. + +Update over previous patch to avoid taking the lock if already +taken. Tested on DM644x, DM355 and DM646x platforms. + +Signed-off-by: Swaminathan S <swami.iyer@ti.com> +Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> +Acked-by: Anand Gadiyar <gadiyar@ti.com> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/cppi_dma.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/usb/musb/cppi_dma.c ++++ b/drivers/usb/musb/cppi_dma.c +@@ -1154,8 +1154,11 @@ irqreturn_t cppi_interrupt(int irq, void + struct musb_hw_ep *hw_ep = NULL; + u32 rx, tx; + int i, index; ++ unsigned long flags; + + cppi = container_of(musb->dma_controller, struct cppi, controller); ++ if (cppi->irq) ++ spin_lock_irqsave(&musb->lock, flags); + + tibase = musb->ctrl_base; + +@@ -1285,6 +1288,9 @@ irqreturn_t cppi_interrupt(int irq, void + /* write to CPPI EOI register to re-enable interrupts */ + musb_writel(tibase, DAVINCI_CPPI_EOI_REG, 0); + ++ if (cppi->irq) ++ spin_unlock_irqrestore(&musb->lock, flags); ++ + return IRQ_HANDLED; + } + diff --git a/usb.current/usb-musb-fix-null-pointer-dereference-issue.patch b/usb.current/usb-musb-fix-null-pointer-dereference-issue.patch new file mode 100644 index 00000000000000..5c425de08f8129 --- /dev/null +++ b/usb.current/usb-musb-fix-null-pointer-dereference-issue.patch @@ -0,0 +1,48 @@ +From x0082077@ti.com Tue Dec 22 14:20:44 2009 +From: Maulik Mankad <x0082077@ti.com> +Date: Tue, 22 Dec 2009 16:18:19 +0530 +Subject: USB: musb: Fix null pointer dereference issue +To: linux-usb@vger.kernel.org +Cc: david-b@pacbell.net, Maulik Mankad <x0082077@ti.com> +Message-ID: <1261478899-31816-1-git-send-email-x0082077@ti.com> + + +This patch fixes the following NULL pointer dereference issue. + +Pointer 'request' returned from call to function 'next_request' +at line 748 may be NULL and may be dereferenced at line 792. + +============ +Code Snippet +============ + +748: request = next_request(musb_ep); +785: if (dma && (csr & MUSB_RXCSR_DMAENAB)) { + csr &= ~(MUSB_RXCSR_AUTOCLEAR + | MUSB_RXCSR_DMAENAB + | MUSB_RXCSR_DMAMODE); + musb_writew(epio, MUSB_RXCSR, + MUSB_RXCSR_P_WZC_BITS | csr); + +792: request->actual += musb_ep->dma->actual_len; + + +Signed-off-by: Maulik Mankad <x0082077@ti.com> +Cc: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_gadget.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/musb/musb_gadget.c ++++ b/drivers/usb/musb/musb_gadget.c +@@ -746,6 +746,8 @@ void musb_g_rx(struct musb *musb, u8 epn + musb_ep_select(mbase, epnum); + + request = next_request(musb_ep); ++ if (!request) ++ return; + + csr = musb_readw(epio, MUSB_RXCSR); + dma = is_dma_capable() ? musb_ep->dma : NULL; diff --git a/usb.current/usb-musb-gadget-set-otg-tranceiver-to-idle-when-registering-gadget.patch b/usb.current/usb-musb-gadget-set-otg-tranceiver-to-idle-when-registering-gadget.patch new file mode 100644 index 00000000000000..381500ff57b1c7 --- /dev/null +++ b/usb.current/usb-musb-gadget-set-otg-tranceiver-to-idle-when-registering-gadget.patch @@ -0,0 +1,37 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:15:51 2009 +From: Arnaud Mandy <ext-arnaud.2.mandy@nokia.com> +Date: Tue, 15 Dec 2009 13:29:58 +0200 +Subject: USB: musb: gadget: set otg tranceiver to idle when registering gadget +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Atal Shargorodsky <ext-atal.shargorodsky@nokia.com>, Yauheni Kaliuta <yauheni.kaliuta@nokia.com>, Felipe Balbi <felipe.balbi@nokia.com>, David Brownell <dbrownell@users.sourceforge.net> +Message-ID: <1260876601-7598-10-git-send-email-felipe.balbi@nokia.com> + + +From: Arnaud Mandy <ext-arnaud.2.mandy@nokia.com> + +When registering gadget driver, the state of the transceiver +must be set from undefined (no gadget) to b_idle. + +Module unload sets the transceiver state to undefined state. +After the first load/unload pair, the reset irq will be lost. + +Signed-off-by: Arnaud Mandy <ext-arnaud.2.mandy@nokia.com> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Cc: David Brownell <dbrownell@users.sourceforge.net> +Acked-by: Anand Gadiyar <gadiyar@ti.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_gadget.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/musb/musb_gadget.c ++++ b/drivers/usb/musb/musb_gadget.c +@@ -1731,6 +1731,7 @@ int usb_gadget_register_driver(struct us + spin_lock_irqsave(&musb->lock, flags); + + otg_set_peripheral(musb->xceiv, &musb->g); ++ musb->xceiv->state = OTG_STATE_B_IDLE; + musb->is_active = 1; + + /* FIXME this ignores the softconnect flag. Drivers are diff --git a/usb.current/usb-musb-gadget_ep0-avoid-setupend-interrupt.patch b/usb.current/usb-musb-gadget_ep0-avoid-setupend-interrupt.patch new file mode 100644 index 00000000000000..46a4fbf814b63f --- /dev/null +++ b/usb.current/usb-musb-gadget_ep0-avoid-setupend-interrupt.patch @@ -0,0 +1,61 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:17:38 2009 +From: Sergei Shtylyov <sshtylyov@ru.mvista.com> +Date: Tue, 15 Dec 2009 13:30:01 +0200 +Subject: USB: musb: gadget_ep0: avoid SetupEnd interrupt +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Atal Shargorodsky <ext-atal.shargorodsky@nokia.com>, Yauheni Kaliuta <yauheni.kaliuta@nokia.com>, Sergei Shtylyov <sshtylyov@ru.mvista.com>, stable@kernel.org, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260876601-7598-13-git-send-email-felipe.balbi@nokia.com> + + +From: Sergei Shtylyov <sshtylyov@ru.mvista.com> + +Gadget stalling a zero-length SETUP request results in this error message: + +SetupEnd came in a wrong ep0stage idle + +In order to avoid it, always set the CSR0.DataEnd bit after detecting a zero- +length request. Add the missing '\n' to the error message itself as well... + +Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> +Acked-by: Anand Gadiyar <gadiyar@ti.com> +Cc: stable <stable@kernel.org> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_gadget_ep0.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +--- a/drivers/usb/musb/musb_gadget_ep0.c ++++ b/drivers/usb/musb/musb_gadget_ep0.c +@@ -664,7 +664,7 @@ irqreturn_t musb_g_ep0_irq(struct musb * + musb->ep0_state = MUSB_EP0_STAGE_STATUSIN; + break; + default: +- ERR("SetupEnd came in a wrong ep0stage %s", ++ ERR("SetupEnd came in a wrong ep0stage %s\n", + decode_ep0stage(musb->ep0_state)); + } + csr = musb_readw(regs, MUSB_CSR0); +@@ -787,12 +787,18 @@ setup: + handled = service_zero_data_request( + musb, &setup); + ++ /* ++ * We're expecting no data in any case, so ++ * always set the DATAEND bit -- doing this ++ * here helps avoid SetupEnd interrupt coming ++ * in the idle stage when we're stalling... ++ */ ++ musb->ackpend |= MUSB_CSR0_P_DATAEND; ++ + /* status stage might be immediate */ +- if (handled > 0) { +- musb->ackpend |= MUSB_CSR0_P_DATAEND; ++ if (handled > 0) + musb->ep0_state = + MUSB_EP0_STAGE_STATUSIN; +- } + break; + + /* sequence #1 (IN to host), includes GET_STATUS diff --git a/usb.current/usb-musb-maintainers-fix-my-tree-s-address.patch b/usb.current/usb-musb-maintainers-fix-my-tree-s-address.patch new file mode 100644 index 00000000000000..122109445948ea --- /dev/null +++ b/usb.current/usb-musb-maintainers-fix-my-tree-s-address.patch @@ -0,0 +1,29 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:13:06 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 11:08:45 +0200 +Subject: USB: musb: MAINTAINERS: Fix my tree's address +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260868125-4774-9-git-send-email-felipe.balbi@nokia.com> + + +The tree is now on a new address. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + MAINTAINERS | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -3677,7 +3677,7 @@ F: include/linux/isicom.h + MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER + M: Felipe Balbi <felipe.balbi@nokia.com> + L: linux-usb@vger.kernel.org +-T: git git://gitorious.org/musb/mainline.git ++T: git git://gitorious.org/usb/usb.git + S: Maintained + F: drivers/usb/musb/ + diff --git a/usb.current/usb-musb-move-musb_remove-to-__exit.patch b/usb.current/usb-musb-move-musb_remove-to-__exit.patch new file mode 100644 index 00000000000000..dc0b952ec1e746 --- /dev/null +++ b/usb.current/usb-musb-move-musb_remove-to-__exit.patch @@ -0,0 +1,38 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:11:13 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 11:08:41 +0200 +Subject: USB: musb: move musb_remove to __exit +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260868125-4774-5-git-send-email-felipe.balbi@nokia.com> + + +probe() already was on __init, so moving remove() to __exit. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -2139,7 +2139,7 @@ static int __init musb_probe(struct plat + return musb_init_controller(dev, irq, base); + } + +-static int __devexit musb_remove(struct platform_device *pdev) ++static int __exit musb_remove(struct platform_device *pdev) + { + struct musb *musb = dev_to_musb(&pdev->dev); + void __iomem *ctrl_base = musb->ctrl_base; +@@ -2231,7 +2231,7 @@ static struct platform_driver musb_drive + .owner = THIS_MODULE, + .pm = MUSB_DEV_PM_OPS, + }, +- .remove = __devexit_p(musb_remove), ++ .remove = __exit_p(musb_remove), + .shutdown = musb_shutdown, + }; + diff --git a/usb.current/usb-musb-populate-the-vbus-gpio-with-the-correct-gpio-number.patch b/usb.current/usb-musb-populate-the-vbus-gpio-with-the-correct-gpio-number.patch new file mode 100644 index 00000000000000..164cd7c319109e --- /dev/null +++ b/usb.current/usb-musb-populate-the-vbus-gpio-with-the-correct-gpio-number.patch @@ -0,0 +1,35 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:15:24 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 13:29:57 +0200 +Subject: USB: musb: Populate the VBUS GPIO with the correct GPIO number +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Atal Shargorodsky <ext-atal.shargorodsky@nokia.com>, Yauheni Kaliuta <yauheni.kaliuta@nokia.com>, Swaminathan S <swami.iyer@ti.com>, David Brownell <dbrownell@users.sourceforge.net>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260876601-7598-9-git-send-email-felipe.balbi@nokia.com> + + +From: Swaminathan S <swami.iyer@ti.com> + +This fixes a null-pointer dereference bug. + +Signed-off-by: Swaminathan S <swami.iyer@ti.com> +Cc: David Brownell <dbrownell@users.sourceforge.net> +Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> +Acked-by: Anand Gadiyar <gadiyar@ti.com> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/davinci.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/musb/davinci.c ++++ b/drivers/usb/musb/davinci.c +@@ -42,7 +42,7 @@ + #include "musb_core.h" + + #ifdef CONFIG_MACH_DAVINCI_EVM +-#define GPIO_nVBUS_DRV 144 ++#define GPIO_nVBUS_DRV 160 + #endif + + #include "davinci.h" diff --git a/usb.current/usb-musb-workaround-blackfin-fifo-anomalies.patch b/usb.current/usb-musb-workaround-blackfin-fifo-anomalies.patch new file mode 100644 index 00000000000000..feb12995900b1f --- /dev/null +++ b/usb.current/usb-musb-workaround-blackfin-fifo-anomalies.patch @@ -0,0 +1,213 @@ +From vapier@gentoo.org Tue Dec 22 14:22:24 2009 +From: Mike Frysinger <vapier@gentoo.org> +Date: Mon, 21 Dec 2009 09:49:52 -0500 +Subject: USB: musb: workaround Blackfin FIFO anomalies +To: linux-usb@vger.kernel.org, Felipe Balbi <felipe.balbi@nokia.com> +Cc: uclinux-dist-devel@blackfin.uclinux.org, Bryan Wu <cooloney@kernel.org>, Cliff Cai <cliff.cai@analog.com> +Message-ID: <1261406993-7902-2-git-send-email-vapier@gentoo.org> + + +From: Bryan Wu <cooloney@kernel.org> + +Some of these workarounds are already in place, but labeled as affecting +all BF52x parts. Since we have official anomaly numbers now, use those +defines. And since writing to the FIFO has a similar hang issue as reading +from the FIFO, implement the workaround there too when necessary. + +Signed-off-by: Bryan Wu <cooloney@kernel.org> +Signed-off-by: Cliff Cai <cliff.cai@analog.com> +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +Cc: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/blackfin.c | 134 +++++++++++++++++++++++++++++--------------- + drivers/usb/musb/blackfin.h | 2 + 2 files changed, 91 insertions(+), 45 deletions(-) + +--- a/drivers/usb/musb/blackfin.c ++++ b/drivers/usb/musb/blackfin.c +@@ -29,6 +29,8 @@ void musb_write_fifo(struct musb_hw_ep * + { + void __iomem *fifo = hw_ep->fifo; + void __iomem *epio = hw_ep->regs; ++ u8 epnum = hw_ep->epnum; ++ u16 dma_reg = 0; + + prefetch((u8 *)src); + +@@ -39,67 +41,113 @@ void musb_write_fifo(struct musb_hw_ep * + + dump_fifo_data(src, len); + +- if (unlikely((unsigned long)src & 0x01)) +- outsw_8((unsigned long)fifo, src, +- len & 0x01 ? (len >> 1) + 1 : len >> 1); +- else +- outsw((unsigned long)fifo, src, +- len & 0x01 ? (len >> 1) + 1 : len >> 1); +-} ++ if (!ANOMALY_05000380 && epnum != 0) { ++ flush_dcache_range((unsigned int)src, ++ (unsigned int)(src + len)); ++ ++ /* Setup DMA address register */ ++ dma_reg = (u16) ((u32) src & 0xFFFF); ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_LOW), dma_reg); ++ SSYNC(); + ++ dma_reg = (u16) (((u32) src >> 16) & 0xFFFF); ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_HIGH), dma_reg); ++ SSYNC(); ++ ++ /* Setup DMA count register */ ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_LOW), len); ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_HIGH), 0); ++ SSYNC(); ++ ++ /* Enable the DMA */ ++ dma_reg = (epnum << 4) | DMA_ENA | INT_ENA | DIRECTION; ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), dma_reg); ++ SSYNC(); ++ ++ /* Wait for compelete */ ++ while (!(bfin_read_USB_DMA_INTERRUPT() & (1 << epnum))) ++ cpu_relax(); ++ ++ /* acknowledge dma interrupt */ ++ bfin_write_USB_DMA_INTERRUPT(1 << epnum); ++ SSYNC(); ++ ++ /* Reset DMA */ ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), 0); ++ SSYNC(); ++ } else { ++ SSYNC(); ++ ++ if (unlikely((unsigned long)src & 0x01)) ++ outsw_8((unsigned long)fifo, src, ++ len & 0x01 ? (len >> 1) + 1 : len >> 1); ++ else ++ outsw((unsigned long)fifo, src, ++ len & 0x01 ? (len >> 1) + 1 : len >> 1); ++ ++ } ++} + /* + * Unload an endpoint's FIFO + */ + void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst) + { + void __iomem *fifo = hw_ep->fifo; +- +-#ifdef CONFIG_BF52x + u8 epnum = hw_ep->epnum; + u16 dma_reg = 0; + +- invalidate_dcache_range((unsigned int)dst, +- (unsigned int)(dst + len)); ++ if (ANOMALY_05000467 && epnum != 0) { + +- /* Setup DMA address register */ +- dma_reg = (u16) ((u32) dst & 0xFFFF); +- bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_LOW), dma_reg); +- SSYNC(); ++ invalidate_dcache_range((unsigned int)dst, ++ (unsigned int)(dst + len)); + +- dma_reg = (u16) (((u32) dst >> 16) & 0xFFFF); +- bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_HIGH), dma_reg); +- SSYNC(); ++ /* Setup DMA address register */ ++ dma_reg = (u16) ((u32) dst & 0xFFFF); ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_LOW), dma_reg); ++ SSYNC(); + +- /* Setup DMA count register */ +- bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_LOW), len); +- bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_HIGH), 0); +- SSYNC(); ++ dma_reg = (u16) (((u32) dst >> 16) & 0xFFFF); ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_HIGH), dma_reg); ++ SSYNC(); + +- /* Enable the DMA */ +- dma_reg = (epnum << 4) | DMA_ENA | INT_ENA; +- bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), dma_reg); +- SSYNC(); ++ /* Setup DMA count register */ ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_LOW), len); ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_HIGH), 0); ++ SSYNC(); + +- /* Wait for compelete */ +- while (!(bfin_read_USB_DMA_INTERRUPT() & (1 << epnum))) +- cpu_relax(); ++ /* Enable the DMA */ ++ dma_reg = (epnum << 4) | DMA_ENA | INT_ENA; ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), dma_reg); ++ SSYNC(); + +- /* acknowledge dma interrupt */ +- bfin_write_USB_DMA_INTERRUPT(1 << epnum); +- SSYNC(); ++ /* Wait for compelete */ ++ while (!(bfin_read_USB_DMA_INTERRUPT() & (1 << epnum))) ++ cpu_relax(); + +- /* Reset DMA */ +- bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), 0); +- SSYNC(); +-#else +- if (unlikely((unsigned long)dst & 0x01)) +- insw_8((unsigned long)fifo, dst, +- len & 0x01 ? (len >> 1) + 1 : len >> 1); +- else +- insw((unsigned long)fifo, dst, +- len & 0x01 ? (len >> 1) + 1 : len >> 1); +-#endif ++ /* acknowledge dma interrupt */ ++ bfin_write_USB_DMA_INTERRUPT(1 << epnum); ++ SSYNC(); + ++ /* Reset DMA */ ++ bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), 0); ++ SSYNC(); ++ } else { ++ SSYNC(); ++ /* Read the last byte of packet with odd size from address fifo + 4 ++ * to trigger 1 byte access to EP0 FIFO. ++ */ ++ if (len == 1) ++ *dst = (u8)inw((unsigned long)fifo + 4); ++ else { ++ if (unlikely((unsigned long)dst & 0x01)) ++ insw_8((unsigned long)fifo, dst, len >> 1); ++ else ++ insw((unsigned long)fifo, dst, len >> 1); ++ ++ if (len & 0x01) ++ *(dst + len - 1) = (u8)inw((unsigned long)fifo + 4); ++ } ++ } + DBG(4, "%cX ep%d fifo %p count %d buf %p\n", + 'R', hw_ep->epnum, fifo, len, dst); + +--- a/drivers/usb/musb/blackfin.h ++++ b/drivers/usb/musb/blackfin.h +@@ -69,7 +69,6 @@ static void dump_fifo_data(u8 *buf, u16 + #define dump_fifo_data(buf, len) do {} while (0) + #endif + +-#ifdef CONFIG_BF52x + + #define USB_DMA_BASE USB_DMA_INTERRUPT + #define USB_DMAx_CTRL 0x04 +@@ -79,7 +78,6 @@ static void dump_fifo_data(u8 *buf, u16 + #define USB_DMAx_COUNT_HIGH 0x14 + + #define USB_DMA_REG(ep, reg) (USB_DMA_BASE + 0x20 * ep + reg) +-#endif + + /* Almost 1 second */ + #define TIMER_DELAY (1 * HZ) diff --git a/usb.current/usb-musb_gadget-fix-kernel-oops-in-txstate.patch b/usb.current/usb-musb_gadget-fix-kernel-oops-in-txstate.patch new file mode 100644 index 00000000000000..33f17d85ea7270 --- /dev/null +++ b/usb.current/usb-musb_gadget-fix-kernel-oops-in-txstate.patch @@ -0,0 +1,41 @@ +From sshtylyov@ru.mvista.com Tue Dec 22 14:07:39 2009 +From: Sergei Shtylyov <sshtylyov@ru.mvista.com> +Date: Wed, 16 Dec 2009 20:38:31 +0300 +Subject: USB: musb_gadget: fix kernel oops in txstate() +To: felipe.balbi@nokia.com, gregkh@suse.de +Cc: linux-usb@vger.kernel.org, davinci-linux-open-source@linux.davincidsp.com, david-b@pacbell.net +Message-ID: <200912162038.31532.sshtylyov@ru.mvista.com> +Content-Disposition: inline + + +Commit 7723de7e19b744144975a09c81777ec0f14ac5b3 (USB: musb_gadget: remove +pointless loop) included uncalled for (and incorrect) optimization that +might cause a kernel oops in txstate() -- undo it. + +Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + + +--- + drivers/usb/musb/musb_gadget.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/usb/musb/musb_gadget.c ++++ b/drivers/usb/musb/musb_gadget.c +@@ -515,12 +515,12 @@ void musb_g_tx(struct musb *musb, u8 epn + if (csr & MUSB_TXCSR_FIFONOTEMPTY) + return; + +- if (!musb_ep->desc) { ++ request = musb_ep->desc ? next_request(musb_ep) : NULL; ++ if (!request) { + DBG(4, "%s idle now\n", + musb_ep->end_point.name); + return; +- } else +- request = next_request(musb_ep); ++ } + } + + txstate(musb, to_musb_request(request)); diff --git a/usb/usb-otg-isp1301_omap-fix-compile-error.patch b/usb.current/usb-otg-isp1301_omap-fix-compile-error.patch index 2a536072fc4d44..2a536072fc4d44 100644 --- a/usb/usb-otg-isp1301_omap-fix-compile-error.patch +++ b/usb.current/usb-otg-isp1301_omap-fix-compile-error.patch diff --git a/usb/usb-ftdi_sio-fix-error-message-on-close.patch b/usb/usb-ftdi_sio-fix-error-message-on-close.patch index f6294ec6efd7f7..c1db6fe47cbe67 100644 --- a/usb/usb-ftdi_sio-fix-error-message-on-close.patch +++ b/usb/usb-ftdi_sio-fix-error-message-on-close.patch @@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c -@@ -1700,7 +1700,7 @@ static int ftdi_submit_read_urb(struct u +@@ -1701,7 +1701,7 @@ static int ftdi_submit_read_urb(struct u urb->transfer_buffer_length, ftdi_read_bulk_callback, port); result = usb_submit_urb(urb, mem_flags); diff --git a/usb/usb-ftdi_sio-fix-initialisation-of-latency-timeout.patch b/usb/usb-ftdi_sio-fix-initialisation-of-latency-timeout.patch index 459dfa199be012..39d27707ff2cb9 100644 --- a/usb/usb-ftdi_sio-fix-initialisation-of-latency-timeout.patch +++ b/usb/usb-ftdi_sio-fix-initialisation-of-latency-timeout.patch @@ -20,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c -@@ -1164,7 +1164,6 @@ static int read_latency_timer(struct usb +@@ -1165,7 +1165,6 @@ static int read_latency_timer(struct usb unsigned short latency = 0; int rv = 0; @@ -28,7 +28,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> dbg("%s", __func__); rv = usb_control_msg(udev, -@@ -1177,8 +1176,9 @@ static int read_latency_timer(struct usb +@@ -1178,8 +1177,9 @@ static int read_latency_timer(struct usb if (rv < 0) { dev_err(&port->dev, "Unable to read latency timer: %i\n", rv); return -EIO; @@ -40,7 +40,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> } static int get_serial_info(struct usb_serial_port *port, -@@ -1564,7 +1564,8 @@ static int ftdi_sio_port_probe(struct us +@@ -1565,7 +1565,8 @@ static int ftdi_sio_port_probe(struct us ftdi_determine_type(port); ftdi_set_max_packet_size(port); diff --git a/usb/usb-ftdi_sio-remove-obsolete-comment.patch b/usb/usb-ftdi_sio-remove-obsolete-comment.patch index faf996a6ac3d7d..8d0c45e2851a98 100644 --- a/usb/usb-ftdi_sio-remove-obsolete-comment.patch +++ b/usb/usb-ftdi_sio-remove-obsolete-comment.patch @@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c -@@ -1532,8 +1532,7 @@ static int ftdi_sio_port_probe(struct us +@@ -1533,8 +1533,7 @@ static int ftdi_sio_port_probe(struct us kref_init(&priv->kref); spin_lock_init(&priv->tx_lock); init_waitqueue_head(&priv->delta_msr_wait); diff --git a/usb/usb-ftdi_sio-remove-support-for-5-and-6-data-bits.patch b/usb/usb-ftdi_sio-remove-support-for-5-and-6-data-bits.patch index 425264ce2e39b5..f148371604ecdd 100644 --- a/usb/usb-ftdi_sio-remove-support-for-5-and-6-data-bits.patch +++ b/usb/usb-ftdi_sio-remove-support-for-5-and-6-data-bits.patch @@ -21,7 +21,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c -@@ -2226,12 +2226,10 @@ static void ftdi_set_termios(struct tty_ +@@ -2227,12 +2227,10 @@ static void ftdi_set_termios(struct tty_ } if (cflag & CSIZE) { switch (cflag & CSIZE) { diff --git a/usb/usb-musb-get-rid-of-musb-set_clock.patch b/usb/usb-musb-get-rid-of-musb-set_clock.patch new file mode 100644 index 00000000000000..59037ca0628e76 --- /dev/null +++ b/usb/usb-musb-get-rid-of-musb-set_clock.patch @@ -0,0 +1,133 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:10:27 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 11:08:40 +0200 +Subject: USB: musb: get rid of musb->set_clock +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260868125-4774-4-git-send-email-felipe.balbi@nokia.com> + + +... and use clk framework functions only. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 12 +++--------- + drivers/usb/musb/musb_core.h | 2 -- + drivers/usb/musb/omap2430.c | 10 ++-------- + drivers/usb/musb/tusb6010.c | 16 ++++++---------- + 4 files changed, 11 insertions(+), 29 deletions(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -1915,7 +1915,6 @@ bad_config: + spin_lock_init(&musb->lock); + musb->board_mode = plat->mode; + musb->board_set_power = plat->set_power; +- musb->set_clock = plat->set_clock; + musb->min_power = plat->min_power; + + /* Clock usage is chip-specific ... functional clock (DaVinci, +@@ -2167,11 +2166,9 @@ static int musb_suspend(struct device *d + */ + } + +- if (musb->set_clock) +- musb->set_clock(musb->clock, 0); +- else +- clk_disable(musb->clock); ++ clk_disable(musb->clock); + spin_unlock_irqrestore(&musb->lock, flags); ++ + return 0; + } + +@@ -2183,10 +2180,7 @@ static int musb_resume_noirq(struct devi + if (!musb->clock) + return 0; + +- if (musb->set_clock) +- musb->set_clock(musb->clock, 1); +- else +- clk_enable(musb->clock); ++ clk_enable(musb->clock); + + /* for static cmos like DaVinci, register values were preserved + * unless for some reason the whole soc powered down or the USB +--- a/drivers/usb/musb/musb_core.h ++++ b/drivers/usb/musb/musb_core.h +@@ -394,8 +394,6 @@ struct musb { + u8 board_mode; /* enum musb_mode */ + int (*board_set_power)(int state); + +- int (*set_clock)(struct clk *clk, int is_active); +- + u8 min_power; /* vbus for periph, in mA/2 */ + + bool is_host; +--- a/drivers/usb/musb/omap2430.c ++++ b/drivers/usb/musb/omap2430.c +@@ -273,10 +273,7 @@ int musb_platform_suspend(struct musb *m + + otg_set_suspend(musb->xceiv, 1); + +- if (musb->set_clock) +- musb->set_clock(musb->clock, 0); +- else +- clk_disable(musb->clock); ++ clk_disable(musb->clock); + + return 0; + } +@@ -290,10 +287,7 @@ static int musb_platform_resume(struct m + + otg_set_suspend(musb->xceiv, 0); + +- if (musb->set_clock) +- musb->set_clock(musb->clock, 1); +- else +- clk_enable(musb->clock); ++ clk_enable(musb->clock); + + l = omap_readl(OTG_SYSCONFIG); + l &= ~ENABLEWAKEUP; /* disable wakeup */ +--- a/drivers/usb/musb/tusb6010.c ++++ b/drivers/usb/musb/tusb6010.c +@@ -279,12 +279,10 @@ static int tusb_draw_power(struct otg_tr + * Keep clock active when enabled. Note that this is not tied to + * drawing VBUS, as with OTG mA can be less than musb->min_power. + */ +- if (musb->set_clock) { +- if (mA) +- musb->set_clock(musb->clock, 1); +- else +- musb->set_clock(musb->clock, 0); +- } ++ if (mA) ++ clk_enable(musb->clock); ++ else ++ clk_disable(musb->clock); + + /* tps65030 seems to consume max 100mA, with maybe 60mA available + * (measured on one board) for things other than tps and tusb. +@@ -531,8 +529,7 @@ static void tusb_source_power(struct mus + devctl = musb_readb(musb->mregs, MUSB_DEVCTL); + + if (is_on) { +- if (musb->set_clock) +- musb->set_clock(musb->clock, 1); ++ clk_enable(musb->clock); + timer = OTG_TIMER_MS(OTG_TIME_A_WAIT_VRISE); + musb->xceiv->default_a = 1; + musb->xceiv->state = OTG_STATE_A_WAIT_VRISE; +@@ -571,8 +568,7 @@ static void tusb_source_power(struct mus + + devctl &= ~MUSB_DEVCTL_SESSION; + conf &= ~TUSB_DEV_CONF_USB_HOST_MODE; +- if (musb->set_clock) +- musb->set_clock(musb->clock, 0); ++ clk_disable(musb->clock); + } + prcm &= ~(TUSB_PRCM_MNGMT_15_SW_EN | TUSB_PRCM_MNGMT_33_SW_EN); + diff --git a/usb/usb-musb-move-to-sysfs_groups.patch b/usb/usb-musb-move-to-sysfs_groups.patch new file mode 100644 index 00000000000000..fdb9f990709b32 --- /dev/null +++ b/usb/usb-musb-move-to-sysfs_groups.patch @@ -0,0 +1,82 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:09:22 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 11:08:38 +0200 +Subject: USB: musb: move to sysfs_groups +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260868125-4774-2-git-send-email-felipe.balbi@nokia.com> + + +it's easier to keep up and add more sysfs entries +as necessary. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 33 +++++++++++++++------------------ + 1 file changed, 15 insertions(+), 18 deletions(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -1759,6 +1759,19 @@ static DEVICE_ATTR(srp, 0644, NULL, musb + + #endif /* CONFIG_USB_GADGET_MUSB_HDRC */ + ++static struct attribute *musb_attributes[] = { ++ &dev_attr_mode.attr, ++ &dev_attr_vbus.attr, ++#ifdef CONFIG_USB_GADGET_MUSB_HDRC ++ &dev_attr_srp.attr, ++#endif ++ NULL ++}; ++ ++static const struct attribute_group musb_attr_group = { ++ .attrs = musb_attributes, ++}; ++ + #endif /* sysfs */ + + /* Only used to provide driver mode change events */ +@@ -1833,11 +1846,7 @@ static void musb_free(struct musb *musb) + */ + + #ifdef CONFIG_SYSFS +- device_remove_file(musb->controller, &dev_attr_mode); +- device_remove_file(musb->controller, &dev_attr_vbus); +-#ifdef CONFIG_USB_GADGET_MUSB_HDRC +- device_remove_file(musb->controller, &dev_attr_srp); +-#endif ++ sysfs_remove_group(&musb->controller->kobj, &musb_attr_group); + #endif + + #ifdef CONFIG_USB_GADGET_MUSB_HDRC +@@ -2079,12 +2088,7 @@ bad_config: + } + + #ifdef CONFIG_SYSFS +- status = device_create_file(dev, &dev_attr_mode); +- status = device_create_file(dev, &dev_attr_vbus); +-#ifdef CONFIG_USB_GADGET_MUSB_HDRC +- status = device_create_file(dev, &dev_attr_srp); +-#endif /* CONFIG_USB_GADGET_MUSB_HDRC */ +- status = 0; ++ status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group); + #endif + if (status) + goto fail2; +@@ -2092,13 +2096,6 @@ bad_config: + return 0; + + fail2: +-#ifdef CONFIG_SYSFS +- device_remove_file(musb->controller, &dev_attr_mode); +- device_remove_file(musb->controller, &dev_attr_vbus); +-#ifdef CONFIG_USB_GADGET_MUSB_HDRC +- device_remove_file(musb->controller, &dev_attr_srp); +-#endif +-#endif + musb_platform_exit(musb); + fail: + dev_err(musb->controller, diff --git a/usb/usb-musb-move-two-printk-to-dev_err.patch b/usb/usb-musb-move-two-printk-to-dev_err.patch new file mode 100644 index 00000000000000..b26aecaae3c235 --- /dev/null +++ b/usb/usb-musb-move-two-printk-to-dev_err.patch @@ -0,0 +1,38 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:12:04 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 11:08:43 +0200 +Subject: USB: musb: move two printk to dev_err +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260868125-4774-7-git-send-email-felipe.balbi@nokia.com> + + +trivial cleanup, no functional changes. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -1696,7 +1696,7 @@ musb_vbus_store(struct device *dev, stru + unsigned long val; + + if (sscanf(buf, "%lu", &val) < 1) { +- printk(KERN_ERR "Invalid VBUS timeout ms value\n"); ++ dev_err(dev, "Invalid VBUS timeout ms value\n"); + return -EINVAL; + } + +@@ -1746,7 +1746,7 @@ musb_srp_store(struct device *dev, struc + + if (sscanf(buf, "%hu", &srp) != 1 + || (srp != 1)) { +- printk(KERN_ERR "SRP: Value must be 1\n"); ++ dev_err(dev, "SRP: Value must be 1\n"); + return -EINVAL; + } + diff --git a/usb/usb-musb-remove-some-of-the-never-defined-defines.patch b/usb/usb-musb-remove-some-of-the-never-defined-defines.patch new file mode 100644 index 00000000000000..4f22ad1f549fc8 --- /dev/null +++ b/usb/usb-musb-remove-some-of-the-never-defined-defines.patch @@ -0,0 +1,100 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:09:45 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 11:08:39 +0200 +Subject: USB: musb: remove some of the never defined defines +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260868125-4774-3-git-send-email-felipe.balbi@nokia.com> + + +just makes the musb init code a bit cleaner. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 24 ------------------------ + drivers/usb/musb/musb_core.h | 16 ++++------------ + 2 files changed, 4 insertions(+), 36 deletions(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -1314,9 +1314,6 @@ enum { MUSB_CONTROLLER_MHDRC, MUSB_CONTR + */ + static int __init musb_core_init(u16 musb_type, struct musb *musb) + { +-#ifdef MUSB_AHB_ID +- u32 data; +-#endif + u8 reg; + char *type; + char aInfo[90], aRevision[32], aDate[12]; +@@ -1332,19 +1329,11 @@ static int __init musb_core_init(u16 mus + strcat(aInfo, ", dyn FIFOs"); + if (reg & MUSB_CONFIGDATA_MPRXE) { + strcat(aInfo, ", bulk combine"); +-#ifdef C_MP_RX + musb->bulk_combine = true; +-#else +- strcat(aInfo, " (X)"); /* no driver support */ +-#endif + } + if (reg & MUSB_CONFIGDATA_MPTXE) { + strcat(aInfo, ", bulk split"); +-#ifdef C_MP_TX + musb->bulk_split = true; +-#else +- strcat(aInfo, " (X)"); /* no driver support */ +-#endif + } + if (reg & MUSB_CONFIGDATA_HBRXE) { + strcat(aInfo, ", HB-ISO Rx"); +@@ -1360,20 +1349,7 @@ static int __init musb_core_init(u16 mus + printk(KERN_DEBUG "%s: ConfigData=0x%02x (%s)\n", + musb_driver_name, reg, aInfo); + +-#ifdef MUSB_AHB_ID +- data = musb_readl(mbase, 0x404); +- sprintf(aDate, "%04d-%02x-%02x", (data & 0xffff), +- (data >> 16) & 0xff, (data >> 24) & 0xff); +- /* FIXME ID2 and ID3 are unused */ +- data = musb_readl(mbase, 0x408); +- printk(KERN_DEBUG "ID2=%lx\n", (long unsigned)data); +- data = musb_readl(mbase, 0x40c); +- printk(KERN_DEBUG "ID3=%lx\n", (long unsigned)data); +- reg = musb_readb(mbase, 0x400); +- musb_type = ('M' == reg) ? MUSB_CONTROLLER_MHDRC : MUSB_CONTROLLER_HDRC; +-#else + aDate[0] = 0; +-#endif + if (MUSB_CONTROLLER_MHDRC == musb_type) { + musb->is_multipoint = 1; + type = "M"; +--- a/drivers/usb/musb/musb_core.h ++++ b/drivers/usb/musb/musb_core.h +@@ -412,21 +412,13 @@ struct musb { + unsigned hb_iso_rx:1; /* high bandwidth iso rx? */ + unsigned hb_iso_tx:1; /* high bandwidth iso tx? */ + +-#ifdef C_MP_TX +- unsigned bulk_split:1; ++ unsigned bulk_split:1; + #define can_bulk_split(musb,type) \ +- (((type) == USB_ENDPOINT_XFER_BULK) && (musb)->bulk_split) +-#else +-#define can_bulk_split(musb, type) 0 +-#endif ++ (((type) == USB_ENDPOINT_XFER_BULK) && (musb)->bulk_split) + +-#ifdef C_MP_RX +- unsigned bulk_combine:1; ++ unsigned bulk_combine:1; + #define can_bulk_combine(musb,type) \ +- (((type) == USB_ENDPOINT_XFER_BULK) && (musb)->bulk_combine) +-#else +-#define can_bulk_combine(musb, type) 0 +-#endif ++ (((type) == USB_ENDPOINT_XFER_BULK) && (musb)->bulk_combine) + + #ifdef CONFIG_USB_GADGET_MUSB_HDRC + /* is_suspended means USB B_PERIPHERAL suspend */ diff --git a/usb/usb-musb-use-resource_size.patch b/usb/usb-musb-use-resource_size.patch new file mode 100644 index 00000000000000..8289a0a46b494c --- /dev/null +++ b/usb/usb-musb-use-resource_size.patch @@ -0,0 +1,29 @@ +From felipe.balbi@nokia.com Tue Dec 22 14:11:34 2009 +From: Felipe Balbi <felipe.balbi@nokia.com> +Date: Tue, 15 Dec 2009 11:08:42 +0200 +Subject: USB: musb: use resource_size() +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: David Brownell <david-b@pacbell.net>, Anand Gadiyar <gadiyar@ti.com>, Ajay Kumar Gupta <ajay.gupta@ti.com>, Arnaud Mandy <ext-arnaud.2.mandy@nokia.com>, Heikki Krogerus <ext-heikki.krogerus@nokia.com>, Felipe Balbi <felipe.balbi@nokia.com> +Message-ID: <1260868125-4774-6-git-send-email-felipe.balbi@nokia.com> + + +it makes ioremap() usage looks cleaner. + +Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/musb_core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/musb/musb_core.c ++++ b/drivers/usb/musb/musb_core.c +@@ -2134,7 +2134,7 @@ static int __init musb_probe(struct plat + if (!iomem || irq == 0) + return -ENODEV; + +- base = ioremap(iomem->start, iomem->end - iomem->start + 1); ++ base = ioremap(iomem->start, resource_size(iomem)); + if (!base) { + dev_err(dev, "ioremap failed\n"); + return -ENOMEM; |
