Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (30 commits)
USB: Fix a bug on appledisplay.c regarding signedness
USB: option: support hi speed for modem Haier CE100
USB: audio gadget: free alsa devices when unloading
USB: audio gadget: fix wTotalLength calculation
usb: otg: isp1301_omap: fix compile error
USB: musb: workaround Blackfin FIFO anomalies
USB: musb: Fix array index out of bounds issue
USB: musb: Fix null pointer dereference issue
USB: musb: correct DMA address for tx
USB: musb: gadget_ep0: avoid SetupEnd interrupt
USB: musb: fix for crash in DM646x USB when (CPPI)DMA is enabled
USB: musb: do not work if no gadget driver is loaded
USB: musb: gadget: set otg tranceiver to idle when registering gadget
USB: musb: Populate the VBUS GPIO with the correct GPIO number
USB: musb: MAINTAINERS: Fix my tree's address
USB: musb: fix compiling warning with min() macro
USB: musb: move musb_remove to __exit
USB: musb_gadget: fix kernel oops in txstate()
USB: ftdi_sio: sort PID/VID entries in new ftdi_sio_ids.h header
USB: ftdi_sio: isolate all device IDs to new ftdi_sio_ids.h header
...

+1226 -1097
+10 -8
Documentation/ABI/testing/sysfs-bus-usb
··· 21 21 Description: 22 22 Each USB device directory will contain a file named 23 23 power/level. This file holds a power-level setting for 24 - the device, one of "on", "auto", or "suspend". 24 + the device, either "on" or "auto". 25 25 26 26 "on" means that the device is not allowed to autosuspend, 27 27 although normal suspends for system sleep will still 28 28 be honored. "auto" means the device will autosuspend 29 29 and autoresume in the usual manner, according to the 30 - capabilities of its driver. "suspend" means the device 31 - is forced into a suspended state and it will not autoresume 32 - in response to I/O requests. However remote-wakeup requests 33 - from the device may still be enabled (the remote-wakeup 34 - setting is controlled separately by the power/wakeup 35 - attribute). 30 + capabilities of its driver. 36 31 37 32 During normal use, devices should be left in the "auto" 38 - level. The other levels are meant for administrative uses. 33 + level. The "on" level is meant for administrative uses. 39 34 If you want to suspend a device immediately but leave it 40 35 free to wake up in response to I/O requests, you should 41 36 write "0" to power/autosuspend. 37 + 38 + Device not capable of proper suspend and resume should be 39 + left in the "on" level. Although the USB spec requires 40 + devices to support suspend/resume, many of them do not. 41 + In fact so many don't that by default, the USB core 42 + initializes all non-hub devices in the "on" level. Some 43 + drivers may change this setting when they are bound. 42 44 43 45 What: /sys/bus/usb/devices/.../power/persist 44 46 Date: May 2007
+15 -26
Documentation/usb/power-management.txt
··· 71 71 Forms of dynamic PM 72 72 ------------------- 73 73 74 - Dynamic suspends can occur in two ways: manual and automatic. 75 - "Manual" means that the user has told the kernel to suspend a device, 76 - whereas "automatic" means that the kernel has decided all by itself to 77 - suspend a device. Automatic suspend is called "autosuspend" for 78 - short. In general, a device won't be autosuspended unless it has been 79 - idle for some minimum period of time, the so-called idle-delay time. 74 + Dynamic suspends occur when the kernel decides to suspend an idle 75 + device. This is called "autosuspend" for short. In general, a device 76 + won't be autosuspended unless it has been idle for some minimum period 77 + of time, the so-called idle-delay time. 80 78 81 79 Of course, nothing the kernel does on its own initiative should 82 80 prevent the computer or its devices from working properly. If a ··· 94 96 We can categorize power management events in two broad classes: 95 97 external and internal. External events are those triggered by some 96 98 agent outside the USB stack: system suspend/resume (triggered by 97 - userspace), manual dynamic suspend/resume (also triggered by 98 - userspace), and remote wakeup (triggered by the device). Internal 99 - events are those triggered within the USB stack: autosuspend and 100 - autoresume. 99 + userspace), manual dynamic resume (also triggered by userspace), and 100 + remote wakeup (triggered by the device). Internal events are those 101 + triggered within the USB stack: autosuspend and autoresume. Note that 102 + all dynamic suspend events are internal; external agents are not 103 + allowed to issue dynamic suspends. 101 104 102 105 103 106 The user interface for dynamic PM ··· 144 145 number of seconds the device should remain idle before 145 146 the kernel will autosuspend it (the idle-delay time). 146 147 The default is 2. 0 means to autosuspend as soon as 147 - the device becomes idle, and -1 means never to 148 - autosuspend. You can write a number to the file to 149 - change the autosuspend idle-delay time. 148 + the device becomes idle, and negative values mean 149 + never to autosuspend. You can write a number to the 150 + file to change the autosuspend idle-delay time. 150 151 151 152 Writing "-1" to power/autosuspend and writing "on" to power/level do 152 153 essentially the same thing -- they both prevent the device from being ··· 376 377 routine is automatically set up to carry out the operation when the 377 378 autosuspend idle-delay has expired. 378 379 379 - Autoresume attempts also can fail. This will happen if power/level is 380 - set to "suspend" or if the device doesn't manage to resume properly. 381 - Unlike autosuspend, there's no delay for an autoresume. 380 + Autoresume attempts also can fail, although failure would mean that 381 + the device is no longer present or operating properly. Unlike 382 + autosuspend, there's no delay for an autoresume. 382 383 383 384 384 385 Other parts of the driver interface ··· 526 527 resume as soon as the system suspend is complete. Or the remote 527 528 wakeup may fail and get lost. Which outcome occurs depends on timing 528 529 and on the hardware and firmware design. 529 - 530 - More interestingly, a device might undergo a manual resume or 531 - autoresume during system suspend. With current kernels this shouldn't 532 - happen, because manual resumes must be initiated by userspace and 533 - autoresumes happen in response to I/O requests, but all user processes 534 - and I/O should be quiescent during a system suspend -- thanks to the 535 - freezer. However there are plans to do away with the freezer, which 536 - would mean these things would become possible. If and when this comes 537 - about, the USB core will carefully arrange matters so that either type 538 - of resume will block until the entire system has resumed.
+1 -1
MAINTAINERS
··· 3679 3679 MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER 3680 3680 M: Felipe Balbi <felipe.balbi@nokia.com> 3681 3681 L: linux-usb@vger.kernel.org 3682 - T: git git://gitorious.org/musb/mainline.git 3682 + T: git git://gitorious.org/usb/usb.git 3683 3683 S: Maintained 3684 3684 F: drivers/usb/musb/ 3685 3685
-2
drivers/usb/Makefile
··· 44 44 45 45 obj-$(CONFIG_USB_ATM) += atm/ 46 46 obj-$(CONFIG_USB_SPEEDTOUCH) += atm/ 47 - 48 - obj-$(CONFIG_USB_ULPI) += otg/
+3 -1
drivers/usb/core/hcd.c
··· 1597 1597 } 1598 1598 1599 1599 /** 1600 - * Check whether a new bandwidth setting exceeds the bus bandwidth. 1600 + * usb_hcd_alloc_bandwidth - check whether a new bandwidth setting exceeds 1601 + * the bus bandwidth 1602 + * @udev: target &usb_device 1601 1603 * @new_config: new configuration to install 1602 1604 * @cur_alt: the current alternate interface setting 1603 1605 * @new_alt: alternate interface setting that is being installed
+33 -25
drivers/usb/core/hub.c
··· 1658 1658 #endif 1659 1659 1660 1660 /** 1661 - * usb_configure_device_otg - FIXME (usbcore-internal) 1661 + * usb_enumerate_device_otg - FIXME (usbcore-internal) 1662 1662 * @udev: newly addressed device (in ADDRESS state) 1663 1663 * 1664 - * Do configuration for On-The-Go devices 1664 + * Finish enumeration for On-The-Go devices 1665 1665 */ 1666 - static int usb_configure_device_otg(struct usb_device *udev) 1666 + static int usb_enumerate_device_otg(struct usb_device *udev) 1667 1667 { 1668 1668 int err = 0; 1669 1669 ··· 1734 1734 1735 1735 1736 1736 /** 1737 - * usb_configure_device - Detect and probe device intfs/otg (usbcore-internal) 1737 + * usb_enumerate_device - Read device configs/intfs/otg (usbcore-internal) 1738 1738 * @udev: newly addressed device (in ADDRESS state) 1739 1739 * 1740 1740 * This is only called by usb_new_device() and usb_authorize_device() ··· 1745 1745 * the string descriptors, as they will be errored out by the device 1746 1746 * until it has been authorized. 1747 1747 */ 1748 - static int usb_configure_device(struct usb_device *udev) 1748 + static int usb_enumerate_device(struct usb_device *udev) 1749 1749 { 1750 1750 int err; 1751 1751 ··· 1769 1769 udev->descriptor.iManufacturer); 1770 1770 udev->serial = usb_cache_string(udev, udev->descriptor.iSerialNumber); 1771 1771 } 1772 - err = usb_configure_device_otg(udev); 1772 + err = usb_enumerate_device_otg(udev); 1773 1773 fail: 1774 1774 return err; 1775 1775 } ··· 1779 1779 * usb_new_device - perform initial device setup (usbcore-internal) 1780 1780 * @udev: newly addressed device (in ADDRESS state) 1781 1781 * 1782 - * This is called with devices which have been enumerated, but not yet 1783 - * configured. The device descriptor is available, but not descriptors 1782 + * This is called with devices which have been detected but not fully 1783 + * enumerated. The device descriptor is available, but not descriptors 1784 1784 * for any device configuration. The caller must have locked either 1785 1785 * the parent hub (if udev is a normal device) or else the 1786 1786 * usb_bus_list_lock (if udev is a root hub). The parent's pointer to ··· 1803 1803 if (udev->parent) 1804 1804 usb_autoresume_device(udev->parent); 1805 1805 1806 - usb_detect_quirks(udev); /* Determine quirks */ 1807 - err = usb_configure_device(udev); /* detect & probe dev/intfs */ 1806 + usb_detect_quirks(udev); 1807 + err = usb_enumerate_device(udev); /* Read descriptors */ 1808 1808 if (err < 0) 1809 1809 goto fail; 1810 1810 dev_dbg(&udev->dev, "udev %d, busnum %d, minor = %d\n", ··· 1849 1849 */ 1850 1850 int usb_deauthorize_device(struct usb_device *usb_dev) 1851 1851 { 1852 - unsigned cnt; 1853 1852 usb_lock_device(usb_dev); 1854 1853 if (usb_dev->authorized == 0) 1855 1854 goto out_unauthorized; 1855 + 1856 1856 usb_dev->authorized = 0; 1857 1857 usb_set_configuration(usb_dev, -1); 1858 + 1859 + kfree(usb_dev->product); 1858 1860 usb_dev->product = kstrdup("n/a (unauthorized)", GFP_KERNEL); 1861 + kfree(usb_dev->manufacturer); 1859 1862 usb_dev->manufacturer = kstrdup("n/a (unauthorized)", GFP_KERNEL); 1863 + kfree(usb_dev->serial); 1860 1864 usb_dev->serial = kstrdup("n/a (unauthorized)", GFP_KERNEL); 1861 - kfree(usb_dev->config); 1862 - usb_dev->config = NULL; 1863 - for (cnt = 0; cnt < usb_dev->descriptor.bNumConfigurations; cnt++) 1864 - kfree(usb_dev->rawdescriptors[cnt]); 1865 + 1866 + usb_destroy_configuration(usb_dev); 1865 1867 usb_dev->descriptor.bNumConfigurations = 0; 1866 - kfree(usb_dev->rawdescriptors); 1868 + 1867 1869 out_unauthorized: 1868 1870 usb_unlock_device(usb_dev); 1869 1871 return 0; ··· 1875 1873 int usb_authorize_device(struct usb_device *usb_dev) 1876 1874 { 1877 1875 int result = 0, c; 1876 + 1878 1877 usb_lock_device(usb_dev); 1879 1878 if (usb_dev->authorized == 1) 1880 1879 goto out_authorized; 1881 - kfree(usb_dev->product); 1882 - usb_dev->product = NULL; 1883 - kfree(usb_dev->manufacturer); 1884 - usb_dev->manufacturer = NULL; 1885 - kfree(usb_dev->serial); 1886 - usb_dev->serial = NULL; 1880 + 1887 1881 result = usb_autoresume_device(usb_dev); 1888 1882 if (result < 0) { 1889 1883 dev_err(&usb_dev->dev, ··· 1892 1894 "authorization: %d\n", result); 1893 1895 goto error_device_descriptor; 1894 1896 } 1897 + 1898 + kfree(usb_dev->product); 1899 + usb_dev->product = NULL; 1900 + kfree(usb_dev->manufacturer); 1901 + usb_dev->manufacturer = NULL; 1902 + kfree(usb_dev->serial); 1903 + usb_dev->serial = NULL; 1904 + 1895 1905 usb_dev->authorized = 1; 1896 - result = usb_configure_device(usb_dev); 1906 + result = usb_enumerate_device(usb_dev); 1897 1907 if (result < 0) 1898 - goto error_configure; 1908 + goto error_enumerate; 1899 1909 /* Choose and set the configuration. This registers the interfaces 1900 1910 * with the driver core and lets interface drivers bind to them. 1901 1911 */ ··· 1918 1912 } 1919 1913 } 1920 1914 dev_info(&usb_dev->dev, "authorized to connect\n"); 1921 - error_configure: 1915 + 1916 + error_enumerate: 1922 1917 error_device_descriptor: 1918 + usb_autosuspend_device(usb_dev); 1923 1919 error_autoresume: 1924 1920 out_authorized: 1925 1921 usb_unlock_device(usb_dev); // complements locktree
+5 -1
drivers/usb/core/sysfs.c
··· 82 82 struct device_attribute *attr, char *buf) \ 83 83 { \ 84 84 struct usb_device *udev; \ 85 + int retval; \ 85 86 \ 86 87 udev = to_usb_device(dev); \ 87 - return sprintf(buf, "%s\n", udev->name); \ 88 + usb_lock_device(udev); \ 89 + retval = sprintf(buf, "%s\n", udev->name); \ 90 + usb_unlock_device(udev); \ 91 + return retval; \ 88 92 } \ 89 93 static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL); 90 94
+3 -3
drivers/usb/core/usb.c
··· 66 66 /** 67 67 * usb_find_alt_setting() - Given a configuration, find the alternate setting 68 68 * for the given interface. 69 - * @config - the configuration to search (not necessarily the current config). 70 - * @iface_num - interface number to search in 71 - * @alt_num - alternate interface setting number to search for. 69 + * @config: the configuration to search (not necessarily the current config). 70 + * @iface_num: interface number to search in 71 + * @alt_num: alternate interface setting number to search for. 72 72 * 73 73 * Search the configuration's interface cache for the given alt setting. 74 74 */
+1 -1
drivers/usb/early/ehci-dbgp.c
··· 613 613 } 614 614 EXPORT_SYMBOL_GPL(dbgp_external_startup); 615 615 616 - static int __init ehci_reset_port(int port) 616 + static int ehci_reset_port(int port) 617 617 { 618 618 u32 portsc; 619 619 u32 delay_time, delay;
+1
drivers/usb/gadget/audio.c
··· 158 158 159 159 static int __exit audio_unbind(struct usb_composite_dev *cdev) 160 160 { 161 + gaudio_cleanup(); 161 162 return 0; 162 163 } 163 164
+10 -5
drivers/usb/gadget/f_audio.c
··· 56 56 DECLARE_UAC_AC_HEADER_DESCRIPTOR(2); 57 57 58 58 #define UAC_DT_AC_HEADER_LENGTH UAC_DT_AC_HEADER_SIZE(F_AUDIO_NUM_INTERFACES) 59 + /* 1 input terminal, 1 output terminal and 1 feature unit */ 60 + #define UAC_DT_TOTAL_LENGTH (UAC_DT_AC_HEADER_LENGTH + UAC_DT_INPUT_TERMINAL_SIZE \ 61 + + UAC_DT_OUTPUT_TERMINAL_SIZE + UAC_DT_FEATURE_UNIT_SIZE(0)) 59 62 /* B.3.2 Class-Specific AC Interface Descriptor */ 60 63 static struct uac_ac_header_descriptor_2 ac_header_desc = { 61 64 .bLength = UAC_DT_AC_HEADER_LENGTH, 62 65 .bDescriptorType = USB_DT_CS_INTERFACE, 63 66 .bDescriptorSubtype = UAC_HEADER, 64 67 .bcdADC = __constant_cpu_to_le16(0x0100), 65 - .wTotalLength = __constant_cpu_to_le16(UAC_DT_AC_HEADER_LENGTH), 68 + .wTotalLength = __constant_cpu_to_le16(UAC_DT_TOTAL_LENGTH), 66 69 .bInCollection = F_AUDIO_NUM_INTERFACES, 67 70 .baInterfaceNr = { 68 71 [0] = F_AUDIO_AC_INTERFACE, ··· 255 252 256 253 copy_buf = kzalloc(sizeof *copy_buf, GFP_ATOMIC); 257 254 if (!copy_buf) 258 - return (struct f_audio_buf *)-ENOMEM; 255 + return ERR_PTR(-ENOMEM); 259 256 260 257 copy_buf->buf = kzalloc(buf_size, GFP_ATOMIC); 261 258 if (!copy_buf->buf) { 262 259 kfree(copy_buf); 263 - return (struct f_audio_buf *)-ENOMEM; 260 + return ERR_PTR(-ENOMEM); 264 261 } 265 262 266 263 return copy_buf; ··· 335 332 list_add_tail(&copy_buf->list, &audio->play_queue); 336 333 schedule_work(&audio->playback_work); 337 334 copy_buf = f_audio_buffer_alloc(audio_buf_size); 338 - if (copy_buf < 0) 335 + if (IS_ERR(copy_buf)) 339 336 return -ENOMEM; 340 337 } 341 338 ··· 579 576 usb_ep_enable(out_ep, audio->out_desc); 580 577 out_ep->driver_data = audio; 581 578 audio->copy_buf = f_audio_buffer_alloc(audio_buf_size); 579 + if (IS_ERR(audio->copy_buf)) 580 + return -ENOMEM; 582 581 583 582 /* 584 583 * allocate a bunch of read buffers ··· 792 787 return status; 793 788 794 789 add_fail: 795 - gaudio_cleanup(&audio->card); 790 + gaudio_cleanup(); 796 791 setup_fail: 797 792 kfree(audio); 798 793 return status;
+9 -3
drivers/usb/gadget/u_audio.c
··· 288 288 return 0; 289 289 } 290 290 291 + static struct gaudio *the_card; 291 292 /** 292 293 * gaudio_setup - setup ALSA interface and preparing for USB transfer 293 294 * ··· 304 303 if (ret) 305 304 ERROR(card, "we need at least one control device\n"); 306 305 306 + if (!the_card) 307 + the_card = card; 308 + 307 309 return ret; 308 310 309 311 } ··· 316 312 * 317 313 * This is called to free all resources allocated by @gaudio_setup(). 318 314 */ 319 - void gaudio_cleanup(struct gaudio *card) 315 + void gaudio_cleanup(void) 320 316 { 321 - if (card) 322 - gaudio_close_snd_dev(card); 317 + if (the_card) { 318 + gaudio_close_snd_dev(the_card); 319 + the_card = NULL; 320 + } 323 321 } 324 322
+1 -1
drivers/usb/gadget/u_audio.h
··· 51 51 }; 52 52 53 53 int gaudio_setup(struct gaudio *card); 54 - void gaudio_cleanup(struct gaudio *card); 54 + void gaudio_cleanup(void); 55 55 56 56 #endif /* __U_AUDIO_H */
+3 -2
drivers/usb/misc/appledisplay.c
··· 60 60 static struct usb_device_id appledisplay_table [] = { 61 61 { APPLEDISPLAY_DEVICE(0x9218) }, 62 62 { APPLEDISPLAY_DEVICE(0x9219) }, 63 + { APPLEDISPLAY_DEVICE(0x921c) }, 63 64 { APPLEDISPLAY_DEVICE(0x921d) }, 64 65 65 66 /* Terminating entry */ ··· 73 72 struct usb_device *udev; /* usb device */ 74 73 struct urb *urb; /* usb request block */ 75 74 struct backlight_device *bd; /* backlight device */ 76 - char *urbdata; /* interrupt URB data buffer */ 77 - char *msgdata; /* control message data buffer */ 75 + u8 *urbdata; /* interrupt URB data buffer */ 76 + u8 *msgdata; /* control message data buffer */ 78 77 79 78 struct delayed_work work; 80 79 int button_pressed;
+1 -1
drivers/usb/misc/emi62.c
··· 167 167 err("%s - error loading firmware: error = %d", __func__, err); 168 168 goto wraperr; 169 169 } 170 - } while (i > 0); 170 + } while (rec); 171 171 172 172 /* Assert reset (stop the CPU in the EMI) */ 173 173 err = emi62_set_reset(dev,1);
+91 -43
drivers/usb/musb/blackfin.c
··· 29 29 { 30 30 void __iomem *fifo = hw_ep->fifo; 31 31 void __iomem *epio = hw_ep->regs; 32 + u8 epnum = hw_ep->epnum; 33 + u16 dma_reg = 0; 32 34 33 35 prefetch((u8 *)src); 34 36 ··· 41 39 42 40 dump_fifo_data(src, len); 43 41 44 - if (unlikely((unsigned long)src & 0x01)) 45 - outsw_8((unsigned long)fifo, src, 46 - len & 0x01 ? (len >> 1) + 1 : len >> 1); 47 - else 48 - outsw((unsigned long)fifo, src, 49 - len & 0x01 ? (len >> 1) + 1 : len >> 1); 50 - } 42 + if (!ANOMALY_05000380 && epnum != 0) { 43 + flush_dcache_range((unsigned int)src, 44 + (unsigned int)(src + len)); 51 45 46 + /* Setup DMA address register */ 47 + dma_reg = (u16) ((u32) src & 0xFFFF); 48 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_LOW), dma_reg); 49 + SSYNC(); 50 + 51 + dma_reg = (u16) (((u32) src >> 16) & 0xFFFF); 52 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_HIGH), dma_reg); 53 + SSYNC(); 54 + 55 + /* Setup DMA count register */ 56 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_LOW), len); 57 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_HIGH), 0); 58 + SSYNC(); 59 + 60 + /* Enable the DMA */ 61 + dma_reg = (epnum << 4) | DMA_ENA | INT_ENA | DIRECTION; 62 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), dma_reg); 63 + SSYNC(); 64 + 65 + /* Wait for compelete */ 66 + while (!(bfin_read_USB_DMA_INTERRUPT() & (1 << epnum))) 67 + cpu_relax(); 68 + 69 + /* acknowledge dma interrupt */ 70 + bfin_write_USB_DMA_INTERRUPT(1 << epnum); 71 + SSYNC(); 72 + 73 + /* Reset DMA */ 74 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), 0); 75 + SSYNC(); 76 + } else { 77 + SSYNC(); 78 + 79 + if (unlikely((unsigned long)src & 0x01)) 80 + outsw_8((unsigned long)fifo, src, 81 + len & 0x01 ? (len >> 1) + 1 : len >> 1); 82 + else 83 + outsw((unsigned long)fifo, src, 84 + len & 0x01 ? (len >> 1) + 1 : len >> 1); 85 + 86 + } 87 + } 52 88 /* 53 89 * Unload an endpoint's FIFO 54 90 */ 55 91 void musb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *dst) 56 92 { 57 93 void __iomem *fifo = hw_ep->fifo; 58 - 59 - #ifdef CONFIG_BF52x 60 94 u8 epnum = hw_ep->epnum; 61 95 u16 dma_reg = 0; 62 96 63 - invalidate_dcache_range((unsigned int)dst, 64 - (unsigned int)(dst + len)); 97 + if (ANOMALY_05000467 && epnum != 0) { 65 98 66 - /* Setup DMA address register */ 67 - dma_reg = (u16) ((u32) dst & 0xFFFF); 68 - bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_LOW), dma_reg); 69 - SSYNC(); 99 + invalidate_dcache_range((unsigned int)dst, 100 + (unsigned int)(dst + len)); 70 101 71 - dma_reg = (u16) (((u32) dst >> 16) & 0xFFFF); 72 - bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_HIGH), dma_reg); 73 - SSYNC(); 102 + /* Setup DMA address register */ 103 + dma_reg = (u16) ((u32) dst & 0xFFFF); 104 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_LOW), dma_reg); 105 + SSYNC(); 74 106 75 - /* Setup DMA count register */ 76 - bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_LOW), len); 77 - bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_HIGH), 0); 78 - SSYNC(); 107 + dma_reg = (u16) (((u32) dst >> 16) & 0xFFFF); 108 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_ADDR_HIGH), dma_reg); 109 + SSYNC(); 79 110 80 - /* Enable the DMA */ 81 - dma_reg = (epnum << 4) | DMA_ENA | INT_ENA; 82 - bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), dma_reg); 83 - SSYNC(); 111 + /* Setup DMA count register */ 112 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_LOW), len); 113 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_COUNT_HIGH), 0); 114 + SSYNC(); 84 115 85 - /* Wait for compelete */ 86 - while (!(bfin_read_USB_DMA_INTERRUPT() & (1 << epnum))) 87 - cpu_relax(); 116 + /* Enable the DMA */ 117 + dma_reg = (epnum << 4) | DMA_ENA | INT_ENA; 118 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), dma_reg); 119 + SSYNC(); 88 120 89 - /* acknowledge dma interrupt */ 90 - bfin_write_USB_DMA_INTERRUPT(1 << epnum); 91 - SSYNC(); 121 + /* Wait for compelete */ 122 + while (!(bfin_read_USB_DMA_INTERRUPT() & (1 << epnum))) 123 + cpu_relax(); 92 124 93 - /* Reset DMA */ 94 - bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), 0); 95 - SSYNC(); 96 - #else 97 - if (unlikely((unsigned long)dst & 0x01)) 98 - insw_8((unsigned long)fifo, dst, 99 - len & 0x01 ? (len >> 1) + 1 : len >> 1); 100 - else 101 - insw((unsigned long)fifo, dst, 102 - len & 0x01 ? (len >> 1) + 1 : len >> 1); 103 - #endif 125 + /* acknowledge dma interrupt */ 126 + bfin_write_USB_DMA_INTERRUPT(1 << epnum); 127 + SSYNC(); 104 128 129 + /* Reset DMA */ 130 + bfin_write16(USB_DMA_REG(epnum, USB_DMAx_CTRL), 0); 131 + SSYNC(); 132 + } else { 133 + SSYNC(); 134 + /* Read the last byte of packet with odd size from address fifo + 4 135 + * to trigger 1 byte access to EP0 FIFO. 136 + */ 137 + if (len == 1) 138 + *dst = (u8)inw((unsigned long)fifo + 4); 139 + else { 140 + if (unlikely((unsigned long)dst & 0x01)) 141 + insw_8((unsigned long)fifo, dst, len >> 1); 142 + else 143 + insw((unsigned long)fifo, dst, len >> 1); 144 + 145 + if (len & 0x01) 146 + *(dst + len - 1) = (u8)inw((unsigned long)fifo + 4); 147 + } 148 + } 105 149 DBG(4, "%cX ep%d fifo %p count %d buf %p\n", 106 150 'R', hw_ep->epnum, fifo, len, dst); 107 151
-2
drivers/usb/musb/blackfin.h
··· 69 69 #define dump_fifo_data(buf, len) do {} while (0) 70 70 #endif 71 71 72 - #ifdef CONFIG_BF52x 73 72 74 73 #define USB_DMA_BASE USB_DMA_INTERRUPT 75 74 #define USB_DMAx_CTRL 0x04 ··· 78 79 #define USB_DMAx_COUNT_HIGH 0x14 79 80 80 81 #define USB_DMA_REG(ep, reg) (USB_DMA_BASE + 0x20 * ep + reg) 81 - #endif 82 82 83 83 /* Almost 1 second */ 84 84 #define TIMER_DELAY (1 * HZ)
+6
drivers/usb/musb/cppi_dma.c
··· 1154 1154 struct musb_hw_ep *hw_ep = NULL; 1155 1155 u32 rx, tx; 1156 1156 int i, index; 1157 + unsigned long flags; 1157 1158 1158 1159 cppi = container_of(musb->dma_controller, struct cppi, controller); 1160 + if (cppi->irq) 1161 + spin_lock_irqsave(&musb->lock, flags); 1159 1162 1160 1163 tibase = musb->ctrl_base; 1161 1164 ··· 1287 1284 1288 1285 /* write to CPPI EOI register to re-enable interrupts */ 1289 1286 musb_writel(tibase, DAVINCI_CPPI_EOI_REG, 0); 1287 + 1288 + if (cppi->irq) 1289 + spin_unlock_irqrestore(&musb->lock, flags); 1290 1290 1291 1291 return IRQ_HANDLED; 1292 1292 }
+1 -1
drivers/usb/musb/davinci.c
··· 42 42 #include "musb_core.h" 43 43 44 44 #ifdef CONFIG_MACH_DAVINCI_EVM 45 - #define GPIO_nVBUS_DRV 144 45 + #define GPIO_nVBUS_DRV 160 46 46 #endif 47 47 48 48 #include "davinci.h"
+11 -3
drivers/usb/musb/musb_core.c
··· 1319 1319 #endif 1320 1320 u8 reg; 1321 1321 char *type; 1322 - char aInfo[78], aRevision[32], aDate[12]; 1322 + char aInfo[90], aRevision[32], aDate[12]; 1323 1323 void __iomem *mbase = musb->mregs; 1324 1324 int status = 0; 1325 1325 int i; ··· 1520 1520 DBG(4, "** IRQ %s usb%04x tx%04x rx%04x\n", 1521 1521 (devctl & MUSB_DEVCTL_HM) ? "host" : "peripheral", 1522 1522 musb->int_usb, musb->int_tx, musb->int_rx); 1523 + 1524 + #ifdef CONFIG_USB_GADGET_MUSB_HDRC 1525 + if (is_otg_enabled(musb) || is_peripheral_enabled(musb)) 1526 + if (!musb->gadget_driver) { 1527 + DBG(5, "No gadget driver loaded\n"); 1528 + return IRQ_HANDLED; 1529 + } 1530 + #endif 1523 1531 1524 1532 /* the core can interrupt us for multiple reasons; docs have 1525 1533 * a generic interrupt flowchart to follow ··· 2147 2139 return musb_init_controller(dev, irq, base); 2148 2140 } 2149 2141 2150 - static int __devexit musb_remove(struct platform_device *pdev) 2142 + static int __exit musb_remove(struct platform_device *pdev) 2151 2143 { 2152 2144 struct musb *musb = dev_to_musb(&pdev->dev); 2153 2145 void __iomem *ctrl_base = musb->ctrl_base; ··· 2239 2231 .owner = THIS_MODULE, 2240 2232 .pm = MUSB_DEV_PM_OPS, 2241 2233 }, 2242 - .remove = __devexit_p(musb_remove), 2234 + .remove = __exit_p(musb_remove), 2243 2235 .shutdown = musb_shutdown, 2244 2236 }; 2245 2237
+8 -5
drivers/usb/musb/musb_gadget.c
··· 309 309 size_t request_size; 310 310 311 311 /* setup DMA, then program endpoint CSR */ 312 - request_size = min(request->length, 312 + request_size = min_t(size_t, request->length, 313 313 musb_ep->dma->max_len); 314 314 if (request_size < musb_ep->packet_sz) 315 315 musb_ep->dma->desired_mode = 0; ··· 319 319 use_dma = use_dma && c->channel_program( 320 320 musb_ep->dma, musb_ep->packet_sz, 321 321 musb_ep->dma->desired_mode, 322 - request->dma, request_size); 322 + request->dma + request->actual, request_size); 323 323 if (use_dma) { 324 324 if (musb_ep->dma->desired_mode == 0) { 325 325 /* ··· 515 515 if (csr & MUSB_TXCSR_FIFONOTEMPTY) 516 516 return; 517 517 518 - if (!musb_ep->desc) { 518 + request = musb_ep->desc ? next_request(musb_ep) : NULL; 519 + if (!request) { 519 520 DBG(4, "%s idle now\n", 520 521 musb_ep->end_point.name); 521 522 return; 522 - } else 523 - request = next_request(musb_ep); 523 + } 524 524 } 525 525 526 526 txstate(musb, to_musb_request(request)); ··· 746 746 musb_ep_select(mbase, epnum); 747 747 748 748 request = next_request(musb_ep); 749 + if (!request) 750 + return; 749 751 750 752 csr = musb_readw(epio, MUSB_RXCSR); 751 753 dma = is_dma_capable() ? musb_ep->dma : NULL; ··· 1733 1731 spin_lock_irqsave(&musb->lock, flags); 1734 1732 1735 1733 otg_set_peripheral(musb->xceiv, &musb->g); 1734 + musb->xceiv->state = OTG_STATE_B_IDLE; 1736 1735 musb->is_active = 1; 1737 1736 1738 1737 /* FIXME this ignores the softconnect flag. Drivers are
+10 -4
drivers/usb/musb/musb_gadget_ep0.c
··· 664 664 musb->ep0_state = MUSB_EP0_STAGE_STATUSIN; 665 665 break; 666 666 default: 667 - ERR("SetupEnd came in a wrong ep0stage %s", 667 + ERR("SetupEnd came in a wrong ep0stage %s\n", 668 668 decode_ep0stage(musb->ep0_state)); 669 669 } 670 670 csr = musb_readw(regs, MUSB_CSR0); ··· 787 787 handled = service_zero_data_request( 788 788 musb, &setup); 789 789 790 + /* 791 + * We're expecting no data in any case, so 792 + * always set the DATAEND bit -- doing this 793 + * here helps avoid SetupEnd interrupt coming 794 + * in the idle stage when we're stalling... 795 + */ 796 + musb->ackpend |= MUSB_CSR0_P_DATAEND; 797 + 790 798 /* status stage might be immediate */ 791 - if (handled > 0) { 792 - musb->ackpend |= MUSB_CSR0_P_DATAEND; 799 + if (handled > 0) 793 800 musb->ep0_state = 794 801 MUSB_EP0_STAGE_STATUSIN; 795 - } 796 802 break; 797 803 798 804 /* sequence #1 (IN to host), includes GET_STATUS
+2 -2
drivers/usb/otg/isp1301_omap.c
··· 843 843 844 844 static struct platform_device *otg_dev; 845 845 846 - static int otg_init(struct isp1301 *isp) 846 + static int isp1301_otg_init(struct isp1301 *isp) 847 847 { 848 848 u32 l; 849 849 ··· 1275 1275 static int isp1301_otg_enable(struct isp1301 *isp) 1276 1276 { 1277 1277 power_up(isp); 1278 - otg_init(isp); 1278 + isp1301_otg_init(isp); 1279 1279 1280 1280 /* NOTE: since we don't change this, this provides 1281 1281 * a few more interrupts than are strictly needed.
+1
drivers/usb/serial/ftdi_sio.c
··· 44 44 #include <linux/serial.h> 45 45 #include <linux/usb/serial.h> 46 46 #include "ftdi_sio.h" 47 + #include "ftdi_sio_ids.h" 47 48 48 49 /* 49 50 * Version Information
+4 -955
drivers/usb/serial/ftdi_sio.h
··· 1 1 /* 2 - * Definitions for the FTDI USB Single Port Serial Converter - 2 + * Driver definitions for the FTDI USB Single Port Serial Converter - 3 3 * known as FTDI_SIO (Serial Input/Output application of the chipset) 4 + * 5 + * For USB vendor/product IDs (VID/PID), please see ftdi_sio_ids.h 6 + * 4 7 * 5 8 * The example I have is known as the USC-1000 which is available from 6 9 * http://www.dse.co.nz - cat no XH4214 It looks similar to this: ··· 20 17 * Bill Ryder - bryder@sgi.com formerly of Silicon Graphics, Inc.- wrote the 21 18 * FTDI_SIO implementation. 22 19 * 23 - * Philipp Gühring - pg@futureware.at - added the Device ID of the USB relais 24 - * from Rudolf Gugler 25 - * 26 20 */ 27 - 28 - #define FTDI_VID 0x0403 /* Vendor Id */ 29 - #define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ 30 - #define FTDI_8U232AM_PID 0x6001 /* Similar device to SIO above */ 31 - #define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */ 32 - #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ 33 - #define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ 34 - #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ 35 - #define FTDI_RELAIS_PID 0xFA10 /* Relais device from Rudolf Gugler */ 36 - #define FTDI_NF_RIC_VID 0x0DCD /* Vendor Id */ 37 - #define FTDI_NF_RIC_PID 0x0001 /* Product Id */ 38 - #define FTDI_USBX_707_PID 0xF857 /* ADSTech IR Blaster USBX-707 */ 39 - 40 - /* Larsen and Brusgaard AltiTrack/USBtrack */ 41 - #define LARSENBRUSGAARD_VID 0x0FD8 42 - #define LB_ALTITRACK_PID 0x0001 43 - 44 - /* www.canusb.com Lawicel CANUSB device */ 45 - #define FTDI_CANUSB_PID 0xFFA8 /* Product Id */ 46 - 47 - /* AlphaMicro Components AMC-232USB01 device */ 48 - #define FTDI_AMC232_PID 0xFF00 /* Product Id */ 49 - 50 - /* www.candapter.com Ewert Energy Systems CANdapter device */ 51 - #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ 52 - 53 - /* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */ 54 - /* the VID is the standard ftdi vid (FTDI_VID) */ 55 - #define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */ 56 - #define FTDI_SCS_DEVICE_1_PID 0xD011 /* SCS Tracker / DSP TNC */ 57 - #define FTDI_SCS_DEVICE_2_PID 0xD012 58 - #define FTDI_SCS_DEVICE_3_PID 0xD013 59 - #define FTDI_SCS_DEVICE_4_PID 0xD014 60 - #define FTDI_SCS_DEVICE_5_PID 0xD015 61 - #define FTDI_SCS_DEVICE_6_PID 0xD016 62 - #define FTDI_SCS_DEVICE_7_PID 0xD017 63 - 64 - /* ACT Solutions HomePro ZWave interface (http://www.act-solutions.com/HomePro.htm) */ 65 - #define FTDI_ACTZWAVE_PID 0xF2D0 66 - 67 - 68 - /* www.starting-point-systems.com µChameleon device */ 69 - #define FTDI_MICRO_CHAMELEON_PID 0xCAA0 /* Product Id */ 70 - 71 - /* www.irtrans.de device */ 72 - #define FTDI_IRTRANS_PID 0xFC60 /* Product Id */ 73 - 74 - 75 - /* www.thoughttechnology.com/ TT-USB provide with procomp use ftdi_sio */ 76 - #define FTDI_TTUSB_PID 0xFF20 /* Product Id */ 77 - 78 - /* iPlus device */ 79 - #define FTDI_IPLUS_PID 0xD070 /* Product Id */ 80 - #define FTDI_IPLUS2_PID 0xD071 /* Product Id */ 81 - 82 - /* DMX4ALL DMX Interfaces */ 83 - #define FTDI_DMX4ALL 0xC850 84 - 85 - /* OpenDCC (www.opendcc.de) product id */ 86 - #define FTDI_OPENDCC_PID 0xBFD8 87 - #define FTDI_OPENDCC_SNIFFER_PID 0xBFD9 88 - #define FTDI_OPENDCC_THROTTLE_PID 0xBFDA 89 - #define FTDI_OPENDCC_GATEWAY_PID 0xBFDB 90 - 91 - /* Sprog II (Andrew Crosland's SprogII DCC interface) */ 92 - #define FTDI_SPROG_II 0xF0C8 93 - 94 - /* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */ 95 - /* they use the ftdi chipset for the USB interface and the vendor id is the same */ 96 - #define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ 97 - #define FTDI_XF_634_PID 0xFC09 /* 634: 20x4 Character Display */ 98 - #define FTDI_XF_547_PID 0xFC0A /* 547: Two line Display */ 99 - #define FTDI_XF_633_PID 0xFC0B /* 633: 16x2 Character Display with Keys */ 100 - #define FTDI_XF_631_PID 0xFC0C /* 631: 20x2 Character Display */ 101 - #define FTDI_XF_635_PID 0xFC0D /* 635: 20x4 Character Display */ 102 - #define FTDI_XF_640_PID 0xFC0E /* 640: Two line Display */ 103 - #define FTDI_XF_642_PID 0xFC0F /* 642: Two line Display */ 104 - 105 - /* Video Networks Limited / Homechoice in the UK use an ftdi-based device for their 1Mb */ 106 - /* broadband internet service. The following PID is exhibited by the usb device supplied */ 107 - /* (the VID is the standard ftdi vid (FTDI_VID) */ 108 - #define FTDI_VNHCPCUSB_D_PID 0xfe38 /* Product Id */ 109 - 110 - /* 111 - * PCDJ use ftdi based dj-controllers. The following PID is for their DAC-2 device 112 - * http://www.pcdjhardware.com/DAC2.asp (PID sent by Wouter Paesen) 113 - * (the VID is the standard ftdi vid (FTDI_VID) */ 114 - #define FTDI_PCDJ_DAC2_PID 0xFA88 115 - 116 - /* 117 - * The following are the values for the Matrix Orbital LCD displays, 118 - * which are the FT232BM ( similar to the 8U232AM ) 119 - */ 120 - #define FTDI_MTXORB_0_PID 0xFA00 /* Matrix Orbital Product Id */ 121 - #define FTDI_MTXORB_1_PID 0xFA01 /* Matrix Orbital Product Id */ 122 - #define FTDI_MTXORB_2_PID 0xFA02 /* Matrix Orbital Product Id */ 123 - #define FTDI_MTXORB_3_PID 0xFA03 /* Matrix Orbital Product Id */ 124 - #define FTDI_MTXORB_4_PID 0xFA04 /* Matrix Orbital Product Id */ 125 - #define FTDI_MTXORB_5_PID 0xFA05 /* Matrix Orbital Product Id */ 126 - #define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */ 127 - 128 - /* OOCDlink by Joern Kaipf <joernk@web.de> 129 - * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ 130 - #define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ 131 - 132 - /* 133 - * The following are the values for the Matrix Orbital FTDI Range 134 - * Anything in this range will use an FT232RL. 135 - */ 136 - #define MTXORB_VID 0x1B3D 137 - #define MTXORB_FTDI_RANGE_0100_PID 0x0100 138 - #define MTXORB_FTDI_RANGE_0101_PID 0x0101 139 - #define MTXORB_FTDI_RANGE_0102_PID 0x0102 140 - #define MTXORB_FTDI_RANGE_0103_PID 0x0103 141 - #define MTXORB_FTDI_RANGE_0104_PID 0x0104 142 - #define MTXORB_FTDI_RANGE_0105_PID 0x0105 143 - #define MTXORB_FTDI_RANGE_0106_PID 0x0106 144 - #define MTXORB_FTDI_RANGE_0107_PID 0x0107 145 - #define MTXORB_FTDI_RANGE_0108_PID 0x0108 146 - #define MTXORB_FTDI_RANGE_0109_PID 0x0109 147 - #define MTXORB_FTDI_RANGE_010A_PID 0x010A 148 - #define MTXORB_FTDI_RANGE_010B_PID 0x010B 149 - #define MTXORB_FTDI_RANGE_010C_PID 0x010C 150 - #define MTXORB_FTDI_RANGE_010D_PID 0x010D 151 - #define MTXORB_FTDI_RANGE_010E_PID 0x010E 152 - #define MTXORB_FTDI_RANGE_010F_PID 0x010F 153 - #define MTXORB_FTDI_RANGE_0110_PID 0x0110 154 - #define MTXORB_FTDI_RANGE_0111_PID 0x0111 155 - #define MTXORB_FTDI_RANGE_0112_PID 0x0112 156 - #define MTXORB_FTDI_RANGE_0113_PID 0x0113 157 - #define MTXORB_FTDI_RANGE_0114_PID 0x0114 158 - #define MTXORB_FTDI_RANGE_0115_PID 0x0115 159 - #define MTXORB_FTDI_RANGE_0116_PID 0x0116 160 - #define MTXORB_FTDI_RANGE_0117_PID 0x0117 161 - #define MTXORB_FTDI_RANGE_0118_PID 0x0118 162 - #define MTXORB_FTDI_RANGE_0119_PID 0x0119 163 - #define MTXORB_FTDI_RANGE_011A_PID 0x011A 164 - #define MTXORB_FTDI_RANGE_011B_PID 0x011B 165 - #define MTXORB_FTDI_RANGE_011C_PID 0x011C 166 - #define MTXORB_FTDI_RANGE_011D_PID 0x011D 167 - #define MTXORB_FTDI_RANGE_011E_PID 0x011E 168 - #define MTXORB_FTDI_RANGE_011F_PID 0x011F 169 - #define MTXORB_FTDI_RANGE_0120_PID 0x0120 170 - #define MTXORB_FTDI_RANGE_0121_PID 0x0121 171 - #define MTXORB_FTDI_RANGE_0122_PID 0x0122 172 - #define MTXORB_FTDI_RANGE_0123_PID 0x0123 173 - #define MTXORB_FTDI_RANGE_0124_PID 0x0124 174 - #define MTXORB_FTDI_RANGE_0125_PID 0x0125 175 - #define MTXORB_FTDI_RANGE_0126_PID 0x0126 176 - #define MTXORB_FTDI_RANGE_0127_PID 0x0127 177 - #define MTXORB_FTDI_RANGE_0128_PID 0x0128 178 - #define MTXORB_FTDI_RANGE_0129_PID 0x0129 179 - #define MTXORB_FTDI_RANGE_012A_PID 0x012A 180 - #define MTXORB_FTDI_RANGE_012B_PID 0x012B 181 - #define MTXORB_FTDI_RANGE_012C_PID 0x012C 182 - #define MTXORB_FTDI_RANGE_012D_PID 0x012D 183 - #define MTXORB_FTDI_RANGE_012E_PID 0x012E 184 - #define MTXORB_FTDI_RANGE_012F_PID 0x012F 185 - #define MTXORB_FTDI_RANGE_0130_PID 0x0130 186 - #define MTXORB_FTDI_RANGE_0131_PID 0x0131 187 - #define MTXORB_FTDI_RANGE_0132_PID 0x0132 188 - #define MTXORB_FTDI_RANGE_0133_PID 0x0133 189 - #define MTXORB_FTDI_RANGE_0134_PID 0x0134 190 - #define MTXORB_FTDI_RANGE_0135_PID 0x0135 191 - #define MTXORB_FTDI_RANGE_0136_PID 0x0136 192 - #define MTXORB_FTDI_RANGE_0137_PID 0x0137 193 - #define MTXORB_FTDI_RANGE_0138_PID 0x0138 194 - #define MTXORB_FTDI_RANGE_0139_PID 0x0139 195 - #define MTXORB_FTDI_RANGE_013A_PID 0x013A 196 - #define MTXORB_FTDI_RANGE_013B_PID 0x013B 197 - #define MTXORB_FTDI_RANGE_013C_PID 0x013C 198 - #define MTXORB_FTDI_RANGE_013D_PID 0x013D 199 - #define MTXORB_FTDI_RANGE_013E_PID 0x013E 200 - #define MTXORB_FTDI_RANGE_013F_PID 0x013F 201 - #define MTXORB_FTDI_RANGE_0140_PID 0x0140 202 - #define MTXORB_FTDI_RANGE_0141_PID 0x0141 203 - #define MTXORB_FTDI_RANGE_0142_PID 0x0142 204 - #define MTXORB_FTDI_RANGE_0143_PID 0x0143 205 - #define MTXORB_FTDI_RANGE_0144_PID 0x0144 206 - #define MTXORB_FTDI_RANGE_0145_PID 0x0145 207 - #define MTXORB_FTDI_RANGE_0146_PID 0x0146 208 - #define MTXORB_FTDI_RANGE_0147_PID 0x0147 209 - #define MTXORB_FTDI_RANGE_0148_PID 0x0148 210 - #define MTXORB_FTDI_RANGE_0149_PID 0x0149 211 - #define MTXORB_FTDI_RANGE_014A_PID 0x014A 212 - #define MTXORB_FTDI_RANGE_014B_PID 0x014B 213 - #define MTXORB_FTDI_RANGE_014C_PID 0x014C 214 - #define MTXORB_FTDI_RANGE_014D_PID 0x014D 215 - #define MTXORB_FTDI_RANGE_014E_PID 0x014E 216 - #define MTXORB_FTDI_RANGE_014F_PID 0x014F 217 - #define MTXORB_FTDI_RANGE_0150_PID 0x0150 218 - #define MTXORB_FTDI_RANGE_0151_PID 0x0151 219 - #define MTXORB_FTDI_RANGE_0152_PID 0x0152 220 - #define MTXORB_FTDI_RANGE_0153_PID 0x0153 221 - #define MTXORB_FTDI_RANGE_0154_PID 0x0154 222 - #define MTXORB_FTDI_RANGE_0155_PID 0x0155 223 - #define MTXORB_FTDI_RANGE_0156_PID 0x0156 224 - #define MTXORB_FTDI_RANGE_0157_PID 0x0157 225 - #define MTXORB_FTDI_RANGE_0158_PID 0x0158 226 - #define MTXORB_FTDI_RANGE_0159_PID 0x0159 227 - #define MTXORB_FTDI_RANGE_015A_PID 0x015A 228 - #define MTXORB_FTDI_RANGE_015B_PID 0x015B 229 - #define MTXORB_FTDI_RANGE_015C_PID 0x015C 230 - #define MTXORB_FTDI_RANGE_015D_PID 0x015D 231 - #define MTXORB_FTDI_RANGE_015E_PID 0x015E 232 - #define MTXORB_FTDI_RANGE_015F_PID 0x015F 233 - #define MTXORB_FTDI_RANGE_0160_PID 0x0160 234 - #define MTXORB_FTDI_RANGE_0161_PID 0x0161 235 - #define MTXORB_FTDI_RANGE_0162_PID 0x0162 236 - #define MTXORB_FTDI_RANGE_0163_PID 0x0163 237 - #define MTXORB_FTDI_RANGE_0164_PID 0x0164 238 - #define MTXORB_FTDI_RANGE_0165_PID 0x0165 239 - #define MTXORB_FTDI_RANGE_0166_PID 0x0166 240 - #define MTXORB_FTDI_RANGE_0167_PID 0x0167 241 - #define MTXORB_FTDI_RANGE_0168_PID 0x0168 242 - #define MTXORB_FTDI_RANGE_0169_PID 0x0169 243 - #define MTXORB_FTDI_RANGE_016A_PID 0x016A 244 - #define MTXORB_FTDI_RANGE_016B_PID 0x016B 245 - #define MTXORB_FTDI_RANGE_016C_PID 0x016C 246 - #define MTXORB_FTDI_RANGE_016D_PID 0x016D 247 - #define MTXORB_FTDI_RANGE_016E_PID 0x016E 248 - #define MTXORB_FTDI_RANGE_016F_PID 0x016F 249 - #define MTXORB_FTDI_RANGE_0170_PID 0x0170 250 - #define MTXORB_FTDI_RANGE_0171_PID 0x0171 251 - #define MTXORB_FTDI_RANGE_0172_PID 0x0172 252 - #define MTXORB_FTDI_RANGE_0173_PID 0x0173 253 - #define MTXORB_FTDI_RANGE_0174_PID 0x0174 254 - #define MTXORB_FTDI_RANGE_0175_PID 0x0175 255 - #define MTXORB_FTDI_RANGE_0176_PID 0x0176 256 - #define MTXORB_FTDI_RANGE_0177_PID 0x0177 257 - #define MTXORB_FTDI_RANGE_0178_PID 0x0178 258 - #define MTXORB_FTDI_RANGE_0179_PID 0x0179 259 - #define MTXORB_FTDI_RANGE_017A_PID 0x017A 260 - #define MTXORB_FTDI_RANGE_017B_PID 0x017B 261 - #define MTXORB_FTDI_RANGE_017C_PID 0x017C 262 - #define MTXORB_FTDI_RANGE_017D_PID 0x017D 263 - #define MTXORB_FTDI_RANGE_017E_PID 0x017E 264 - #define MTXORB_FTDI_RANGE_017F_PID 0x017F 265 - #define MTXORB_FTDI_RANGE_0180_PID 0x0180 266 - #define MTXORB_FTDI_RANGE_0181_PID 0x0181 267 - #define MTXORB_FTDI_RANGE_0182_PID 0x0182 268 - #define MTXORB_FTDI_RANGE_0183_PID 0x0183 269 - #define MTXORB_FTDI_RANGE_0184_PID 0x0184 270 - #define MTXORB_FTDI_RANGE_0185_PID 0x0185 271 - #define MTXORB_FTDI_RANGE_0186_PID 0x0186 272 - #define MTXORB_FTDI_RANGE_0187_PID 0x0187 273 - #define MTXORB_FTDI_RANGE_0188_PID 0x0188 274 - #define MTXORB_FTDI_RANGE_0189_PID 0x0189 275 - #define MTXORB_FTDI_RANGE_018A_PID 0x018A 276 - #define MTXORB_FTDI_RANGE_018B_PID 0x018B 277 - #define MTXORB_FTDI_RANGE_018C_PID 0x018C 278 - #define MTXORB_FTDI_RANGE_018D_PID 0x018D 279 - #define MTXORB_FTDI_RANGE_018E_PID 0x018E 280 - #define MTXORB_FTDI_RANGE_018F_PID 0x018F 281 - #define MTXORB_FTDI_RANGE_0190_PID 0x0190 282 - #define MTXORB_FTDI_RANGE_0191_PID 0x0191 283 - #define MTXORB_FTDI_RANGE_0192_PID 0x0192 284 - #define MTXORB_FTDI_RANGE_0193_PID 0x0193 285 - #define MTXORB_FTDI_RANGE_0194_PID 0x0194 286 - #define MTXORB_FTDI_RANGE_0195_PID 0x0195 287 - #define MTXORB_FTDI_RANGE_0196_PID 0x0196 288 - #define MTXORB_FTDI_RANGE_0197_PID 0x0197 289 - #define MTXORB_FTDI_RANGE_0198_PID 0x0198 290 - #define MTXORB_FTDI_RANGE_0199_PID 0x0199 291 - #define MTXORB_FTDI_RANGE_019A_PID 0x019A 292 - #define MTXORB_FTDI_RANGE_019B_PID 0x019B 293 - #define MTXORB_FTDI_RANGE_019C_PID 0x019C 294 - #define MTXORB_FTDI_RANGE_019D_PID 0x019D 295 - #define MTXORB_FTDI_RANGE_019E_PID 0x019E 296 - #define MTXORB_FTDI_RANGE_019F_PID 0x019F 297 - #define MTXORB_FTDI_RANGE_01A0_PID 0x01A0 298 - #define MTXORB_FTDI_RANGE_01A1_PID 0x01A1 299 - #define MTXORB_FTDI_RANGE_01A2_PID 0x01A2 300 - #define MTXORB_FTDI_RANGE_01A3_PID 0x01A3 301 - #define MTXORB_FTDI_RANGE_01A4_PID 0x01A4 302 - #define MTXORB_FTDI_RANGE_01A5_PID 0x01A5 303 - #define MTXORB_FTDI_RANGE_01A6_PID 0x01A6 304 - #define MTXORB_FTDI_RANGE_01A7_PID 0x01A7 305 - #define MTXORB_FTDI_RANGE_01A8_PID 0x01A8 306 - #define MTXORB_FTDI_RANGE_01A9_PID 0x01A9 307 - #define MTXORB_FTDI_RANGE_01AA_PID 0x01AA 308 - #define MTXORB_FTDI_RANGE_01AB_PID 0x01AB 309 - #define MTXORB_FTDI_RANGE_01AC_PID 0x01AC 310 - #define MTXORB_FTDI_RANGE_01AD_PID 0x01AD 311 - #define MTXORB_FTDI_RANGE_01AE_PID 0x01AE 312 - #define MTXORB_FTDI_RANGE_01AF_PID 0x01AF 313 - #define MTXORB_FTDI_RANGE_01B0_PID 0x01B0 314 - #define MTXORB_FTDI_RANGE_01B1_PID 0x01B1 315 - #define MTXORB_FTDI_RANGE_01B2_PID 0x01B2 316 - #define MTXORB_FTDI_RANGE_01B3_PID 0x01B3 317 - #define MTXORB_FTDI_RANGE_01B4_PID 0x01B4 318 - #define MTXORB_FTDI_RANGE_01B5_PID 0x01B5 319 - #define MTXORB_FTDI_RANGE_01B6_PID 0x01B6 320 - #define MTXORB_FTDI_RANGE_01B7_PID 0x01B7 321 - #define MTXORB_FTDI_RANGE_01B8_PID 0x01B8 322 - #define MTXORB_FTDI_RANGE_01B9_PID 0x01B9 323 - #define MTXORB_FTDI_RANGE_01BA_PID 0x01BA 324 - #define MTXORB_FTDI_RANGE_01BB_PID 0x01BB 325 - #define MTXORB_FTDI_RANGE_01BC_PID 0x01BC 326 - #define MTXORB_FTDI_RANGE_01BD_PID 0x01BD 327 - #define MTXORB_FTDI_RANGE_01BE_PID 0x01BE 328 - #define MTXORB_FTDI_RANGE_01BF_PID 0x01BF 329 - #define MTXORB_FTDI_RANGE_01C0_PID 0x01C0 330 - #define MTXORB_FTDI_RANGE_01C1_PID 0x01C1 331 - #define MTXORB_FTDI_RANGE_01C2_PID 0x01C2 332 - #define MTXORB_FTDI_RANGE_01C3_PID 0x01C3 333 - #define MTXORB_FTDI_RANGE_01C4_PID 0x01C4 334 - #define MTXORB_FTDI_RANGE_01C5_PID 0x01C5 335 - #define MTXORB_FTDI_RANGE_01C6_PID 0x01C6 336 - #define MTXORB_FTDI_RANGE_01C7_PID 0x01C7 337 - #define MTXORB_FTDI_RANGE_01C8_PID 0x01C8 338 - #define MTXORB_FTDI_RANGE_01C9_PID 0x01C9 339 - #define MTXORB_FTDI_RANGE_01CA_PID 0x01CA 340 - #define MTXORB_FTDI_RANGE_01CB_PID 0x01CB 341 - #define MTXORB_FTDI_RANGE_01CC_PID 0x01CC 342 - #define MTXORB_FTDI_RANGE_01CD_PID 0x01CD 343 - #define MTXORB_FTDI_RANGE_01CE_PID 0x01CE 344 - #define MTXORB_FTDI_RANGE_01CF_PID 0x01CF 345 - #define MTXORB_FTDI_RANGE_01D0_PID 0x01D0 346 - #define MTXORB_FTDI_RANGE_01D1_PID 0x01D1 347 - #define MTXORB_FTDI_RANGE_01D2_PID 0x01D2 348 - #define MTXORB_FTDI_RANGE_01D3_PID 0x01D3 349 - #define MTXORB_FTDI_RANGE_01D4_PID 0x01D4 350 - #define MTXORB_FTDI_RANGE_01D5_PID 0x01D5 351 - #define MTXORB_FTDI_RANGE_01D6_PID 0x01D6 352 - #define MTXORB_FTDI_RANGE_01D7_PID 0x01D7 353 - #define MTXORB_FTDI_RANGE_01D8_PID 0x01D8 354 - #define MTXORB_FTDI_RANGE_01D9_PID 0x01D9 355 - #define MTXORB_FTDI_RANGE_01DA_PID 0x01DA 356 - #define MTXORB_FTDI_RANGE_01DB_PID 0x01DB 357 - #define MTXORB_FTDI_RANGE_01DC_PID 0x01DC 358 - #define MTXORB_FTDI_RANGE_01DD_PID 0x01DD 359 - #define MTXORB_FTDI_RANGE_01DE_PID 0x01DE 360 - #define MTXORB_FTDI_RANGE_01DF_PID 0x01DF 361 - #define MTXORB_FTDI_RANGE_01E0_PID 0x01E0 362 - #define MTXORB_FTDI_RANGE_01E1_PID 0x01E1 363 - #define MTXORB_FTDI_RANGE_01E2_PID 0x01E2 364 - #define MTXORB_FTDI_RANGE_01E3_PID 0x01E3 365 - #define MTXORB_FTDI_RANGE_01E4_PID 0x01E4 366 - #define MTXORB_FTDI_RANGE_01E5_PID 0x01E5 367 - #define MTXORB_FTDI_RANGE_01E6_PID 0x01E6 368 - #define MTXORB_FTDI_RANGE_01E7_PID 0x01E7 369 - #define MTXORB_FTDI_RANGE_01E8_PID 0x01E8 370 - #define MTXORB_FTDI_RANGE_01E9_PID 0x01E9 371 - #define MTXORB_FTDI_RANGE_01EA_PID 0x01EA 372 - #define MTXORB_FTDI_RANGE_01EB_PID 0x01EB 373 - #define MTXORB_FTDI_RANGE_01EC_PID 0x01EC 374 - #define MTXORB_FTDI_RANGE_01ED_PID 0x01ED 375 - #define MTXORB_FTDI_RANGE_01EE_PID 0x01EE 376 - #define MTXORB_FTDI_RANGE_01EF_PID 0x01EF 377 - #define MTXORB_FTDI_RANGE_01F0_PID 0x01F0 378 - #define MTXORB_FTDI_RANGE_01F1_PID 0x01F1 379 - #define MTXORB_FTDI_RANGE_01F2_PID 0x01F2 380 - #define MTXORB_FTDI_RANGE_01F3_PID 0x01F3 381 - #define MTXORB_FTDI_RANGE_01F4_PID 0x01F4 382 - #define MTXORB_FTDI_RANGE_01F5_PID 0x01F5 383 - #define MTXORB_FTDI_RANGE_01F6_PID 0x01F6 384 - #define MTXORB_FTDI_RANGE_01F7_PID 0x01F7 385 - #define MTXORB_FTDI_RANGE_01F8_PID 0x01F8 386 - #define MTXORB_FTDI_RANGE_01F9_PID 0x01F9 387 - #define MTXORB_FTDI_RANGE_01FA_PID 0x01FA 388 - #define MTXORB_FTDI_RANGE_01FB_PID 0x01FB 389 - #define MTXORB_FTDI_RANGE_01FC_PID 0x01FC 390 - #define MTXORB_FTDI_RANGE_01FD_PID 0x01FD 391 - #define MTXORB_FTDI_RANGE_01FE_PID 0x01FE 392 - #define MTXORB_FTDI_RANGE_01FF_PID 0x01FF 393 - 394 - 395 - 396 - /* Interbiometrics USB I/O Board */ 397 - /* Developed for Interbiometrics by Rudolf Gugler */ 398 - #define INTERBIOMETRICS_VID 0x1209 399 - #define INTERBIOMETRICS_IOBOARD_PID 0x1002 400 - #define INTERBIOMETRICS_MINI_IOBOARD_PID 0x1006 401 - 402 - /* 403 - * The following are the values for the Perle Systems 404 - * UltraPort USB serial converters 405 - */ 406 - #define FTDI_PERLE_ULTRAPORT_PID 0xF0C0 /* Perle UltraPort Product Id */ 407 - 408 - /* 409 - * The following are the values for the Sealevel SeaLINK+ adapters. 410 - * (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and 411 - * removed some PIDs that don't seem to match any existing products.) 412 - */ 413 - #define SEALEVEL_VID 0x0c52 /* Sealevel Vendor ID */ 414 - #define SEALEVEL_2101_PID 0x2101 /* SeaLINK+232 (2101/2105) */ 415 - #define SEALEVEL_2102_PID 0x2102 /* SeaLINK+485 (2102) */ 416 - #define SEALEVEL_2103_PID 0x2103 /* SeaLINK+232I (2103) */ 417 - #define SEALEVEL_2104_PID 0x2104 /* SeaLINK+485I (2104) */ 418 - #define SEALEVEL_2106_PID 0x9020 /* SeaLINK+422 (2106) */ 419 - #define SEALEVEL_2201_1_PID 0x2211 /* SeaPORT+2/232 (2201) Port 1 */ 420 - #define SEALEVEL_2201_2_PID 0x2221 /* SeaPORT+2/232 (2201) Port 2 */ 421 - #define SEALEVEL_2202_1_PID 0x2212 /* SeaPORT+2/485 (2202) Port 1 */ 422 - #define SEALEVEL_2202_2_PID 0x2222 /* SeaPORT+2/485 (2202) Port 2 */ 423 - #define SEALEVEL_2203_1_PID 0x2213 /* SeaPORT+2 (2203) Port 1 */ 424 - #define SEALEVEL_2203_2_PID 0x2223 /* SeaPORT+2 (2203) Port 2 */ 425 - #define SEALEVEL_2401_1_PID 0x2411 /* SeaPORT+4/232 (2401) Port 1 */ 426 - #define SEALEVEL_2401_2_PID 0x2421 /* SeaPORT+4/232 (2401) Port 2 */ 427 - #define SEALEVEL_2401_3_PID 0x2431 /* SeaPORT+4/232 (2401) Port 3 */ 428 - #define SEALEVEL_2401_4_PID 0x2441 /* SeaPORT+4/232 (2401) Port 4 */ 429 - #define SEALEVEL_2402_1_PID 0x2412 /* SeaPORT+4/485 (2402) Port 1 */ 430 - #define SEALEVEL_2402_2_PID 0x2422 /* SeaPORT+4/485 (2402) Port 2 */ 431 - #define SEALEVEL_2402_3_PID 0x2432 /* SeaPORT+4/485 (2402) Port 3 */ 432 - #define SEALEVEL_2402_4_PID 0x2442 /* SeaPORT+4/485 (2402) Port 4 */ 433 - #define SEALEVEL_2403_1_PID 0x2413 /* SeaPORT+4 (2403) Port 1 */ 434 - #define SEALEVEL_2403_2_PID 0x2423 /* SeaPORT+4 (2403) Port 2 */ 435 - #define SEALEVEL_2403_3_PID 0x2433 /* SeaPORT+4 (2403) Port 3 */ 436 - #define SEALEVEL_2403_4_PID 0x2443 /* SeaPORT+4 (2403) Port 4 */ 437 - #define SEALEVEL_2801_1_PID 0X2811 /* SeaLINK+8/232 (2801) Port 1 */ 438 - #define SEALEVEL_2801_2_PID 0X2821 /* SeaLINK+8/232 (2801) Port 2 */ 439 - #define SEALEVEL_2801_3_PID 0X2831 /* SeaLINK+8/232 (2801) Port 3 */ 440 - #define SEALEVEL_2801_4_PID 0X2841 /* SeaLINK+8/232 (2801) Port 4 */ 441 - #define SEALEVEL_2801_5_PID 0X2851 /* SeaLINK+8/232 (2801) Port 5 */ 442 - #define SEALEVEL_2801_6_PID 0X2861 /* SeaLINK+8/232 (2801) Port 6 */ 443 - #define SEALEVEL_2801_7_PID 0X2871 /* SeaLINK+8/232 (2801) Port 7 */ 444 - #define SEALEVEL_2801_8_PID 0X2881 /* SeaLINK+8/232 (2801) Port 8 */ 445 - #define SEALEVEL_2802_1_PID 0X2812 /* SeaLINK+8/485 (2802) Port 1 */ 446 - #define SEALEVEL_2802_2_PID 0X2822 /* SeaLINK+8/485 (2802) Port 2 */ 447 - #define SEALEVEL_2802_3_PID 0X2832 /* SeaLINK+8/485 (2802) Port 3 */ 448 - #define SEALEVEL_2802_4_PID 0X2842 /* SeaLINK+8/485 (2802) Port 4 */ 449 - #define SEALEVEL_2802_5_PID 0X2852 /* SeaLINK+8/485 (2802) Port 5 */ 450 - #define SEALEVEL_2802_6_PID 0X2862 /* SeaLINK+8/485 (2802) Port 6 */ 451 - #define SEALEVEL_2802_7_PID 0X2872 /* SeaLINK+8/485 (2802) Port 7 */ 452 - #define SEALEVEL_2802_8_PID 0X2882 /* SeaLINK+8/485 (2802) Port 8 */ 453 - #define SEALEVEL_2803_1_PID 0X2813 /* SeaLINK+8 (2803) Port 1 */ 454 - #define SEALEVEL_2803_2_PID 0X2823 /* SeaLINK+8 (2803) Port 2 */ 455 - #define SEALEVEL_2803_3_PID 0X2833 /* SeaLINK+8 (2803) Port 3 */ 456 - #define SEALEVEL_2803_4_PID 0X2843 /* SeaLINK+8 (2803) Port 4 */ 457 - #define SEALEVEL_2803_5_PID 0X2853 /* SeaLINK+8 (2803) Port 5 */ 458 - #define SEALEVEL_2803_6_PID 0X2863 /* SeaLINK+8 (2803) Port 6 */ 459 - #define SEALEVEL_2803_7_PID 0X2873 /* SeaLINK+8 (2803) Port 7 */ 460 - #define SEALEVEL_2803_8_PID 0X2883 /* SeaLINK+8 (2803) Port 8 */ 461 - 462 - /* 463 - * The following are the values for two KOBIL chipcard terminals. 464 - */ 465 - #define KOBIL_VID 0x0d46 /* KOBIL Vendor ID */ 466 - #define KOBIL_CONV_B1_PID 0x2020 /* KOBIL Konverter for B1 */ 467 - #define KOBIL_CONV_KAAN_PID 0x2021 /* KOBIL_Konverter for KAAN */ 468 - 469 - /* 470 - * Icom ID-1 digital transceiver 471 - */ 472 - 473 - #define ICOM_ID1_VID 0x0C26 474 - #define ICOM_ID1_PID 0x0004 475 - 476 - /* 477 - * ASK.fr devices 478 - */ 479 - #define FTDI_ASK_RDR400_PID 0xC991 /* ASK RDR 400 series card reader */ 480 - 481 - /* 482 - * FTDI USB UART chips used in construction projects from the 483 - * Elektor Electronics magazine (http://elektor-electronics.co.uk) 484 - */ 485 - #define ELEKTOR_VID 0x0C7D 486 - #define ELEKTOR_FT323R_PID 0x0005 /* RFID-Reader, issue 09-2006 */ 487 - 488 - /* 489 - * DSS-20 Sync Station for Sony Ericsson P800 490 - */ 491 - #define FTDI_DSS20_PID 0xFC82 492 - 493 - /* 494 - * Home Electronics (www.home-electro.com) USB gadgets 495 - */ 496 - #define FTDI_HE_TIRA1_PID 0xFA78 /* Tira-1 IR transceiver */ 497 - 498 - /* USB-UIRT - An infrared receiver and transmitter using the 8U232AM chip */ 499 - /* http://home.earthlink.net/~jrhees/USBUIRT/index.htm */ 500 - #define FTDI_USB_UIRT_PID 0xF850 /* Product Id */ 501 - 502 - /* TNC-X USB-to-packet-radio adapter, versions prior to 3.0 (DLP module) */ 503 - 504 - #define FTDI_TNC_X_PID 0xEBE0 505 - 506 - /* 507 - * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). 508 - * All of these devices use FTDI's vendor ID (0x0403). 509 - * 510 - * The previously included PID for the UO 100 module was incorrect. 511 - * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58). 512 - * 513 - * Armin Laeuger originally sent the PID for the UM 100 module. 514 - */ 515 - #define FTDI_R2000KU_TRUE_RNG 0xFB80 /* R2000KU TRUE RNG */ 516 - #define FTDI_ELV_UR100_PID 0xFB58 /* USB-RS232-Umsetzer (UR 100) */ 517 - #define FTDI_ELV_UM100_PID 0xFB5A /* USB-Modul UM 100 */ 518 - #define FTDI_ELV_UO100_PID 0xFB5B /* USB-Modul UO 100 */ 519 - #define FTDI_ELV_ALC8500_PID 0xF06E /* ALC 8500 Expert */ 520 - /* Additional ELV PIDs that default to using the FTDI D2XX drivers on 521 - * MS Windows, rather than the FTDI Virtual Com Port drivers. 522 - * Maybe these will be easier to use with the libftdi/libusb user-space 523 - * drivers, or possibly the Comedi drivers in some cases. */ 524 - #define FTDI_ELV_CLI7000_PID 0xFB59 /* Computer-Light-Interface (CLI 7000) */ 525 - #define FTDI_ELV_PPS7330_PID 0xFB5C /* Processor-Power-Supply (PPS 7330) */ 526 - #define FTDI_ELV_TFM100_PID 0xFB5D /* Temperartur-Feuchte Messgeraet (TFM 100) */ 527 - #define FTDI_ELV_UDF77_PID 0xFB5E /* USB DCF Funkurh (UDF 77) */ 528 - #define FTDI_ELV_UIO88_PID 0xFB5F /* USB-I/O Interface (UIO 88) */ 529 - #define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */ 530 - #define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */ 531 - #define FTDI_ELV_USI2_PID 0xF06A /* USB-Schrittmotoren-Interface (USI 2) */ 532 - #define FTDI_ELV_T1100_PID 0xF06B /* Thermometer (T 1100) */ 533 - #define FTDI_ELV_PCD200_PID 0xF06C /* PC-Datenlogger (PCD 200) */ 534 - #define FTDI_ELV_ULA200_PID 0xF06D /* USB-LCD-Ansteuerung (ULA 200) */ 535 - #define FTDI_ELV_FHZ1000PC_PID 0xF06F /* FHZ 1000 PC */ 536 - #define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ 537 - #define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ 538 - #define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ 539 - #define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */ 540 - #define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */ 541 - #define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */ 542 - #define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */ 543 - #define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */ 544 - #define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */ 545 - #define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ 546 - #define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */ 547 - 548 - /* 549 - * Definitions for ID TECH (www.idt-net.com) devices 550 - */ 551 - #define IDTECH_VID 0x0ACD /* ID TECH Vendor ID */ 552 - #define IDTECH_IDT1221U_PID 0x0300 /* IDT1221U USB to RS-232 adapter */ 553 - 554 - /* 555 - * Definitions for Omnidirectional Control Technology, Inc. devices 556 - */ 557 - #define OCT_VID 0x0B39 /* OCT vendor ID */ 558 - /* Note: OCT US101 is also rebadged as Dick Smith Electronics (NZ) XH6381 */ 559 - /* Also rebadged as Dick Smith Electronics (Aus) XH6451 */ 560 - /* Also rebadged as SIIG Inc. model US2308 hardware version 1 */ 561 - #define OCT_US101_PID 0x0421 /* OCT US101 USB to RS-232 */ 562 - 563 - /* an infrared receiver for user access control with IR tags */ 564 - #define FTDI_PIEGROUP_PID 0xF208 /* Product Id */ 565 - 566 - /* 567 - * Definitions for Artemis astronomical USB based cameras 568 - * Check it at http://www.artemisccd.co.uk/ 569 - */ 570 - #define FTDI_ARTEMIS_PID 0xDF28 /* All Artemis Cameras */ 571 - 572 - /* 573 - * Definitions for ATIK Instruments astronomical USB based cameras 574 - * Check it at http://www.atik-instruments.com/ 575 - */ 576 - #define FTDI_ATIK_ATK16_PID 0xDF30 /* ATIK ATK-16 Grayscale Camera */ 577 - #define FTDI_ATIK_ATK16C_PID 0xDF32 /* ATIK ATK-16C Colour Camera */ 578 - #define FTDI_ATIK_ATK16HR_PID 0xDF31 /* ATIK ATK-16HR Grayscale Camera */ 579 - #define FTDI_ATIK_ATK16HRC_PID 0xDF33 /* ATIK ATK-16HRC Colour Camera */ 580 - #define FTDI_ATIK_ATK16IC_PID 0xDF35 /* ATIK ATK-16IC Grayscale Camera */ 581 - 582 - /* 583 - * Protego product ids 584 - */ 585 - #define PROTEGO_SPECIAL_1 0xFC70 /* special/unknown device */ 586 - #define PROTEGO_R2X0 0xFC71 /* R200-USB TRNG unit (R210, R220, and R230) */ 587 - #define PROTEGO_SPECIAL_3 0xFC72 /* special/unknown device */ 588 - #define PROTEGO_SPECIAL_4 0xFC73 /* special/unknown device */ 589 - 590 - /* 591 - * Gude Analog- und Digitalsysteme GmbH 592 - */ 593 - #define FTDI_GUDEADS_E808_PID 0xE808 594 - #define FTDI_GUDEADS_E809_PID 0xE809 595 - #define FTDI_GUDEADS_E80A_PID 0xE80A 596 - #define FTDI_GUDEADS_E80B_PID 0xE80B 597 - #define FTDI_GUDEADS_E80C_PID 0xE80C 598 - #define FTDI_GUDEADS_E80D_PID 0xE80D 599 - #define FTDI_GUDEADS_E80E_PID 0xE80E 600 - #define FTDI_GUDEADS_E80F_PID 0xE80F 601 - #define FTDI_GUDEADS_E888_PID 0xE888 /* Expert ISDN Control USB */ 602 - #define FTDI_GUDEADS_E889_PID 0xE889 /* USB RS-232 OptoBridge */ 603 - #define FTDI_GUDEADS_E88A_PID 0xE88A 604 - #define FTDI_GUDEADS_E88B_PID 0xE88B 605 - #define FTDI_GUDEADS_E88C_PID 0xE88C 606 - #define FTDI_GUDEADS_E88D_PID 0xE88D 607 - #define FTDI_GUDEADS_E88E_PID 0xE88E 608 - #define FTDI_GUDEADS_E88F_PID 0xE88F 609 - 610 - /* 611 - * Linx Technologies product ids 612 - */ 613 - #define LINX_SDMUSBQSS_PID 0xF448 /* Linx SDM-USB-QS-S */ 614 - #define LINX_MASTERDEVEL2_PID 0xF449 /* Linx Master Development 2.0 */ 615 - #define LINX_FUTURE_0_PID 0xF44A /* Linx future device */ 616 - #define LINX_FUTURE_1_PID 0xF44B /* Linx future device */ 617 - #define LINX_FUTURE_2_PID 0xF44C /* Linx future device */ 618 - 619 - /* CCS Inc. ICDU/ICDU40 product ID - the FT232BM is used in an in-circuit-debugger */ 620 - /* unit for PIC16's/PIC18's */ 621 - #define FTDI_CCSICDU20_0_PID 0xF9D0 622 - #define FTDI_CCSICDU40_1_PID 0xF9D1 623 - #define FTDI_CCSMACHX_2_PID 0xF9D2 624 - #define FTDI_CCSLOAD_N_GO_3_PID 0xF9D3 625 - #define FTDI_CCSICDU64_4_PID 0xF9D4 626 - #define FTDI_CCSPRIME8_5_PID 0xF9D5 627 - 628 - /* Inside Accesso contactless reader (http://www.insidefr.com) */ 629 - #define INSIDE_ACCESSO 0xFAD0 630 - 631 - /* 632 - * Intrepid Control Systems (http://www.intrepidcs.com/) ValueCAN and NeoVI 633 - */ 634 - #define INTREPID_VID 0x093C 635 - #define INTREPID_VALUECAN_PID 0x0601 636 - #define INTREPID_NEOVI_PID 0x0701 637 - 638 - /* 639 - * Falcom Wireless Communications GmbH 640 - */ 641 - #define FALCOM_VID 0x0F94 /* Vendor Id */ 642 - #define FALCOM_TWIST_PID 0x0001 /* Falcom Twist USB GPRS modem */ 643 - #define FALCOM_SAMBA_PID 0x0005 /* Falcom Samba USB GPRS modem */ 644 - 645 - /* 646 - * SUUNTO product ids 647 - */ 648 - #define FTDI_SUUNTO_SPORTS_PID 0xF680 /* Suunto Sports instrument */ 649 - 650 - /* 651 - * Oceanic product ids 652 - */ 653 - #define FTDI_OCEANIC_PID 0xF460 /* Oceanic dive instrument */ 654 - 655 - /* 656 - * TTi (Thurlby Thandar Instruments) 657 - */ 658 - #define TTI_VID 0x103E /* Vendor Id */ 659 - #define TTI_QL355P_PID 0x03E8 /* TTi QL355P power supply */ 660 - 661 - /* 662 - * Definitions for B&B Electronics products. 663 - */ 664 - #define BANDB_VID 0x0856 /* B&B Electronics Vendor ID */ 665 - #define BANDB_USOTL4_PID 0xAC01 /* USOTL4 Isolated RS-485 Converter */ 666 - #define BANDB_USTL4_PID 0xAC02 /* USTL4 RS-485 Converter */ 667 - #define BANDB_USO9ML2_PID 0xAC03 /* USO9ML2 Isolated RS-232 Converter */ 668 - #define BANDB_USOPTL4_PID 0xAC11 669 - #define BANDB_USPTL4_PID 0xAC12 670 - #define BANDB_USO9ML2DR_2_PID 0xAC16 671 - #define BANDB_USO9ML2DR_PID 0xAC17 672 - #define BANDB_USOPTL4DR2_PID 0xAC18 /* USOPTL4R-2 2-port Isolated RS-232 Converter */ 673 - #define BANDB_USOPTL4DR_PID 0xAC19 674 - #define BANDB_485USB9F_2W_PID 0xAC25 675 - #define BANDB_485USB9F_4W_PID 0xAC26 676 - #define BANDB_232USB9M_PID 0xAC27 677 - #define BANDB_485USBTB_2W_PID 0xAC33 678 - #define BANDB_485USBTB_4W_PID 0xAC34 679 - #define BANDB_TTL5USB9M_PID 0xAC49 680 - #define BANDB_TTL3USB9M_PID 0xAC50 681 - #define BANDB_ZZ_PROG1_USB_PID 0xBA02 682 - 683 - /* 684 - * RM Michaelides CANview USB (http://www.rmcan.com) 685 - * CAN fieldbus interface adapter, added by port GmbH www.port.de) 686 - * Ian Abbott changed the macro names for consistency. 687 - */ 688 - #define FTDI_RM_CANVIEW_PID 0xfd60 /* Product Id */ 689 - 690 - /* 691 - * EVER Eco Pro UPS (http://www.ever.com.pl/) 692 - */ 693 - 694 - #define EVER_ECO_PRO_CDS 0xe520 /* RS-232 converter */ 695 - 696 - /* 697 - * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485, 698 - * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices 699 - * and I'm not entirely sure which are used by which. 700 - */ 701 - #define FTDI_4N_GALAXY_DE_1_PID 0xF3C0 702 - #define FTDI_4N_GALAXY_DE_2_PID 0xF3C1 703 - 704 - /* 705 - * Mobility Electronics products. 706 - */ 707 - #define MOBILITY_VID 0x1342 708 - #define MOBILITY_USB_SERIAL_PID 0x0202 /* EasiDock USB 200 serial */ 709 - 710 - /* 711 - * microHAM product IDs (http://www.microham.com). 712 - * Submitted by Justin Burket (KL1RL) <zorton@jtan.com> 713 - * and Mike Studer (K6EEP) <k6eep@hamsoftware.org>. 714 - * Ian Abbott <abbotti@mev.co.uk> added a few more from the driver INF file. 715 - */ 716 - #define FTDI_MHAM_KW_PID 0xEEE8 /* USB-KW interface */ 717 - #define FTDI_MHAM_YS_PID 0xEEE9 /* USB-YS interface */ 718 - #define FTDI_MHAM_Y6_PID 0xEEEA /* USB-Y6 interface */ 719 - #define FTDI_MHAM_Y8_PID 0xEEEB /* USB-Y8 interface */ 720 - #define FTDI_MHAM_IC_PID 0xEEEC /* USB-IC interface */ 721 - #define FTDI_MHAM_DB9_PID 0xEEED /* USB-DB9 interface */ 722 - #define FTDI_MHAM_RS232_PID 0xEEEE /* USB-RS232 interface */ 723 - #define FTDI_MHAM_Y9_PID 0xEEEF /* USB-Y9 interface */ 724 - 725 - /* 726 - * Active Robots product ids. 727 - */ 728 - #define FTDI_ACTIVE_ROBOTS_PID 0xE548 /* USB comms board */ 729 - 730 - /* 731 - * Xsens Technologies BV products (http://www.xsens.com). 732 - */ 733 - #define XSENS_CONVERTER_0_PID 0xD388 734 - #define XSENS_CONVERTER_1_PID 0xD389 735 - #define XSENS_CONVERTER_2_PID 0xD38A 736 - #define XSENS_CONVERTER_3_PID 0xD38B 737 - #define XSENS_CONVERTER_4_PID 0xD38C 738 - #define XSENS_CONVERTER_5_PID 0xD38D 739 - #define XSENS_CONVERTER_6_PID 0xD38E 740 - #define XSENS_CONVERTER_7_PID 0xD38F 741 - 742 - /* 743 - * Teratronik product ids. 744 - * Submitted by O. Wölfelschneider. 745 - */ 746 - #define FTDI_TERATRONIK_VCP_PID 0xEC88 /* Teratronik device (preferring VCP driver on windows) */ 747 - #define FTDI_TERATRONIK_D2XX_PID 0xEC89 /* Teratronik device (preferring D2XX driver on windows) */ 748 - 749 - /* 750 - * Evolution Robotics products (http://www.evolution.com/). 751 - * Submitted by Shawn M. Lavelle. 752 - */ 753 - #define EVOLUTION_VID 0xDEEE /* Vendor ID */ 754 - #define EVOLUTION_ER1_PID 0x0300 /* ER1 Control Module */ 755 - #define EVO_8U232AM_PID 0x02FF /* Evolution robotics RCM2 (FT232AM)*/ 756 - #define EVO_HYBRID_PID 0x0302 /* Evolution robotics RCM4 PID (FT232BM)*/ 757 - #define EVO_RCM4_PID 0x0303 /* Evolution robotics RCM4 PID */ 758 - 759 - /* Pyramid Computer GmbH */ 760 - #define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */ 761 - 762 - /* 763 - * NDI (www.ndigital.com) product ids 764 - */ 765 - #define FTDI_NDI_HUC_PID 0xDA70 /* NDI Host USB Converter */ 766 - #define FTDI_NDI_SPECTRA_SCU_PID 0xDA71 /* NDI Spectra SCU */ 767 - #define FTDI_NDI_FUTURE_2_PID 0xDA72 /* NDI future device #2 */ 768 - #define FTDI_NDI_FUTURE_3_PID 0xDA73 /* NDI future device #3 */ 769 - #define FTDI_NDI_AURORA_SCU_PID 0xDA74 /* NDI Aurora SCU */ 770 - 771 - /* 772 - * Posiflex inc retail equipment (http://www.posiflex.com.tw) 773 - */ 774 - #define POSIFLEX_VID 0x0d3a /* Vendor ID */ 775 - #define POSIFLEX_PP7000_PID 0x0300 /* PP-7000II thermal printer */ 776 - 777 - /* 778 - * Westrex International devices submitted by Cory Lee 779 - */ 780 - #define FTDI_WESTREX_MODEL_777_PID 0xDC00 /* Model 777 */ 781 - #define FTDI_WESTREX_MODEL_8900F_PID 0xDC01 /* Model 8900F */ 782 - 783 - /* 784 - * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) 785 - */ 786 - #define FTDI_RRCIRKITS_LOCOBUFFER_PID 0xc7d0 /* LocoBuffer USB */ 787 - 788 - /* 789 - * Eclo (http://www.eclo.pt/) product IDs. 790 - * PID 0xEA90 submitted by Martin Grill. 791 - */ 792 - #define FTDI_ECLO_COM_1WIRE_PID 0xEA90 /* COM to 1-Wire USB adaptor */ 793 - 794 - /* 795 - * Papouch products (http://www.papouch.com/) 796 - * Submitted by Folkert van Heusden 797 - */ 798 - 799 - #define PAPOUCH_VID 0x5050 /* Vendor ID */ 800 - #define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ 801 - #define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ 802 - 803 - /* 804 - * ACG Identification Technologies GmbH products (http://www.acg.de/). 805 - * Submitted by anton -at- goto10 -dot- org. 806 - */ 807 - #define FTDI_ACG_HFDUAL_PID 0xDD20 /* HF Dual ISO Reader (RFID) */ 808 - 809 - /* 810 - * Yost Engineering, Inc. products (www.yostengineering.com). 811 - * PID 0xE050 submitted by Aaron Prose. 812 - */ 813 - #define FTDI_YEI_SERVOCENTER31_PID 0xE050 /* YEI ServoCenter3.1 USB */ 814 - 815 - /* 816 - * ThorLabs USB motor drivers 817 - */ 818 - #define FTDI_THORLABS_PID 0xfaf0 /* ThorLabs USB motor drivers */ 819 - 820 - /* 821 - * Testo products (http://www.testo.com/) 822 - * Submitted by Colin Leroy 823 - */ 824 - #define TESTO_VID 0x128D 825 - #define TESTO_USB_INTERFACE_PID 0x0001 826 - 827 - /* 828 - * Gamma Scout (http://gamma-scout.com/). Submitted by rsc@runtux.com. 829 - */ 830 - #define FTDI_GAMMA_SCOUT_PID 0xD678 /* Gamma Scout online */ 831 - 832 - /* 833 - * Tactrix OpenPort (ECU) devices. 834 - * OpenPort 1.3M submitted by Donour Sizemore. 835 - * OpenPort 1.3S and 1.3U submitted by Ian Abbott. 836 - */ 837 - #define FTDI_TACTRIX_OPENPORT_13M_PID 0xCC48 /* OpenPort 1.3 Mitsubishi */ 838 - #define FTDI_TACTRIX_OPENPORT_13S_PID 0xCC49 /* OpenPort 1.3 Subaru */ 839 - #define FTDI_TACTRIX_OPENPORT_13U_PID 0xCC4A /* OpenPort 1.3 Universal */ 840 - 841 - /* 842 - * Telldus Technologies 843 - */ 844 - #define TELLDUS_VID 0x1781 /* Vendor ID */ 845 - #define TELLDUS_TELLSTICK_PID 0x0C30 /* RF control dongle 433 MHz using FT232RL */ 846 - 847 - /* 848 - * IBS elektronik product ids 849 - * Submitted by Thomas Schleusener 850 - */ 851 - #define FTDI_IBS_US485_PID 0xff38 /* IBS US485 (USB<-->RS422/485 interface) */ 852 - #define FTDI_IBS_PICPRO_PID 0xff39 /* IBS PIC-Programmer */ 853 - #define FTDI_IBS_PCMCIA_PID 0xff3a /* IBS Card reader for PCMCIA SRAM-cards */ 854 - #define FTDI_IBS_PK1_PID 0xff3b /* IBS PK1 - Particel counter */ 855 - #define FTDI_IBS_RS232MON_PID 0xff3c /* IBS RS232 - Monitor */ 856 - #define FTDI_IBS_APP70_PID 0xff3d /* APP 70 (dust monitoring system) */ 857 - #define FTDI_IBS_PEDO_PID 0xff3e /* IBS PEDO-Modem (RF modem 868.35 MHz) */ 858 - #define FTDI_IBS_PROD_PID 0xff3f /* future device */ 859 - 860 - /* 861 - * MaxStream devices www.maxstream.net 862 - */ 863 - #define FTDI_MAXSTREAM_PID 0xEE18 /* Xbee PKG-U Module */ 864 - 865 - /* Olimex */ 866 - #define OLIMEX_VID 0x15BA 867 - #define OLIMEX_ARM_USB_OCD_PID 0x0003 868 - 869 - /* Luminary Micro Stellaris Boards, VID = FTDI_VID */ 870 - /* FTDI 2332C Dual channel device, side A=245 FIFO (JTAG), Side B=RS232 UART */ 871 - #define LMI_LM3S_DEVEL_BOARD_PID 0xbcd8 872 - #define LMI_LM3S_EVAL_BOARD_PID 0xbcd9 873 - 874 - /* www.elsterelectricity.com Elster Unicom III Optical Probe */ 875 - #define FTDI_ELSTER_UNICOM_PID 0xE700 /* Product Id */ 876 - 877 - /* 878 - * The Mobility Lab (TML) 879 - * Submitted by Pierre Castella 880 - */ 881 - #define TML_VID 0x1B91 /* Vendor ID */ 882 - #define TML_USB_SERIAL_PID 0x0064 /* USB - Serial Converter */ 883 - 884 - /* Propox devices */ 885 - #define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 886 - 887 - /* Rig Expert Ukraine devices */ 888 - #define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */ 889 - 890 - /* Domintell products http://www.domintell.com */ 891 - #define FTDI_DOMINTELL_DGQG_PID 0xEF50 /* Master */ 892 - #define FTDI_DOMINTELL_DUSB_PID 0xEF51 /* DUSB01 module */ 893 - 894 - /* Alti-2 products http://www.alti-2.com */ 895 - #define ALTI2_VID 0x1BC9 896 - #define ALTI2_N3_PID 0x6001 /* Neptune 3 */ 897 21 898 22 /* Commands */ 899 23 #define FTDI_SIO_RESET 0 /* Reset the port */ ··· 40 910 #define INTERFACE_C 3 41 911 #define INTERFACE_D 4 42 912 43 - /* 44 - * FIC / OpenMoko, Inc. http://wiki.openmoko.org/wiki/Neo1973_Debug_Board_v3 45 - * Submitted by Harald Welte <laforge@openmoko.org> 46 - */ 47 - #define FIC_VID 0x1457 48 - #define FIC_NEO1973_DEBUG_PID 0x5118 49 - 50 - /* 51 - * RATOC REX-USB60F 52 - */ 53 - #define RATOC_VENDOR_ID 0x0584 54 - #define RATOC_PRODUCT_ID_USB60F 0xb020 55 - 56 - /* 57 - * DIEBOLD BCS SE923 58 - */ 59 - #define DIEBOLD_BCS_SE923_PID 0xfb99 60 - 61 - /* 62 - * Atmel STK541 63 - */ 64 - #define ATMEL_VID 0x03eb /* Vendor ID */ 65 - #define STK541_PID 0x2109 /* Zigbee Controller */ 66 - 67 - /* 68 - * Dresden Elektronic Sensor Terminal Board 69 - */ 70 - #define DE_VID 0x1cf1 /* Vendor ID */ 71 - #define STB_PID 0x0001 /* Sensor Terminal Board */ 72 - #define WHT_PID 0x0004 /* Wireless Handheld Terminal */ 73 - 74 - /* 75 - * Blackfin gnICE JTAG 76 - * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice 77 - */ 78 - #define ADI_VID 0x0456 79 - #define ADI_GNICE_PID 0xF000 80 - #define ADI_GNICEPLUS_PID 0xF001 81 - 82 - /* 83 - * JETI SPECTROMETER SPECBOS 1201 84 - * http://www.jeti.com/products/sys/scb/scb1201.php 85 - */ 86 - #define JETI_VID 0x0c6c 87 - #define JETI_SPC1201_PID 0x04b2 88 - 89 - /* 90 - * Marvell SheevaPlug 91 - */ 92 - #define MARVELL_VID 0x9e88 93 - #define MARVELL_SHEEVAPLUG_PID 0x9e8f 94 - 95 - #define FTDI_TURTELIZER_PID 0xBDC8 /* JTAG/RS-232 adapter by egnite GmBH */ 96 - 97 - /* 98 - * GN Otometrics (http://www.otometrics.com) 99 - * Submitted by Ville Sundberg. 100 - */ 101 - #define GN_OTOMETRICS_VID 0x0c33 /* Vendor ID */ 102 - #define AURICAL_USB_PID 0x0010 /* Aurical USB Audiometer */ 103 - 104 - /* 105 - * Bayer Ascensia Contour blood glucose meter USB-converter cable. 106 - * http://winglucofacts.com/cables/ 107 - */ 108 - #define BAYER_VID 0x1A79 109 - #define BAYER_CONTOUR_CABLE_PID 0x6001 110 - 111 - /* 112 - * Marvell OpenRD Base, Client 113 - * http://www.open-rd.org 114 - * OpenRD Base, Client use VID 0x0403 115 - */ 116 - #define MARVELL_OPENRD_PID 0x9e90 117 - 118 - /* 119 - * Hameg HO820 and HO870 interface (using VID 0x0403) 120 - */ 121 - #define HAMEG_HO820_PID 0xed74 122 - #define HAMEG_HO870_PID 0xed71 123 913 124 914 /* 125 915 * BmRequestType: 1100 0000b ··· 554 1504 * B2..7 Length of message - (not including Byte 0) 555 1505 * 556 1506 */ 557 -
+986
drivers/usb/serial/ftdi_sio_ids.h
··· 1 + /* 2 + * vendor/product IDs (VID/PID) of devices using FTDI USB serial converters. 3 + * Please keep numerically sorted within individual areas, thanks! 4 + * 5 + * Philipp G�hring - pg@futureware.at - added the Device ID of the USB relais 6 + * from Rudolf Gugler 7 + * 8 + */ 9 + 10 + 11 + /**********************************/ 12 + /***** devices using FTDI VID *****/ 13 + /**********************************/ 14 + 15 + 16 + #define FTDI_VID 0x0403 /* Vendor Id */ 17 + 18 + 19 + /*** "original" FTDI device PIDs ***/ 20 + 21 + #define FTDI_8U232AM_PID 0x6001 /* Similar device to SIO above */ 22 + #define FTDI_8U232AM_ALT_PID 0x6006 /* FTDI's alternate PID for above */ 23 + #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */ 24 + #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */ 25 + #define FTDI_SIO_PID 0x8372 /* Product Id SIO application of 8U100AX */ 26 + #define FTDI_232RL_PID 0xFBFA /* Product ID for FT232RL */ 27 + 28 + 29 + /*** third-party PIDs (using FTDI_VID) ***/ 30 + 31 + /* 32 + * Marvell OpenRD Base, Client 33 + * http://www.open-rd.org 34 + * OpenRD Base, Client use VID 0x0403 35 + */ 36 + #define MARVELL_OPENRD_PID 0x9e90 37 + 38 + /* www.candapter.com Ewert Energy Systems CANdapter device */ 39 + #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ 40 + 41 + /* OOCDlink by Joern Kaipf <joernk@web.de> 42 + * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ 43 + #define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ 44 + 45 + /* Luminary Micro Stellaris Boards, VID = FTDI_VID */ 46 + /* FTDI 2332C Dual channel device, side A=245 FIFO (JTAG), Side B=RS232 UART */ 47 + #define LMI_LM3S_DEVEL_BOARD_PID 0xbcd8 48 + #define LMI_LM3S_EVAL_BOARD_PID 0xbcd9 49 + 50 + #define FTDI_TURTELIZER_PID 0xBDC8 /* JTAG/RS-232 adapter by egnite GmBH */ 51 + 52 + /* OpenDCC (www.opendcc.de) product id */ 53 + #define FTDI_OPENDCC_PID 0xBFD8 54 + #define FTDI_OPENDCC_SNIFFER_PID 0xBFD9 55 + #define FTDI_OPENDCC_THROTTLE_PID 0xBFDA 56 + #define FTDI_OPENDCC_GATEWAY_PID 0xBFDB 57 + 58 + /* 59 + * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) 60 + */ 61 + #define FTDI_RRCIRKITS_LOCOBUFFER_PID 0xc7d0 /* LocoBuffer USB */ 62 + 63 + /* DMX4ALL DMX Interfaces */ 64 + #define FTDI_DMX4ALL 0xC850 65 + 66 + /* 67 + * ASK.fr devices 68 + */ 69 + #define FTDI_ASK_RDR400_PID 0xC991 /* ASK RDR 400 series card reader */ 70 + 71 + /* www.starting-point-systems.com �Chameleon device */ 72 + #define FTDI_MICRO_CHAMELEON_PID 0xCAA0 /* Product Id */ 73 + 74 + /* 75 + * Tactrix OpenPort (ECU) devices. 76 + * OpenPort 1.3M submitted by Donour Sizemore. 77 + * OpenPort 1.3S and 1.3U submitted by Ian Abbott. 78 + */ 79 + #define FTDI_TACTRIX_OPENPORT_13M_PID 0xCC48 /* OpenPort 1.3 Mitsubishi */ 80 + #define FTDI_TACTRIX_OPENPORT_13S_PID 0xCC49 /* OpenPort 1.3 Subaru */ 81 + #define FTDI_TACTRIX_OPENPORT_13U_PID 0xCC4A /* OpenPort 1.3 Universal */ 82 + 83 + /* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */ 84 + /* the VID is the standard ftdi vid (FTDI_VID) */ 85 + #define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */ 86 + #define FTDI_SCS_DEVICE_1_PID 0xD011 /* SCS Tracker / DSP TNC */ 87 + #define FTDI_SCS_DEVICE_2_PID 0xD012 88 + #define FTDI_SCS_DEVICE_3_PID 0xD013 89 + #define FTDI_SCS_DEVICE_4_PID 0xD014 90 + #define FTDI_SCS_DEVICE_5_PID 0xD015 91 + #define FTDI_SCS_DEVICE_6_PID 0xD016 92 + #define FTDI_SCS_DEVICE_7_PID 0xD017 93 + 94 + /* iPlus device */ 95 + #define FTDI_IPLUS_PID 0xD070 /* Product Id */ 96 + #define FTDI_IPLUS2_PID 0xD071 /* Product Id */ 97 + 98 + /* 99 + * Gamma Scout (http://gamma-scout.com/). Submitted by rsc@runtux.com. 100 + */ 101 + #define FTDI_GAMMA_SCOUT_PID 0xD678 /* Gamma Scout online */ 102 + 103 + /* Propox devices */ 104 + #define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 105 + 106 + /* 107 + * Xsens Technologies BV products (http://www.xsens.com). 108 + */ 109 + #define XSENS_CONVERTER_0_PID 0xD388 110 + #define XSENS_CONVERTER_1_PID 0xD389 111 + #define XSENS_CONVERTER_2_PID 0xD38A 112 + #define XSENS_CONVERTER_3_PID 0xD38B 113 + #define XSENS_CONVERTER_4_PID 0xD38C 114 + #define XSENS_CONVERTER_5_PID 0xD38D 115 + #define XSENS_CONVERTER_6_PID 0xD38E 116 + #define XSENS_CONVERTER_7_PID 0xD38F 117 + 118 + /* 119 + * NDI (www.ndigital.com) product ids 120 + */ 121 + #define FTDI_NDI_HUC_PID 0xDA70 /* NDI Host USB Converter */ 122 + #define FTDI_NDI_SPECTRA_SCU_PID 0xDA71 /* NDI Spectra SCU */ 123 + #define FTDI_NDI_FUTURE_2_PID 0xDA72 /* NDI future device #2 */ 124 + #define FTDI_NDI_FUTURE_3_PID 0xDA73 /* NDI future device #3 */ 125 + #define FTDI_NDI_AURORA_SCU_PID 0xDA74 /* NDI Aurora SCU */ 126 + 127 + /* 128 + * Westrex International devices submitted by Cory Lee 129 + */ 130 + #define FTDI_WESTREX_MODEL_777_PID 0xDC00 /* Model 777 */ 131 + #define FTDI_WESTREX_MODEL_8900F_PID 0xDC01 /* Model 8900F */ 132 + 133 + /* 134 + * ACG Identification Technologies GmbH products (http://www.acg.de/). 135 + * Submitted by anton -at- goto10 -dot- org. 136 + */ 137 + #define FTDI_ACG_HFDUAL_PID 0xDD20 /* HF Dual ISO Reader (RFID) */ 138 + 139 + /* 140 + * Definitions for Artemis astronomical USB based cameras 141 + * Check it at http://www.artemisccd.co.uk/ 142 + */ 143 + #define FTDI_ARTEMIS_PID 0xDF28 /* All Artemis Cameras */ 144 + 145 + /* 146 + * Definitions for ATIK Instruments astronomical USB based cameras 147 + * Check it at http://www.atik-instruments.com/ 148 + */ 149 + #define FTDI_ATIK_ATK16_PID 0xDF30 /* ATIK ATK-16 Grayscale Camera */ 150 + #define FTDI_ATIK_ATK16C_PID 0xDF32 /* ATIK ATK-16C Colour Camera */ 151 + #define FTDI_ATIK_ATK16HR_PID 0xDF31 /* ATIK ATK-16HR Grayscale Camera */ 152 + #define FTDI_ATIK_ATK16HRC_PID 0xDF33 /* ATIK ATK-16HRC Colour Camera */ 153 + #define FTDI_ATIK_ATK16IC_PID 0xDF35 /* ATIK ATK-16IC Grayscale Camera */ 154 + 155 + /* 156 + * Yost Engineering, Inc. products (www.yostengineering.com). 157 + * PID 0xE050 submitted by Aaron Prose. 158 + */ 159 + #define FTDI_YEI_SERVOCENTER31_PID 0xE050 /* YEI ServoCenter3.1 USB */ 160 + 161 + /* 162 + * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). 163 + * All of these devices use FTDI's vendor ID (0x0403). 164 + * 165 + * The previously included PID for the UO 100 module was incorrect. 166 + * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58). 167 + * 168 + * Armin Laeuger originally sent the PID for the UM 100 module. 169 + */ 170 + #define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */ 171 + #define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */ 172 + #define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */ 173 + #define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ 174 + #define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ 175 + #define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ 176 + #define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ 177 + #define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */ 178 + #define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */ 179 + #define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */ 180 + #define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */ 181 + #define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */ 182 + #define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */ 183 + #define FTDI_ELV_USI2_PID 0xF06A /* USB-Schrittmotoren-Interface (USI 2) */ 184 + #define FTDI_ELV_T1100_PID 0xF06B /* Thermometer (T 1100) */ 185 + #define FTDI_ELV_PCD200_PID 0xF06C /* PC-Datenlogger (PCD 200) */ 186 + #define FTDI_ELV_ULA200_PID 0xF06D /* USB-LCD-Ansteuerung (ULA 200) */ 187 + #define FTDI_ELV_ALC8500_PID 0xF06E /* ALC 8500 Expert */ 188 + #define FTDI_ELV_FHZ1000PC_PID 0xF06F /* FHZ 1000 PC */ 189 + #define FTDI_ELV_UR100_PID 0xFB58 /* USB-RS232-Umsetzer (UR 100) */ 190 + #define FTDI_ELV_UM100_PID 0xFB5A /* USB-Modul UM 100 */ 191 + #define FTDI_ELV_UO100_PID 0xFB5B /* USB-Modul UO 100 */ 192 + /* Additional ELV PIDs that default to using the FTDI D2XX drivers on 193 + * MS Windows, rather than the FTDI Virtual Com Port drivers. 194 + * Maybe these will be easier to use with the libftdi/libusb user-space 195 + * drivers, or possibly the Comedi drivers in some cases. */ 196 + #define FTDI_ELV_CLI7000_PID 0xFB59 /* Computer-Light-Interface (CLI 7000) */ 197 + #define FTDI_ELV_PPS7330_PID 0xFB5C /* Processor-Power-Supply (PPS 7330) */ 198 + #define FTDI_ELV_TFM100_PID 0xFB5D /* Temperartur-Feuchte Messgeraet (TFM 100) */ 199 + #define FTDI_ELV_UDF77_PID 0xFB5E /* USB DCF Funkurh (UDF 77) */ 200 + #define FTDI_ELV_UIO88_PID 0xFB5F /* USB-I/O Interface (UIO 88) */ 201 + 202 + /* 203 + * EVER Eco Pro UPS (http://www.ever.com.pl/) 204 + */ 205 + 206 + #define EVER_ECO_PRO_CDS 0xe520 /* RS-232 converter */ 207 + 208 + /* 209 + * Active Robots product ids. 210 + */ 211 + #define FTDI_ACTIVE_ROBOTS_PID 0xE548 /* USB comms board */ 212 + 213 + /* Pyramid Computer GmbH */ 214 + #define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */ 215 + 216 + /* www.elsterelectricity.com Elster Unicom III Optical Probe */ 217 + #define FTDI_ELSTER_UNICOM_PID 0xE700 /* Product Id */ 218 + 219 + /* 220 + * Gude Analog- und Digitalsysteme GmbH 221 + */ 222 + #define FTDI_GUDEADS_E808_PID 0xE808 223 + #define FTDI_GUDEADS_E809_PID 0xE809 224 + #define FTDI_GUDEADS_E80A_PID 0xE80A 225 + #define FTDI_GUDEADS_E80B_PID 0xE80B 226 + #define FTDI_GUDEADS_E80C_PID 0xE80C 227 + #define FTDI_GUDEADS_E80D_PID 0xE80D 228 + #define FTDI_GUDEADS_E80E_PID 0xE80E 229 + #define FTDI_GUDEADS_E80F_PID 0xE80F 230 + #define FTDI_GUDEADS_E888_PID 0xE888 /* Expert ISDN Control USB */ 231 + #define FTDI_GUDEADS_E889_PID 0xE889 /* USB RS-232 OptoBridge */ 232 + #define FTDI_GUDEADS_E88A_PID 0xE88A 233 + #define FTDI_GUDEADS_E88B_PID 0xE88B 234 + #define FTDI_GUDEADS_E88C_PID 0xE88C 235 + #define FTDI_GUDEADS_E88D_PID 0xE88D 236 + #define FTDI_GUDEADS_E88E_PID 0xE88E 237 + #define FTDI_GUDEADS_E88F_PID 0xE88F 238 + 239 + /* 240 + * Eclo (http://www.eclo.pt/) product IDs. 241 + * PID 0xEA90 submitted by Martin Grill. 242 + */ 243 + #define FTDI_ECLO_COM_1WIRE_PID 0xEA90 /* COM to 1-Wire USB adaptor */ 244 + 245 + /* TNC-X USB-to-packet-radio adapter, versions prior to 3.0 (DLP module) */ 246 + #define FTDI_TNC_X_PID 0xEBE0 247 + 248 + /* 249 + * Teratronik product ids. 250 + * Submitted by O. W�lfelschneider. 251 + */ 252 + #define FTDI_TERATRONIK_VCP_PID 0xEC88 /* Teratronik device (preferring VCP driver on windows) */ 253 + #define FTDI_TERATRONIK_D2XX_PID 0xEC89 /* Teratronik device (preferring D2XX driver on windows) */ 254 + 255 + /* Rig Expert Ukraine devices */ 256 + #define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */ 257 + 258 + /* 259 + * Hameg HO820 and HO870 interface (using VID 0x0403) 260 + */ 261 + #define HAMEG_HO820_PID 0xed74 262 + #define HAMEG_HO870_PID 0xed71 263 + 264 + /* 265 + * MaxStream devices www.maxstream.net 266 + */ 267 + #define FTDI_MAXSTREAM_PID 0xEE18 /* Xbee PKG-U Module */ 268 + 269 + /* 270 + * microHAM product IDs (http://www.microham.com). 271 + * Submitted by Justin Burket (KL1RL) <zorton@jtan.com> 272 + * and Mike Studer (K6EEP) <k6eep@hamsoftware.org>. 273 + * Ian Abbott <abbotti@mev.co.uk> added a few more from the driver INF file. 274 + */ 275 + #define FTDI_MHAM_KW_PID 0xEEE8 /* USB-KW interface */ 276 + #define FTDI_MHAM_YS_PID 0xEEE9 /* USB-YS interface */ 277 + #define FTDI_MHAM_Y6_PID 0xEEEA /* USB-Y6 interface */ 278 + #define FTDI_MHAM_Y8_PID 0xEEEB /* USB-Y8 interface */ 279 + #define FTDI_MHAM_IC_PID 0xEEEC /* USB-IC interface */ 280 + #define FTDI_MHAM_DB9_PID 0xEEED /* USB-DB9 interface */ 281 + #define FTDI_MHAM_RS232_PID 0xEEEE /* USB-RS232 interface */ 282 + #define FTDI_MHAM_Y9_PID 0xEEEF /* USB-Y9 interface */ 283 + 284 + /* Domintell products http://www.domintell.com */ 285 + #define FTDI_DOMINTELL_DGQG_PID 0xEF50 /* Master */ 286 + #define FTDI_DOMINTELL_DUSB_PID 0xEF51 /* DUSB01 module */ 287 + 288 + /* 289 + * The following are the values for the Perle Systems 290 + * UltraPort USB serial converters 291 + */ 292 + #define FTDI_PERLE_ULTRAPORT_PID 0xF0C0 /* Perle UltraPort Product Id */ 293 + 294 + /* Sprog II (Andrew Crosland's SprogII DCC interface) */ 295 + #define FTDI_SPROG_II 0xF0C8 296 + 297 + /* an infrared receiver for user access control with IR tags */ 298 + #define FTDI_PIEGROUP_PID 0xF208 /* Product Id */ 299 + 300 + /* ACT Solutions HomePro ZWave interface 301 + (http://www.act-solutions.com/HomePro.htm) */ 302 + #define FTDI_ACTZWAVE_PID 0xF2D0 303 + 304 + /* 305 + * 4N-GALAXY.DE PIDs for CAN-USB, USB-RS232, USB-RS422, USB-RS485, 306 + * USB-TTY activ, USB-TTY passiv. Some PIDs are used by several devices 307 + * and I'm not entirely sure which are used by which. 308 + */ 309 + #define FTDI_4N_GALAXY_DE_1_PID 0xF3C0 310 + #define FTDI_4N_GALAXY_DE_2_PID 0xF3C1 311 + 312 + /* 313 + * Linx Technologies product ids 314 + */ 315 + #define LINX_SDMUSBQSS_PID 0xF448 /* Linx SDM-USB-QS-S */ 316 + #define LINX_MASTERDEVEL2_PID 0xF449 /* Linx Master Development 2.0 */ 317 + #define LINX_FUTURE_0_PID 0xF44A /* Linx future device */ 318 + #define LINX_FUTURE_1_PID 0xF44B /* Linx future device */ 319 + #define LINX_FUTURE_2_PID 0xF44C /* Linx future device */ 320 + 321 + /* 322 + * Oceanic product ids 323 + */ 324 + #define FTDI_OCEANIC_PID 0xF460 /* Oceanic dive instrument */ 325 + 326 + /* 327 + * SUUNTO product ids 328 + */ 329 + #define FTDI_SUUNTO_SPORTS_PID 0xF680 /* Suunto Sports instrument */ 330 + 331 + /* USB-UIRT - An infrared receiver and transmitter using the 8U232AM chip */ 332 + /* http://home.earthlink.net/~jrhees/USBUIRT/index.htm */ 333 + #define FTDI_USB_UIRT_PID 0xF850 /* Product Id */ 334 + 335 + /* CCS Inc. ICDU/ICDU40 product ID - 336 + * the FT232BM is used in an in-circuit-debugger unit for PIC16's/PIC18's */ 337 + #define FTDI_CCSICDU20_0_PID 0xF9D0 338 + #define FTDI_CCSICDU40_1_PID 0xF9D1 339 + #define FTDI_CCSMACHX_2_PID 0xF9D2 340 + #define FTDI_CCSLOAD_N_GO_3_PID 0xF9D3 341 + #define FTDI_CCSICDU64_4_PID 0xF9D4 342 + #define FTDI_CCSPRIME8_5_PID 0xF9D5 343 + 344 + /* 345 + * The following are the values for the Matrix Orbital LCD displays, 346 + * which are the FT232BM ( similar to the 8U232AM ) 347 + */ 348 + #define FTDI_MTXORB_0_PID 0xFA00 /* Matrix Orbital Product Id */ 349 + #define FTDI_MTXORB_1_PID 0xFA01 /* Matrix Orbital Product Id */ 350 + #define FTDI_MTXORB_2_PID 0xFA02 /* Matrix Orbital Product Id */ 351 + #define FTDI_MTXORB_3_PID 0xFA03 /* Matrix Orbital Product Id */ 352 + #define FTDI_MTXORB_4_PID 0xFA04 /* Matrix Orbital Product Id */ 353 + #define FTDI_MTXORB_5_PID 0xFA05 /* Matrix Orbital Product Id */ 354 + #define FTDI_MTXORB_6_PID 0xFA06 /* Matrix Orbital Product Id */ 355 + 356 + /* 357 + * Home Electronics (www.home-electro.com) USB gadgets 358 + */ 359 + #define FTDI_HE_TIRA1_PID 0xFA78 /* Tira-1 IR transceiver */ 360 + 361 + /* Inside Accesso contactless reader (http://www.insidefr.com) */ 362 + #define INSIDE_ACCESSO 0xFAD0 363 + 364 + /* 365 + * ThorLabs USB motor drivers 366 + */ 367 + #define FTDI_THORLABS_PID 0xfaf0 /* ThorLabs USB motor drivers */ 368 + 369 + /* 370 + * Protego product ids 371 + */ 372 + #define PROTEGO_SPECIAL_1 0xFC70 /* special/unknown device */ 373 + #define PROTEGO_R2X0 0xFC71 /* R200-USB TRNG unit (R210, R220, and R230) */ 374 + #define PROTEGO_SPECIAL_3 0xFC72 /* special/unknown device */ 375 + #define PROTEGO_SPECIAL_4 0xFC73 /* special/unknown device */ 376 + 377 + /* 378 + * DSS-20 Sync Station for Sony Ericsson P800 379 + */ 380 + #define FTDI_DSS20_PID 0xFC82 381 + 382 + /* www.irtrans.de device */ 383 + #define FTDI_IRTRANS_PID 0xFC60 /* Product Id */ 384 + 385 + /* 386 + * RM Michaelides CANview USB (http://www.rmcan.com) (FTDI_VID) 387 + * CAN fieldbus interface adapter, added by port GmbH www.port.de) 388 + * Ian Abbott changed the macro names for consistency. 389 + */ 390 + #define FTDI_RM_CANVIEW_PID 0xfd60 /* Product Id */ 391 + /* www.thoughttechnology.com/ TT-USB provide with procomp use ftdi_sio */ 392 + #define FTDI_TTUSB_PID 0xFF20 /* Product Id */ 393 + 394 + #define FTDI_USBX_707_PID 0xF857 /* ADSTech IR Blaster USBX-707 (FTDI_VID) */ 395 + 396 + #define FTDI_RELAIS_PID 0xFA10 /* Relais device from Rudolf Gugler */ 397 + 398 + /* 399 + * PCDJ use ftdi based dj-controllers. The following PID is 400 + * for their DAC-2 device http://www.pcdjhardware.com/DAC2.asp 401 + * (the VID is the standard ftdi vid (FTDI_VID), PID sent by Wouter Paesen) 402 + */ 403 + #define FTDI_PCDJ_DAC2_PID 0xFA88 404 + 405 + #define FTDI_R2000KU_TRUE_RNG 0xFB80 /* R2000KU TRUE RNG (FTDI_VID) */ 406 + 407 + /* 408 + * DIEBOLD BCS SE923 (FTDI_VID) 409 + */ 410 + #define DIEBOLD_BCS_SE923_PID 0xfb99 411 + 412 + /* www.crystalfontz.com devices 413 + * - thanx for providing free devices for evaluation ! 414 + * they use the ftdi chipset for the USB interface 415 + * and the vendor id is the same 416 + */ 417 + #define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ 418 + #define FTDI_XF_634_PID 0xFC09 /* 634: 20x4 Character Display */ 419 + #define FTDI_XF_547_PID 0xFC0A /* 547: Two line Display */ 420 + #define FTDI_XF_633_PID 0xFC0B /* 633: 16x2 Character Display with Keys */ 421 + #define FTDI_XF_631_PID 0xFC0C /* 631: 20x2 Character Display */ 422 + #define FTDI_XF_635_PID 0xFC0D /* 635: 20x4 Character Display */ 423 + #define FTDI_XF_640_PID 0xFC0E /* 640: Two line Display */ 424 + #define FTDI_XF_642_PID 0xFC0F /* 642: Two line Display */ 425 + 426 + /* 427 + * Video Networks Limited / Homechoice in the UK use an ftdi-based device 428 + * for their 1Mb broadband internet service. The following PID is exhibited 429 + * by the usb device supplied (the VID is the standard ftdi vid (FTDI_VID) 430 + */ 431 + #define FTDI_VNHCPCUSB_D_PID 0xfe38 /* Product Id */ 432 + 433 + /* AlphaMicro Components AMC-232USB01 device (FTDI_VID) */ 434 + #define FTDI_AMC232_PID 0xFF00 /* Product Id */ 435 + 436 + /* 437 + * IBS elektronik product ids (FTDI_VID) 438 + * Submitted by Thomas Schleusener 439 + */ 440 + #define FTDI_IBS_US485_PID 0xff38 /* IBS US485 (USB<-->RS422/485 interface) */ 441 + #define FTDI_IBS_PICPRO_PID 0xff39 /* IBS PIC-Programmer */ 442 + #define FTDI_IBS_PCMCIA_PID 0xff3a /* IBS Card reader for PCMCIA SRAM-cards */ 443 + #define FTDI_IBS_PK1_PID 0xff3b /* IBS PK1 - Particel counter */ 444 + #define FTDI_IBS_RS232MON_PID 0xff3c /* IBS RS232 - Monitor */ 445 + #define FTDI_IBS_APP70_PID 0xff3d /* APP 70 (dust monitoring system) */ 446 + #define FTDI_IBS_PEDO_PID 0xff3e /* IBS PEDO-Modem (RF modem 868.35 MHz) */ 447 + #define FTDI_IBS_PROD_PID 0xff3f /* future device */ 448 + /* www.canusb.com Lawicel CANUSB device (FTDI_VID) */ 449 + #define FTDI_CANUSB_PID 0xFFA8 /* Product Id */ 450 + 451 + 452 + 453 + /********************************/ 454 + /** third-party VID/PID combos **/ 455 + /********************************/ 456 + 457 + 458 + 459 + /* 460 + * Atmel STK541 461 + */ 462 + #define ATMEL_VID 0x03eb /* Vendor ID */ 463 + #define STK541_PID 0x2109 /* Zigbee Controller */ 464 + 465 + /* 466 + * Blackfin gnICE JTAG 467 + * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice 468 + */ 469 + #define ADI_VID 0x0456 470 + #define ADI_GNICE_PID 0xF000 471 + #define ADI_GNICEPLUS_PID 0xF001 472 + 473 + /* 474 + * RATOC REX-USB60F 475 + */ 476 + #define RATOC_VENDOR_ID 0x0584 477 + #define RATOC_PRODUCT_ID_USB60F 0xb020 478 + 479 + /* 480 + * Definitions for B&B Electronics products. 481 + */ 482 + #define BANDB_VID 0x0856 /* B&B Electronics Vendor ID */ 483 + #define BANDB_USOTL4_PID 0xAC01 /* USOTL4 Isolated RS-485 Converter */ 484 + #define BANDB_USTL4_PID 0xAC02 /* USTL4 RS-485 Converter */ 485 + #define BANDB_USO9ML2_PID 0xAC03 /* USO9ML2 Isolated RS-232 Converter */ 486 + #define BANDB_USOPTL4_PID 0xAC11 487 + #define BANDB_USPTL4_PID 0xAC12 488 + #define BANDB_USO9ML2DR_2_PID 0xAC16 489 + #define BANDB_USO9ML2DR_PID 0xAC17 490 + #define BANDB_USOPTL4DR2_PID 0xAC18 /* USOPTL4R-2 2-port Isolated RS-232 Converter */ 491 + #define BANDB_USOPTL4DR_PID 0xAC19 492 + #define BANDB_485USB9F_2W_PID 0xAC25 493 + #define BANDB_485USB9F_4W_PID 0xAC26 494 + #define BANDB_232USB9M_PID 0xAC27 495 + #define BANDB_485USBTB_2W_PID 0xAC33 496 + #define BANDB_485USBTB_4W_PID 0xAC34 497 + #define BANDB_TTL5USB9M_PID 0xAC49 498 + #define BANDB_TTL3USB9M_PID 0xAC50 499 + #define BANDB_ZZ_PROG1_USB_PID 0xBA02 500 + 501 + /* 502 + * Intrepid Control Systems (http://www.intrepidcs.com/) ValueCAN and NeoVI 503 + */ 504 + #define INTREPID_VID 0x093C 505 + #define INTREPID_VALUECAN_PID 0x0601 506 + #define INTREPID_NEOVI_PID 0x0701 507 + 508 + /* 509 + * Definitions for ID TECH (www.idt-net.com) devices 510 + */ 511 + #define IDTECH_VID 0x0ACD /* ID TECH Vendor ID */ 512 + #define IDTECH_IDT1221U_PID 0x0300 /* IDT1221U USB to RS-232 adapter */ 513 + 514 + /* 515 + * Definitions for Omnidirectional Control Technology, Inc. devices 516 + */ 517 + #define OCT_VID 0x0B39 /* OCT vendor ID */ 518 + /* Note: OCT US101 is also rebadged as Dick Smith Electronics (NZ) XH6381 */ 519 + /* Also rebadged as Dick Smith Electronics (Aus) XH6451 */ 520 + /* Also rebadged as SIIG Inc. model US2308 hardware version 1 */ 521 + #define OCT_US101_PID 0x0421 /* OCT US101 USB to RS-232 */ 522 + 523 + /* 524 + * Icom ID-1 digital transceiver 525 + */ 526 + 527 + #define ICOM_ID1_VID 0x0C26 528 + #define ICOM_ID1_PID 0x0004 529 + 530 + /* 531 + * GN Otometrics (http://www.otometrics.com) 532 + * Submitted by Ville Sundberg. 533 + */ 534 + #define GN_OTOMETRICS_VID 0x0c33 /* Vendor ID */ 535 + #define AURICAL_USB_PID 0x0010 /* Aurical USB Audiometer */ 536 + 537 + /* 538 + * The following are the values for the Sealevel SeaLINK+ adapters. 539 + * (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and 540 + * removed some PIDs that don't seem to match any existing products.) 541 + */ 542 + #define SEALEVEL_VID 0x0c52 /* Sealevel Vendor ID */ 543 + #define SEALEVEL_2101_PID 0x2101 /* SeaLINK+232 (2101/2105) */ 544 + #define SEALEVEL_2102_PID 0x2102 /* SeaLINK+485 (2102) */ 545 + #define SEALEVEL_2103_PID 0x2103 /* SeaLINK+232I (2103) */ 546 + #define SEALEVEL_2104_PID 0x2104 /* SeaLINK+485I (2104) */ 547 + #define SEALEVEL_2106_PID 0x9020 /* SeaLINK+422 (2106) */ 548 + #define SEALEVEL_2201_1_PID 0x2211 /* SeaPORT+2/232 (2201) Port 1 */ 549 + #define SEALEVEL_2201_2_PID 0x2221 /* SeaPORT+2/232 (2201) Port 2 */ 550 + #define SEALEVEL_2202_1_PID 0x2212 /* SeaPORT+2/485 (2202) Port 1 */ 551 + #define SEALEVEL_2202_2_PID 0x2222 /* SeaPORT+2/485 (2202) Port 2 */ 552 + #define SEALEVEL_2203_1_PID 0x2213 /* SeaPORT+2 (2203) Port 1 */ 553 + #define SEALEVEL_2203_2_PID 0x2223 /* SeaPORT+2 (2203) Port 2 */ 554 + #define SEALEVEL_2401_1_PID 0x2411 /* SeaPORT+4/232 (2401) Port 1 */ 555 + #define SEALEVEL_2401_2_PID 0x2421 /* SeaPORT+4/232 (2401) Port 2 */ 556 + #define SEALEVEL_2401_3_PID 0x2431 /* SeaPORT+4/232 (2401) Port 3 */ 557 + #define SEALEVEL_2401_4_PID 0x2441 /* SeaPORT+4/232 (2401) Port 4 */ 558 + #define SEALEVEL_2402_1_PID 0x2412 /* SeaPORT+4/485 (2402) Port 1 */ 559 + #define SEALEVEL_2402_2_PID 0x2422 /* SeaPORT+4/485 (2402) Port 2 */ 560 + #define SEALEVEL_2402_3_PID 0x2432 /* SeaPORT+4/485 (2402) Port 3 */ 561 + #define SEALEVEL_2402_4_PID 0x2442 /* SeaPORT+4/485 (2402) Port 4 */ 562 + #define SEALEVEL_2403_1_PID 0x2413 /* SeaPORT+4 (2403) Port 1 */ 563 + #define SEALEVEL_2403_2_PID 0x2423 /* SeaPORT+4 (2403) Port 2 */ 564 + #define SEALEVEL_2403_3_PID 0x2433 /* SeaPORT+4 (2403) Port 3 */ 565 + #define SEALEVEL_2403_4_PID 0x2443 /* SeaPORT+4 (2403) Port 4 */ 566 + #define SEALEVEL_2801_1_PID 0X2811 /* SeaLINK+8/232 (2801) Port 1 */ 567 + #define SEALEVEL_2801_2_PID 0X2821 /* SeaLINK+8/232 (2801) Port 2 */ 568 + #define SEALEVEL_2801_3_PID 0X2831 /* SeaLINK+8/232 (2801) Port 3 */ 569 + #define SEALEVEL_2801_4_PID 0X2841 /* SeaLINK+8/232 (2801) Port 4 */ 570 + #define SEALEVEL_2801_5_PID 0X2851 /* SeaLINK+8/232 (2801) Port 5 */ 571 + #define SEALEVEL_2801_6_PID 0X2861 /* SeaLINK+8/232 (2801) Port 6 */ 572 + #define SEALEVEL_2801_7_PID 0X2871 /* SeaLINK+8/232 (2801) Port 7 */ 573 + #define SEALEVEL_2801_8_PID 0X2881 /* SeaLINK+8/232 (2801) Port 8 */ 574 + #define SEALEVEL_2802_1_PID 0X2812 /* SeaLINK+8/485 (2802) Port 1 */ 575 + #define SEALEVEL_2802_2_PID 0X2822 /* SeaLINK+8/485 (2802) Port 2 */ 576 + #define SEALEVEL_2802_3_PID 0X2832 /* SeaLINK+8/485 (2802) Port 3 */ 577 + #define SEALEVEL_2802_4_PID 0X2842 /* SeaLINK+8/485 (2802) Port 4 */ 578 + #define SEALEVEL_2802_5_PID 0X2852 /* SeaLINK+8/485 (2802) Port 5 */ 579 + #define SEALEVEL_2802_6_PID 0X2862 /* SeaLINK+8/485 (2802) Port 6 */ 580 + #define SEALEVEL_2802_7_PID 0X2872 /* SeaLINK+8/485 (2802) Port 7 */ 581 + #define SEALEVEL_2802_8_PID 0X2882 /* SeaLINK+8/485 (2802) Port 8 */ 582 + #define SEALEVEL_2803_1_PID 0X2813 /* SeaLINK+8 (2803) Port 1 */ 583 + #define SEALEVEL_2803_2_PID 0X2823 /* SeaLINK+8 (2803) Port 2 */ 584 + #define SEALEVEL_2803_3_PID 0X2833 /* SeaLINK+8 (2803) Port 3 */ 585 + #define SEALEVEL_2803_4_PID 0X2843 /* SeaLINK+8 (2803) Port 4 */ 586 + #define SEALEVEL_2803_5_PID 0X2853 /* SeaLINK+8 (2803) Port 5 */ 587 + #define SEALEVEL_2803_6_PID 0X2863 /* SeaLINK+8 (2803) Port 6 */ 588 + #define SEALEVEL_2803_7_PID 0X2873 /* SeaLINK+8 (2803) Port 7 */ 589 + #define SEALEVEL_2803_8_PID 0X2883 /* SeaLINK+8 (2803) Port 8 */ 590 + 591 + /* 592 + * JETI SPECTROMETER SPECBOS 1201 593 + * http://www.jeti.com/products/sys/scb/scb1201.php 594 + */ 595 + #define JETI_VID 0x0c6c 596 + #define JETI_SPC1201_PID 0x04b2 597 + 598 + /* 599 + * FTDI USB UART chips used in construction projects from the 600 + * Elektor Electronics magazine (http://elektor-electronics.co.uk) 601 + */ 602 + #define ELEKTOR_VID 0x0C7D 603 + #define ELEKTOR_FT323R_PID 0x0005 /* RFID-Reader, issue 09-2006 */ 604 + 605 + /* 606 + * Posiflex inc retail equipment (http://www.posiflex.com.tw) 607 + */ 608 + #define POSIFLEX_VID 0x0d3a /* Vendor ID */ 609 + #define POSIFLEX_PP7000_PID 0x0300 /* PP-7000II thermal printer */ 610 + 611 + /* 612 + * The following are the values for two KOBIL chipcard terminals. 613 + */ 614 + #define KOBIL_VID 0x0d46 /* KOBIL Vendor ID */ 615 + #define KOBIL_CONV_B1_PID 0x2020 /* KOBIL Konverter for B1 */ 616 + #define KOBIL_CONV_KAAN_PID 0x2021 /* KOBIL_Konverter for KAAN */ 617 + 618 + #define FTDI_NF_RIC_VID 0x0DCD /* Vendor Id */ 619 + #define FTDI_NF_RIC_PID 0x0001 /* Product Id */ 620 + 621 + /* 622 + * Falcom Wireless Communications GmbH 623 + */ 624 + #define FALCOM_VID 0x0F94 /* Vendor Id */ 625 + #define FALCOM_TWIST_PID 0x0001 /* Falcom Twist USB GPRS modem */ 626 + #define FALCOM_SAMBA_PID 0x0005 /* Falcom Samba USB GPRS modem */ 627 + 628 + /* Larsen and Brusgaard AltiTrack/USBtrack */ 629 + #define LARSENBRUSGAARD_VID 0x0FD8 630 + #define LB_ALTITRACK_PID 0x0001 631 + 632 + /* 633 + * TTi (Thurlby Thandar Instruments) 634 + */ 635 + #define TTI_VID 0x103E /* Vendor Id */ 636 + #define TTI_QL355P_PID 0x03E8 /* TTi QL355P power supply */ 637 + 638 + /* Interbiometrics USB I/O Board */ 639 + /* Developed for Interbiometrics by Rudolf Gugler */ 640 + #define INTERBIOMETRICS_VID 0x1209 641 + #define INTERBIOMETRICS_IOBOARD_PID 0x1002 642 + #define INTERBIOMETRICS_MINI_IOBOARD_PID 0x1006 643 + 644 + /* 645 + * Testo products (http://www.testo.com/) 646 + * Submitted by Colin Leroy 647 + */ 648 + #define TESTO_VID 0x128D 649 + #define TESTO_USB_INTERFACE_PID 0x0001 650 + 651 + /* 652 + * Mobility Electronics products. 653 + */ 654 + #define MOBILITY_VID 0x1342 655 + #define MOBILITY_USB_SERIAL_PID 0x0202 /* EasiDock USB 200 serial */ 656 + 657 + /* 658 + * FIC / OpenMoko, Inc. http://wiki.openmoko.org/wiki/Neo1973_Debug_Board_v3 659 + * Submitted by Harald Welte <laforge@openmoko.org> 660 + */ 661 + #define FIC_VID 0x1457 662 + #define FIC_NEO1973_DEBUG_PID 0x5118 663 + 664 + /* Olimex */ 665 + #define OLIMEX_VID 0x15BA 666 + #define OLIMEX_ARM_USB_OCD_PID 0x0003 667 + 668 + /* 669 + * Telldus Technologies 670 + */ 671 + #define TELLDUS_VID 0x1781 /* Vendor ID */ 672 + #define TELLDUS_TELLSTICK_PID 0x0C30 /* RF control dongle 433 MHz using FT232RL */ 673 + 674 + /* 675 + * Bayer Ascensia Contour blood glucose meter USB-converter cable. 676 + * http://winglucofacts.com/cables/ 677 + */ 678 + #define BAYER_VID 0x1A79 679 + #define BAYER_CONTOUR_CABLE_PID 0x6001 680 + 681 + /* 682 + * The following are the values for the Matrix Orbital FTDI Range 683 + * Anything in this range will use an FT232RL. 684 + */ 685 + #define MTXORB_VID 0x1B3D 686 + #define MTXORB_FTDI_RANGE_0100_PID 0x0100 687 + #define MTXORB_FTDI_RANGE_0101_PID 0x0101 688 + #define MTXORB_FTDI_RANGE_0102_PID 0x0102 689 + #define MTXORB_FTDI_RANGE_0103_PID 0x0103 690 + #define MTXORB_FTDI_RANGE_0104_PID 0x0104 691 + #define MTXORB_FTDI_RANGE_0105_PID 0x0105 692 + #define MTXORB_FTDI_RANGE_0106_PID 0x0106 693 + #define MTXORB_FTDI_RANGE_0107_PID 0x0107 694 + #define MTXORB_FTDI_RANGE_0108_PID 0x0108 695 + #define MTXORB_FTDI_RANGE_0109_PID 0x0109 696 + #define MTXORB_FTDI_RANGE_010A_PID 0x010A 697 + #define MTXORB_FTDI_RANGE_010B_PID 0x010B 698 + #define MTXORB_FTDI_RANGE_010C_PID 0x010C 699 + #define MTXORB_FTDI_RANGE_010D_PID 0x010D 700 + #define MTXORB_FTDI_RANGE_010E_PID 0x010E 701 + #define MTXORB_FTDI_RANGE_010F_PID 0x010F 702 + #define MTXORB_FTDI_RANGE_0110_PID 0x0110 703 + #define MTXORB_FTDI_RANGE_0111_PID 0x0111 704 + #define MTXORB_FTDI_RANGE_0112_PID 0x0112 705 + #define MTXORB_FTDI_RANGE_0113_PID 0x0113 706 + #define MTXORB_FTDI_RANGE_0114_PID 0x0114 707 + #define MTXORB_FTDI_RANGE_0115_PID 0x0115 708 + #define MTXORB_FTDI_RANGE_0116_PID 0x0116 709 + #define MTXORB_FTDI_RANGE_0117_PID 0x0117 710 + #define MTXORB_FTDI_RANGE_0118_PID 0x0118 711 + #define MTXORB_FTDI_RANGE_0119_PID 0x0119 712 + #define MTXORB_FTDI_RANGE_011A_PID 0x011A 713 + #define MTXORB_FTDI_RANGE_011B_PID 0x011B 714 + #define MTXORB_FTDI_RANGE_011C_PID 0x011C 715 + #define MTXORB_FTDI_RANGE_011D_PID 0x011D 716 + #define MTXORB_FTDI_RANGE_011E_PID 0x011E 717 + #define MTXORB_FTDI_RANGE_011F_PID 0x011F 718 + #define MTXORB_FTDI_RANGE_0120_PID 0x0120 719 + #define MTXORB_FTDI_RANGE_0121_PID 0x0121 720 + #define MTXORB_FTDI_RANGE_0122_PID 0x0122 721 + #define MTXORB_FTDI_RANGE_0123_PID 0x0123 722 + #define MTXORB_FTDI_RANGE_0124_PID 0x0124 723 + #define MTXORB_FTDI_RANGE_0125_PID 0x0125 724 + #define MTXORB_FTDI_RANGE_0126_PID 0x0126 725 + #define MTXORB_FTDI_RANGE_0127_PID 0x0127 726 + #define MTXORB_FTDI_RANGE_0128_PID 0x0128 727 + #define MTXORB_FTDI_RANGE_0129_PID 0x0129 728 + #define MTXORB_FTDI_RANGE_012A_PID 0x012A 729 + #define MTXORB_FTDI_RANGE_012B_PID 0x012B 730 + #define MTXORB_FTDI_RANGE_012C_PID 0x012C 731 + #define MTXORB_FTDI_RANGE_012D_PID 0x012D 732 + #define MTXORB_FTDI_RANGE_012E_PID 0x012E 733 + #define MTXORB_FTDI_RANGE_012F_PID 0x012F 734 + #define MTXORB_FTDI_RANGE_0130_PID 0x0130 735 + #define MTXORB_FTDI_RANGE_0131_PID 0x0131 736 + #define MTXORB_FTDI_RANGE_0132_PID 0x0132 737 + #define MTXORB_FTDI_RANGE_0133_PID 0x0133 738 + #define MTXORB_FTDI_RANGE_0134_PID 0x0134 739 + #define MTXORB_FTDI_RANGE_0135_PID 0x0135 740 + #define MTXORB_FTDI_RANGE_0136_PID 0x0136 741 + #define MTXORB_FTDI_RANGE_0137_PID 0x0137 742 + #define MTXORB_FTDI_RANGE_0138_PID 0x0138 743 + #define MTXORB_FTDI_RANGE_0139_PID 0x0139 744 + #define MTXORB_FTDI_RANGE_013A_PID 0x013A 745 + #define MTXORB_FTDI_RANGE_013B_PID 0x013B 746 + #define MTXORB_FTDI_RANGE_013C_PID 0x013C 747 + #define MTXORB_FTDI_RANGE_013D_PID 0x013D 748 + #define MTXORB_FTDI_RANGE_013E_PID 0x013E 749 + #define MTXORB_FTDI_RANGE_013F_PID 0x013F 750 + #define MTXORB_FTDI_RANGE_0140_PID 0x0140 751 + #define MTXORB_FTDI_RANGE_0141_PID 0x0141 752 + #define MTXORB_FTDI_RANGE_0142_PID 0x0142 753 + #define MTXORB_FTDI_RANGE_0143_PID 0x0143 754 + #define MTXORB_FTDI_RANGE_0144_PID 0x0144 755 + #define MTXORB_FTDI_RANGE_0145_PID 0x0145 756 + #define MTXORB_FTDI_RANGE_0146_PID 0x0146 757 + #define MTXORB_FTDI_RANGE_0147_PID 0x0147 758 + #define MTXORB_FTDI_RANGE_0148_PID 0x0148 759 + #define MTXORB_FTDI_RANGE_0149_PID 0x0149 760 + #define MTXORB_FTDI_RANGE_014A_PID 0x014A 761 + #define MTXORB_FTDI_RANGE_014B_PID 0x014B 762 + #define MTXORB_FTDI_RANGE_014C_PID 0x014C 763 + #define MTXORB_FTDI_RANGE_014D_PID 0x014D 764 + #define MTXORB_FTDI_RANGE_014E_PID 0x014E 765 + #define MTXORB_FTDI_RANGE_014F_PID 0x014F 766 + #define MTXORB_FTDI_RANGE_0150_PID 0x0150 767 + #define MTXORB_FTDI_RANGE_0151_PID 0x0151 768 + #define MTXORB_FTDI_RANGE_0152_PID 0x0152 769 + #define MTXORB_FTDI_RANGE_0153_PID 0x0153 770 + #define MTXORB_FTDI_RANGE_0154_PID 0x0154 771 + #define MTXORB_FTDI_RANGE_0155_PID 0x0155 772 + #define MTXORB_FTDI_RANGE_0156_PID 0x0156 773 + #define MTXORB_FTDI_RANGE_0157_PID 0x0157 774 + #define MTXORB_FTDI_RANGE_0158_PID 0x0158 775 + #define MTXORB_FTDI_RANGE_0159_PID 0x0159 776 + #define MTXORB_FTDI_RANGE_015A_PID 0x015A 777 + #define MTXORB_FTDI_RANGE_015B_PID 0x015B 778 + #define MTXORB_FTDI_RANGE_015C_PID 0x015C 779 + #define MTXORB_FTDI_RANGE_015D_PID 0x015D 780 + #define MTXORB_FTDI_RANGE_015E_PID 0x015E 781 + #define MTXORB_FTDI_RANGE_015F_PID 0x015F 782 + #define MTXORB_FTDI_RANGE_0160_PID 0x0160 783 + #define MTXORB_FTDI_RANGE_0161_PID 0x0161 784 + #define MTXORB_FTDI_RANGE_0162_PID 0x0162 785 + #define MTXORB_FTDI_RANGE_0163_PID 0x0163 786 + #define MTXORB_FTDI_RANGE_0164_PID 0x0164 787 + #define MTXORB_FTDI_RANGE_0165_PID 0x0165 788 + #define MTXORB_FTDI_RANGE_0166_PID 0x0166 789 + #define MTXORB_FTDI_RANGE_0167_PID 0x0167 790 + #define MTXORB_FTDI_RANGE_0168_PID 0x0168 791 + #define MTXORB_FTDI_RANGE_0169_PID 0x0169 792 + #define MTXORB_FTDI_RANGE_016A_PID 0x016A 793 + #define MTXORB_FTDI_RANGE_016B_PID 0x016B 794 + #define MTXORB_FTDI_RANGE_016C_PID 0x016C 795 + #define MTXORB_FTDI_RANGE_016D_PID 0x016D 796 + #define MTXORB_FTDI_RANGE_016E_PID 0x016E 797 + #define MTXORB_FTDI_RANGE_016F_PID 0x016F 798 + #define MTXORB_FTDI_RANGE_0170_PID 0x0170 799 + #define MTXORB_FTDI_RANGE_0171_PID 0x0171 800 + #define MTXORB_FTDI_RANGE_0172_PID 0x0172 801 + #define MTXORB_FTDI_RANGE_0173_PID 0x0173 802 + #define MTXORB_FTDI_RANGE_0174_PID 0x0174 803 + #define MTXORB_FTDI_RANGE_0175_PID 0x0175 804 + #define MTXORB_FTDI_RANGE_0176_PID 0x0176 805 + #define MTXORB_FTDI_RANGE_0177_PID 0x0177 806 + #define MTXORB_FTDI_RANGE_0178_PID 0x0178 807 + #define MTXORB_FTDI_RANGE_0179_PID 0x0179 808 + #define MTXORB_FTDI_RANGE_017A_PID 0x017A 809 + #define MTXORB_FTDI_RANGE_017B_PID 0x017B 810 + #define MTXORB_FTDI_RANGE_017C_PID 0x017C 811 + #define MTXORB_FTDI_RANGE_017D_PID 0x017D 812 + #define MTXORB_FTDI_RANGE_017E_PID 0x017E 813 + #define MTXORB_FTDI_RANGE_017F_PID 0x017F 814 + #define MTXORB_FTDI_RANGE_0180_PID 0x0180 815 + #define MTXORB_FTDI_RANGE_0181_PID 0x0181 816 + #define MTXORB_FTDI_RANGE_0182_PID 0x0182 817 + #define MTXORB_FTDI_RANGE_0183_PID 0x0183 818 + #define MTXORB_FTDI_RANGE_0184_PID 0x0184 819 + #define MTXORB_FTDI_RANGE_0185_PID 0x0185 820 + #define MTXORB_FTDI_RANGE_0186_PID 0x0186 821 + #define MTXORB_FTDI_RANGE_0187_PID 0x0187 822 + #define MTXORB_FTDI_RANGE_0188_PID 0x0188 823 + #define MTXORB_FTDI_RANGE_0189_PID 0x0189 824 + #define MTXORB_FTDI_RANGE_018A_PID 0x018A 825 + #define MTXORB_FTDI_RANGE_018B_PID 0x018B 826 + #define MTXORB_FTDI_RANGE_018C_PID 0x018C 827 + #define MTXORB_FTDI_RANGE_018D_PID 0x018D 828 + #define MTXORB_FTDI_RANGE_018E_PID 0x018E 829 + #define MTXORB_FTDI_RANGE_018F_PID 0x018F 830 + #define MTXORB_FTDI_RANGE_0190_PID 0x0190 831 + #define MTXORB_FTDI_RANGE_0191_PID 0x0191 832 + #define MTXORB_FTDI_RANGE_0192_PID 0x0192 833 + #define MTXORB_FTDI_RANGE_0193_PID 0x0193 834 + #define MTXORB_FTDI_RANGE_0194_PID 0x0194 835 + #define MTXORB_FTDI_RANGE_0195_PID 0x0195 836 + #define MTXORB_FTDI_RANGE_0196_PID 0x0196 837 + #define MTXORB_FTDI_RANGE_0197_PID 0x0197 838 + #define MTXORB_FTDI_RANGE_0198_PID 0x0198 839 + #define MTXORB_FTDI_RANGE_0199_PID 0x0199 840 + #define MTXORB_FTDI_RANGE_019A_PID 0x019A 841 + #define MTXORB_FTDI_RANGE_019B_PID 0x019B 842 + #define MTXORB_FTDI_RANGE_019C_PID 0x019C 843 + #define MTXORB_FTDI_RANGE_019D_PID 0x019D 844 + #define MTXORB_FTDI_RANGE_019E_PID 0x019E 845 + #define MTXORB_FTDI_RANGE_019F_PID 0x019F 846 + #define MTXORB_FTDI_RANGE_01A0_PID 0x01A0 847 + #define MTXORB_FTDI_RANGE_01A1_PID 0x01A1 848 + #define MTXORB_FTDI_RANGE_01A2_PID 0x01A2 849 + #define MTXORB_FTDI_RANGE_01A3_PID 0x01A3 850 + #define MTXORB_FTDI_RANGE_01A4_PID 0x01A4 851 + #define MTXORB_FTDI_RANGE_01A5_PID 0x01A5 852 + #define MTXORB_FTDI_RANGE_01A6_PID 0x01A6 853 + #define MTXORB_FTDI_RANGE_01A7_PID 0x01A7 854 + #define MTXORB_FTDI_RANGE_01A8_PID 0x01A8 855 + #define MTXORB_FTDI_RANGE_01A9_PID 0x01A9 856 + #define MTXORB_FTDI_RANGE_01AA_PID 0x01AA 857 + #define MTXORB_FTDI_RANGE_01AB_PID 0x01AB 858 + #define MTXORB_FTDI_RANGE_01AC_PID 0x01AC 859 + #define MTXORB_FTDI_RANGE_01AD_PID 0x01AD 860 + #define MTXORB_FTDI_RANGE_01AE_PID 0x01AE 861 + #define MTXORB_FTDI_RANGE_01AF_PID 0x01AF 862 + #define MTXORB_FTDI_RANGE_01B0_PID 0x01B0 863 + #define MTXORB_FTDI_RANGE_01B1_PID 0x01B1 864 + #define MTXORB_FTDI_RANGE_01B2_PID 0x01B2 865 + #define MTXORB_FTDI_RANGE_01B3_PID 0x01B3 866 + #define MTXORB_FTDI_RANGE_01B4_PID 0x01B4 867 + #define MTXORB_FTDI_RANGE_01B5_PID 0x01B5 868 + #define MTXORB_FTDI_RANGE_01B6_PID 0x01B6 869 + #define MTXORB_FTDI_RANGE_01B7_PID 0x01B7 870 + #define MTXORB_FTDI_RANGE_01B8_PID 0x01B8 871 + #define MTXORB_FTDI_RANGE_01B9_PID 0x01B9 872 + #define MTXORB_FTDI_RANGE_01BA_PID 0x01BA 873 + #define MTXORB_FTDI_RANGE_01BB_PID 0x01BB 874 + #define MTXORB_FTDI_RANGE_01BC_PID 0x01BC 875 + #define MTXORB_FTDI_RANGE_01BD_PID 0x01BD 876 + #define MTXORB_FTDI_RANGE_01BE_PID 0x01BE 877 + #define MTXORB_FTDI_RANGE_01BF_PID 0x01BF 878 + #define MTXORB_FTDI_RANGE_01C0_PID 0x01C0 879 + #define MTXORB_FTDI_RANGE_01C1_PID 0x01C1 880 + #define MTXORB_FTDI_RANGE_01C2_PID 0x01C2 881 + #define MTXORB_FTDI_RANGE_01C3_PID 0x01C3 882 + #define MTXORB_FTDI_RANGE_01C4_PID 0x01C4 883 + #define MTXORB_FTDI_RANGE_01C5_PID 0x01C5 884 + #define MTXORB_FTDI_RANGE_01C6_PID 0x01C6 885 + #define MTXORB_FTDI_RANGE_01C7_PID 0x01C7 886 + #define MTXORB_FTDI_RANGE_01C8_PID 0x01C8 887 + #define MTXORB_FTDI_RANGE_01C9_PID 0x01C9 888 + #define MTXORB_FTDI_RANGE_01CA_PID 0x01CA 889 + #define MTXORB_FTDI_RANGE_01CB_PID 0x01CB 890 + #define MTXORB_FTDI_RANGE_01CC_PID 0x01CC 891 + #define MTXORB_FTDI_RANGE_01CD_PID 0x01CD 892 + #define MTXORB_FTDI_RANGE_01CE_PID 0x01CE 893 + #define MTXORB_FTDI_RANGE_01CF_PID 0x01CF 894 + #define MTXORB_FTDI_RANGE_01D0_PID 0x01D0 895 + #define MTXORB_FTDI_RANGE_01D1_PID 0x01D1 896 + #define MTXORB_FTDI_RANGE_01D2_PID 0x01D2 897 + #define MTXORB_FTDI_RANGE_01D3_PID 0x01D3 898 + #define MTXORB_FTDI_RANGE_01D4_PID 0x01D4 899 + #define MTXORB_FTDI_RANGE_01D5_PID 0x01D5 900 + #define MTXORB_FTDI_RANGE_01D6_PID 0x01D6 901 + #define MTXORB_FTDI_RANGE_01D7_PID 0x01D7 902 + #define MTXORB_FTDI_RANGE_01D8_PID 0x01D8 903 + #define MTXORB_FTDI_RANGE_01D9_PID 0x01D9 904 + #define MTXORB_FTDI_RANGE_01DA_PID 0x01DA 905 + #define MTXORB_FTDI_RANGE_01DB_PID 0x01DB 906 + #define MTXORB_FTDI_RANGE_01DC_PID 0x01DC 907 + #define MTXORB_FTDI_RANGE_01DD_PID 0x01DD 908 + #define MTXORB_FTDI_RANGE_01DE_PID 0x01DE 909 + #define MTXORB_FTDI_RANGE_01DF_PID 0x01DF 910 + #define MTXORB_FTDI_RANGE_01E0_PID 0x01E0 911 + #define MTXORB_FTDI_RANGE_01E1_PID 0x01E1 912 + #define MTXORB_FTDI_RANGE_01E2_PID 0x01E2 913 + #define MTXORB_FTDI_RANGE_01E3_PID 0x01E3 914 + #define MTXORB_FTDI_RANGE_01E4_PID 0x01E4 915 + #define MTXORB_FTDI_RANGE_01E5_PID 0x01E5 916 + #define MTXORB_FTDI_RANGE_01E6_PID 0x01E6 917 + #define MTXORB_FTDI_RANGE_01E7_PID 0x01E7 918 + #define MTXORB_FTDI_RANGE_01E8_PID 0x01E8 919 + #define MTXORB_FTDI_RANGE_01E9_PID 0x01E9 920 + #define MTXORB_FTDI_RANGE_01EA_PID 0x01EA 921 + #define MTXORB_FTDI_RANGE_01EB_PID 0x01EB 922 + #define MTXORB_FTDI_RANGE_01EC_PID 0x01EC 923 + #define MTXORB_FTDI_RANGE_01ED_PID 0x01ED 924 + #define MTXORB_FTDI_RANGE_01EE_PID 0x01EE 925 + #define MTXORB_FTDI_RANGE_01EF_PID 0x01EF 926 + #define MTXORB_FTDI_RANGE_01F0_PID 0x01F0 927 + #define MTXORB_FTDI_RANGE_01F1_PID 0x01F1 928 + #define MTXORB_FTDI_RANGE_01F2_PID 0x01F2 929 + #define MTXORB_FTDI_RANGE_01F3_PID 0x01F3 930 + #define MTXORB_FTDI_RANGE_01F4_PID 0x01F4 931 + #define MTXORB_FTDI_RANGE_01F5_PID 0x01F5 932 + #define MTXORB_FTDI_RANGE_01F6_PID 0x01F6 933 + #define MTXORB_FTDI_RANGE_01F7_PID 0x01F7 934 + #define MTXORB_FTDI_RANGE_01F8_PID 0x01F8 935 + #define MTXORB_FTDI_RANGE_01F9_PID 0x01F9 936 + #define MTXORB_FTDI_RANGE_01FA_PID 0x01FA 937 + #define MTXORB_FTDI_RANGE_01FB_PID 0x01FB 938 + #define MTXORB_FTDI_RANGE_01FC_PID 0x01FC 939 + #define MTXORB_FTDI_RANGE_01FD_PID 0x01FD 940 + #define MTXORB_FTDI_RANGE_01FE_PID 0x01FE 941 + #define MTXORB_FTDI_RANGE_01FF_PID 0x01FF 942 + 943 + 944 + 945 + /* 946 + * The Mobility Lab (TML) 947 + * Submitted by Pierre Castella 948 + */ 949 + #define TML_VID 0x1B91 /* Vendor ID */ 950 + #define TML_USB_SERIAL_PID 0x0064 /* USB - Serial Converter */ 951 + 952 + /* Alti-2 products http://www.alti-2.com */ 953 + #define ALTI2_VID 0x1BC9 954 + #define ALTI2_N3_PID 0x6001 /* Neptune 3 */ 955 + 956 + /* 957 + * Dresden Elektronic Sensor Terminal Board 958 + */ 959 + #define DE_VID 0x1cf1 /* Vendor ID */ 960 + #define STB_PID 0x0001 /* Sensor Terminal Board */ 961 + #define WHT_PID 0x0004 /* Wireless Handheld Terminal */ 962 + 963 + /* 964 + * Papouch products (http://www.papouch.com/) 965 + * Submitted by Folkert van Heusden 966 + */ 967 + 968 + #define PAPOUCH_VID 0x5050 /* Vendor ID */ 969 + #define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ 970 + #define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ 971 + 972 + /* 973 + * Marvell SheevaPlug 974 + */ 975 + #define MARVELL_VID 0x9e88 976 + #define MARVELL_SHEEVAPLUG_PID 0x9e8f 977 + 978 + /* 979 + * Evolution Robotics products (http://www.evolution.com/). 980 + * Submitted by Shawn M. Lavelle. 981 + */ 982 + #define EVOLUTION_VID 0xDEEE /* Vendor ID */ 983 + #define EVOLUTION_ER1_PID 0x0300 /* ER1 Control Module */ 984 + #define EVO_8U232AM_PID 0x02FF /* Evolution robotics RCM2 (FT232AM)*/ 985 + #define EVO_HYBRID_PID 0x0302 /* Evolution robotics RCM4 PID (FT232BM)*/ 986 + #define EVO_RCM4_PID 0x0303 /* Evolution robotics RCM4 PID */
+5 -2
drivers/usb/serial/mos7840.c
··· 127 127 #define BANDB_DEVICE_ID_US9ML2_4 0xAC30 128 128 #define BANDB_DEVICE_ID_USPTL4_2 0xAC31 129 129 #define BANDB_DEVICE_ID_USPTL4_4 0xAC32 130 - #define BANDB_DEVICE_ID_USOPTL4_2 0xAC42 131 - #define BANDB_DEVICE_ID_USOPTL4_4 0xAC44 130 + #define BANDB_DEVICE_ID_USOPTL4_2 0xAC42 131 + #define BANDB_DEVICE_ID_USOPTL4_4 0xAC44 132 + #define BANDB_DEVICE_ID_USOPTL2_4 0xAC24 132 133 133 134 /* This driver also supports 134 135 * ATEN UC2324 device using Moschip MCS7840 ··· 192 191 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_4)}, 193 192 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, 194 193 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, 194 + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL2_4)}, 195 195 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)}, 196 196 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)}, 197 197 {} /* terminating entry */ ··· 209 207 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_4)}, 210 208 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, 211 209 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, 210 + {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL2_4)}, 212 211 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)}, 213 212 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)}, 214 213 {} /* terminating entry */
+5
drivers/usb/serial/option.c
··· 340 340 #define FOUR_G_SYSTEMS_VENDOR_ID 0x1c9e 341 341 #define FOUR_G_SYSTEMS_PRODUCT_W14 0x9603 342 342 343 + /* Haier products */ 344 + #define HAIER_VENDOR_ID 0x201e 345 + #define HAIER_PRODUCT_CE100 0x2009 346 + 343 347 static struct usb_device_id option_ids[] = { 344 348 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, 345 349 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, ··· 645 641 { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) }, 646 642 { USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) }, 647 643 { USB_DEVICE(FOUR_G_SYSTEMS_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14) }, 644 + { USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_CE100) }, 648 645 { } /* Terminating entry */ 649 646 }; 650 647 MODULE_DEVICE_TABLE(usb, option_ids);