$FreeBSD$

/*
 * Copyright (c) 1998 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Lennart Augustsson (augustss@carlstedt.se) at
 * Carlstedt Research & Technology.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *        This product includes software developed by the NetBSD
 *        Foundation, Inc. and its contributors.
 * 4. Neither the name of The NetBSD Foundation nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * List of known USB vendors
 */

vendor AOX		0x03e8	AOX Inc.
vendor ATMEL		0x03eb	Atmel Corporation
vendor HP		0x03f0	Hewlett Packard
vendor ADAPTEC		0x03f3	Adaptec, Inc.
vendor ACERLABS		0x0402	Acer Labs Inc.
vendor NEC		0x0409	NEC
vendor KODAK		0x040a	Eastman Kodak Corp.
vendor MELCO		0x0411	Melco Inc.
vendor ADI		0x0422	ADI Systems Inc.
vendor CATC		0x0423	Computer Access Technology Corp.
vendor GRAVIS		0x0428	Advanced Gravis Computer Tech. Ltd.
vendor SUN		0x0430	Sun Microsystems
vendor AMD		0x0438	Advanced Micro Devices
vendor LEXMARK		0x043d	Lexmark International Inc.
vendor NANAO		0x0440	NANAO Corp.
vendor ALPS		0x044e	Alps Electric Co., Ltd.
vendor THRUST		0x044f	Thrustmaster
vendor TI		0x0451	Texas Instruments
vendor ANALOGDEVICES	0x0456	Analog Devices, Inc.
vendor KYE		0x0458	KYE Systems Corp.
vendor MICROSOFT	0x045e	Microsoft
vendor PRIMAX		0x0461	Primax Electronics
vendor AMP		0x0464	AMP Incorporated
vendor CHERRY		0x046a	Cherry Mikroschalter GmbH
vendor MEGATRENDS	0x046b	American Megatrends
vendor LOGITECH		0x046d	Logitech Inc.
vendor BTC		0x046e	Behavior Tech. Computer Corporation
vendor PHILIPS		0x0471	Philips
vendor CONNECTIX	0x0478	Connectix Corp.
vendor LUCENT		0x047e	Lucent
vendor STMICRO		0x0483	STMicroelectronics
vendor ACERP		0x04a5	Acer Peripherals Inc.
vendor CANON		0x04a9	Canon Inc.
vendor CYPRESS		0x04b4	Cypress Semiconductor
vendor EPSON		0x04b8	Seiko Epson Corp.
vendor 3COMUSR		0x04c1	U.S. Robotics
vendor KONICA		0x04c8	Konica Corp.
vendor ALTEC		0x04d2	Altec Lansing Technologies, Inc.
vendor SHUTTLE		0x04e6	Shuttle Technology
vendor ANNABOOKS	0x04ed	Annabooks
vendor CHICONY		0x04f2	Chicony Electronics Co., Ltd.
vendor BROTHER		0x04f9	Brother Industries, Ltd.
vendor DALLAS		0x04fa	Dallas Semiconductor
vendor ACER		0x0502	Acer, Inc.
vendor 3COM		0x0506	3Com Corporation
vendor AZTECH		0x0509	Aztech Systems Ltd
vendor BELKIN		0x050d	Belkin Components
vendor KAWATSU		0x050f	Kawatsu Semiconductor, Inc.
vendor APC		0x051d	American Power Conversion
vendor CONNECTEK	0x0522	Advanced Connectek USA Inc.
vendor NETCHIP		0x0525	NetChip Technology
vendor ALTRA		0x0527	ALTRA
vendor ATI		0x0528	ATI Technologies, Inc.
vendor AKS		0x0529	Aladdin Knowledge Systems
vendor UNIACCESS	0x0540	Universal Access
vendor ANCHOR		0x0547	Anchor Chips Inc.
vendor VISION		0x0553	VLSI Vision Ltd.
vendor ASAHIKASEI	0x0556	Asahi Kasei Microsystems Co., Ltd
vendor ATEN		0x0557	ATEN International Co. Ltd.
vendor MUSTEK		0x055f	Mustek Systems Inc.
vendor TELEX		0x0562	Telex Communications Inc.
vendor PERACOM		0x0565	Peracom Networks Inc.
vendor WACOM		0x056a	WACOM Corp. Ltd.
vendor ETEK		0x056c	e-TEK Labs
vendor EIZO		0x056d	EIZO
vendor ELECOM		0x056e	Elecom Corp. Ltd.
vendor BAFO		0x0576	BAFO/Quality Computer Accessories
vendor YEDATA		0x057b	Y-E Data
vendor AVM		0x057c	AVM GmbH
vendor ROCKFIRE		0x0583	Rockfire
vendor ALCOR		0x058f	Alcor Micro, Inc.
vendor IOMEGA		0x059b	Iomega Corp.
vendor ATREND		0x059c	A-Trend Technology Co., Ltd.
vendor AID		0x059d	Advanced Input Devices
vendor OMNIVISION	0x05a9	OmniVision
vendor INSYSTEM		0x05ab	In-System Design
vendor APPLE		0x05ac	Apple Computer
vendor QTRONIX		0x05c7	Qtronix Corp
vendor ELSA		0x05cc	ELSA Gmbh
vendor BRAINBOXES	0x05d1	Brainboxes Limited
vendor AXIOHM		0x05d9	Axiohm Transaction Solutions
vendor EIZONANAO	0x05e7	EIZO Nanao
vendor KLSI		0x05e9	Kawasaki LSI
vendor ANKO		0x05ef	Anko Electronic Co., Ltd.
vendor PIENGINEERING	0x05f3	P.I. Engineering
vendor AOC		0x05f6	AOC International
vendor CHIC		0x05fe	Chic Technology
vendor BARCO		0x0600	Barco Display Systems
vendor BRIDGE		0x0607	Bridge Information Co., Ltd.
vendor SOLIDYEAR	0x060b	Solid Year
vendor BIORAD		0x0614	Bio-Rad Laboratories
vendor MACALLY		0x0618	Macally
vendor ACTLABS		0x061c	Act Labs, Ltd.
vendor ALARIS		0x0620	Alaris, Inc.
vendor APEX		0x0624	Apex, Inc.
vendor AVISION		0x0638	Avision, Inc.
vendor LINKSYS		0x066b	Linksys Inc.
vendor ACERSA		0x066e	Acer Semiconductor America, Inc.
vendor AIWA		0x0677	Aiwa Co., Ltd.
vendor ACARD		0x0678	ACARD Technology Corp.
vendor ADVANCELOGIC	0x0680	Avance Logic, Inc.
vendor ASKEY		0x069a	Askey Computer Corporation
vendor ALCATELT		0x06b9	Alcatel Telecom
vendor AGFA		0x06bd	AGFA-Gevaert NV
vendor ASIAMD		0x06be	Asia Microelectronic Development, Inc.
vendor BIZLINK		0x06c4	Bizlink International Corporation
vendor AASHIMA		0x06d6	Aashima Technology B.V.
vendor MULTITECH	0x06e0	MultiTech
vendor ADS		0x06e1	ADS Technologies, Inc.
vendor ALCATELM		0x06e4	Alcatel Microelectronics
vendor SIRIUS		0x06ea	Sirius Technologies
vendor BOSTON		0x06fd	Boston Acoustics
vendor SMC		0x0707	Standard Microsystems Corp
vendor AUREAL		0x0755	Aureal Semiconductor
vendor MIDIMAN		0x0763	Midiman
vendor SANDISK		0x0781	SanDisk Corp
vendor BRIMAX		0x078e	Brimax Inc.
vendor AXIS		0x0792	Axis Communications AB
vendor ABL		0x0794	ABL Electronics Corporation
vendor ALFADATA		0x079d	Alfadata Computer Corp.
vendor BE		0x07a4	Be Incorporated
vendor ADMTEK		0x07a6	ADMtek Incorporated
vendor COREGA		0x07aa	Corega
vendor ABOCOM		0x07b8	AboCom Systems, Inc.
vendor KEISOKUGIKEN	0x07c1	Keisokugiken Corp.
vendor APG		0x07c5	APG Cash Drawer
vendor BUG		0x07c8	B.U.G., Inc.
vendor ALLIEDTELESYN	0x07c9	Allied Telesyn International
vendor AVERMEDIA	0x07ca	AVerMedia Technologies, Inc.
vendor SIIG		0x07cc	SIIG
vendor APTIO		0x07d2	Aptio Products Inc.
vendor ARASAN		0x07da	Arasan Chip Systems
vendor ALLIEDCABLE	0x07e6	Allied Cable Corporation
vendor ZOOM		0x0803	Zoom Telephonics Inc.
vendor BROADLOGIC	0x0827	BroadLogic, Inc.
vendor HANDSPRING	0x082d	Handspring Inc.
vendor ACTIONSTAR	0x0835	Action Star Enterprise Co., Ltd.
vendor ACCTON		0x083a	Accton Technology Corporation
vendor DIAMOND		0x0841	Diamond
vendor NETGEAR		0x0846	BayNETGEAR Inc.
vendor ACTIVEWIRE	0x0854	ActiveWire Inc.
vendor ADESSOKBTEK	0x087c	ADESSO/Kbtek America Inc.
vendor APT		0x0880	APT Technologies Inc.
vendor BOCARESEARCH	0x0885	Boca Research, Inc.
vendor ANDREA		0x08a8	Andrea Electronics
vendor BURRBROWN	0x08bb	Burr-Brown Japan, Ltd.
vendor 2WIRE		0x08c8	2Wire, Inc
vendor AIPTEK		0x08ca	AIPTEK International Inc.
vendor BILLIONTON	0x08dd	Billionton Systems, Inc.
vendor AUTHENTEC	0x08ff	AuthenTec, Inc.
vendor ALATION		0x0910	Alation Systems, Inc.
vendor BIOMETRIC	0x0929	American Biometric Company
vendor BLUEWATER	0x0956	BlueWater Systems, Inc.
vendor AGILENT		0x0957	Agilent Technologies, Inc.
vendor ADIRONDACK	0x0976	Adirondack Wire & Cable
vendor BECKHOFF		0x0978	Beckhoff Gmbh
vendor ALTIUS		0x09b3	Altius Solutions, Inc.
vendor ARRIS		0x09c1	Arris Interactive LLC
vendor ACTIVCARD	0x09c3	ACTIVCARD, INC.
vendor ACTISYS		0x09c4	ACTiSYS Corporation
vendor AFOURTECH	0x09da	A-FOUR TECH CO., LTD.
vendor AIMEX		0x09dc	AIMEX Corporation
vendor ADDONICS		0x09df	Addonics Technologies Corp.
vendor AKAI		0x09e8	AKAI professional M.I. Corp.
vendor ARESCOM		0x09f5	ARESCOM
vendor BAY		0x09f9	Bay Associates
vendor ALTERA		0x09fb	Altera
vendor ASAHIOPTICAL	0x0a17	Asahi Optical Co., Ltd.
vendor BOCASYSTEMS	0x0a43	Boca Systems Inc.
vendor BROADCOM		0x0a5c	Broadcom Corp.
vendor MOTOROLA		0x1063	Motorola
vendor PLX		0x10b5	PLX
vendor INSIDEOUT	0x1608	Inside Out Networks
vendor ENTREGA		0x1645	Entrega
vendor ACTIONTEC	0x1668	Actiontec Electronics, Inc.
vendor DLINK		0x2001	D-Link Corp
vendor INTEL		0x8086	Intel

/*
 * List of known products.  Grouped by vendor.
 */

/* 3Com products */
product 3COM HOMECONN		0x009d	HomeConnect USB Camera
product 3COM 3C19250		0x03E8	3C19250 Ethernet adapter
product 3COM USR56K		0x3021	U.S.Robotics 56000 Voice Faxmodem Pro

product 3COMUSR USR56K		0x3021	U.S.Robotics 56000 Voice Faxmodem Pro

/* Acer Peripherals Inc. products */
product ACERP ACERSCAN_C310U	0x12a6	Acerscan C310U

/* ActiveWire Inc. products */
product ACTIVEWIRE IOBOARD	0x0100	I/O Board
product ACTIVEWIRE IOBOARD_FW1	0x0101	I/O Board, rev. 1 firmware

/* ADMtek products */
product ADMTEK PEGASUS		0x0986	AN986 USB Ethernet adapter

/* ADS products */
product ADS UBS10BT		0x0008	UBS-10BT Ethernet adapter

/* Agiler products */
product ELECOM MOUSE29UO	0x0002	mouse 29UO

/* AKS products */
product AKS USBHASP		0x0001	USB-HASP 0.06

/* Altec Lansing products */
product ALTEC ASC495		0xff05	ASC495 Speakers

/* American Power Conversion products */
product APC UPSPRO500		0x0002	Back-UPS Pro 500

/* Anchor products */
product ANCHOR EZUSB		0x2131	EZUSB

/* AOX Inc. products */
product AOX USB101		0x0008	USB ethernet controller engine

/* ATen products */
product ATEN UC1284		0x2001	Parallel printer adapter
product ATEN UC10T		0x2002	10Mbps ethernet adapter

/* Belkin products */
/*product BELKIN F5U111		0x????	F5U111 Ethernet adapter*/

/* Billionton products */
product BILLIONTON USB100	0x0986	USB100N 10/100 FastEthernet Adapter

/* Brother Industries products */
product BROTHER HL1050		0x0002	HL-1050 laser printer

/* Behavior Technology Computer products */
product BTC BTC7932		0x6782	Keyboard with mouse port

/* Canon Inc. products */
product CANON S10		0x3041	PowerShot S10

/* CATC products */
product CATC NETMATE		0x000a	Netmate ethernet adapter
product CATC NETMATE2		0x000c	Netmate2 ethernet adapter
product CATC CHIEF		0x000d	USB Chief Bus & Protocol Analyzer
product CATC ANDROMEDA		0x1237	Andromeda hub

/* Cherry products */
product CHERRY MY3000KBD	0x0001	My3000 keyboard
product CHERRY MY3000HUB	0x0003	My3000 hub

/* Chic Technology products */
product CHIC MOUSE1		0x0001	mouse

/* Chicony products */
product CHICONY KB8933		0x0001	KB-8933 keyboard

/* Connectix products */
product CONNECTIX QUICKCAM	0x0001	QuickCam

/* Corega products */
product COREGA ETHER_USB_T	0x0001	Ether USB-T
product COREGA FETHER_USB_TX	0x0004	FEther USB-TX

/* Cypress Semiconductor products */
product CYPRESS MOUSE		0x0001	mouse
product CYPRESS THERMO		0x0002	thermometer

/* D-Link products */
/*product DLINK DSBS25		0x0100	DSB-S25 serial adapter*/
product DLINK DSB650C		0x4000	10Mbps ethernet adapter
product DLINK DSB650TX		0x4002	10/100 ethernet adapter
product DLINK DSB650TX_PNA	0x4003	1/10/100 ethernet adapter

/* Dallas Semiconductor products */
product DALLAS J6502		0x4201	J-6502 speakers

/* Diamond products */
product DIAMOND RIO500USB	0x0001	Rio 500 USB

/* EIZO products */
product EIZO HUB		0x0000	hub
product EIZO MONITOR		0x0001	monitor

/* Elsa products */
product ELSA MODEM1		0x2265	ELSA Modem Board

/* Entrega products */
product ENTREGA 1S		0x0001	1S serial connector
product ENTREGA 2S		0x0002	2S serial connector
product ENTREGA 1S25		0x0003	1S25 serial connector
product ENTREGA 4S		0x0004	4S serial connector
product ENTREGA E45		0x0005	E45 Ethernet adapter
product ENTREGA CENTRONICS	0x0006	Centronics connector
product ENTREGA 1S9		0x0093	1S9 serial connector
product ENTREGA EZUSB		0x8000	EZ-USB
/*product ENTREGA SERIAL	0x8001	DB25 Serial connector*/
/*product ENTREGA SERIAL_DB9	0x8093	DB9 Serial connector*/

/* e-TEK Labs products */
product ETEK 1COM		0x8007	Serial port

/* Epson products */
product EPSON PRINTER2		0x0002	ISD USB Smart Cable for Mac
product EPSON PRINTER3		0x0003	ISD USB Smart Cable

/* Gravis products */
product GRAVIS GAMEPADPRO	0x4001	GamePad Pro

/* Handspring Inc. */
product HANDSPRING VISOR	0x0100	Handspring Visor

/* HP products */
product HP 4100C		0x0101	Scanjet 4100C
product HP S20			0x0102	Photosmart S20
product HP 5200			0x0401	Scanjet 5200
product HP 6300C		0x0601	Scanjet 6300C
product HP 970CSE		0x1004	Deskjet 970Cse
product HP P1100		0x3102	Photosmart P1100

/* Inside Out Networks products */
product INSIDEOUT EDGEPORT4	0x0001	EdgePort/4 serial ports

/* In-System products */
product INSYSTEM F5U002		0x0002	Parallel printer adapter
product INSYSTEM ISD110		0x0200  IDE adapter

/* Intel products */
product INTEL TESTBOARD		0x9890	82930 test board

/* Iomega products */
product IOMEGA ZIP100		0x0001	Zip 100

/* Kawatsu products */
product KAWATSU MH4000P		0x0003	MiniHub 4000P

/* Keisokugiken Corp. products */
product KEISOKUGIKEN USBDAQ	0x0068	HKS-0200 USBDAQ

/* Kodak products */
product KODAK DC260		0x0110	Digital Science DC260
product KODAK DC265		0x0111	Digital Science DC265
product KODAK DC290		0x0112	Digital Science DC290
product KODAK DC240		0x0120	Digital Science DC240
product KODAK DC280		0x0130	Digital Science DC280

/* Konica Corp. Products */
product KONICA CAMERA		0x0720	Digital Color Camera

/* KYE products */
product KYE NICHE		0x0001	Niche mouse
product KYE FLIGHT2000		0x1004	Flight 2000 joystick

/* Lexmark products */
product LEXMARK S2450		0x0009	Optra S 2450

/* Linksys products */
product LINKSYS USB10T		0x2202	USB10T Ethernet
product LINKSYS USB100TX	0x2203	USB100TX Ethernet

/* Logitech products */
product LOGITECH M2452		0x0203	M2452 keyboard
product LOGITECH M4848		0x0301	M4848 mouse
product LOGITECH QUICKCAM	0x0801	QuickCam
product LOGITECH QUICKCAMPRO	0x0810	QuickCam Pro
product LOGITECH N48		0xc001	N48 mouse
product LOGITECH MBA47		0xc002	M-BA47 mouse

/* Lucent products */
product LUCENT EVALKIT		0x1001	USS-720 evaluation kit

/* Macally products */
product MACALLY MOUSE1		0x0101	mouse

/* Melco Inc products */
product MELCO LUATX		0x0001	LU-ATX Ethernet

/* Microsoft products */
product MICROSOFT INTELLIMOUSE	0x0009	IntelliMouse
product MICROSOFT NATURALKBD	0x000b	Natural Keyboard Elite
product MICROSOFT DDS80		0x0014	Digital Sound System 80
product MICROSOFT SIDEWINDER	0x001a	Sidewinder Precision Racing Wheel

/* Midiman products */
product MIDIMAN MIDISPORT2X2	0x1001	Midisport 2x2

/* Motorola products */
product MOTOROLA MC141555	0x1555	MC141555 hub controller

/* MultiTech products */
product MULTITECH ATLAS		0xf101	MT5634ZBA-USB modem

/* Mustek products */
product MUSTEK MDC800		0xa800	MDC-800 digital camera

/* NEC products */
product NEC HUB			0x55aa	hub
product NEC HUB_B		0x55ab	hub

/* NetChip Technology Products */
product NETCHIP TURBOCONNECT	0x1080	Turbo-Connect

/* Netgear products */
product NETGEAR EA101		0x1001	Ethernet adapter

/* OmniVision Technologies Inc. products */
product OMNIVISION OV511	0x0511	OV511 Camera

/* Peracom products */
product PERACOM SERIAL1		0x0001	Serial Converter
product PERACOM ENET		0x0002	Ethernet adapter
product PERACOM ENET2		0x0005	Ethernet adapter

/* Philips products */
product PHILIPS DSS350		0x0101	DSS 350 Digital Speaker System
product PHILIPS DSS		0x0104	DSS XXX Digital Speaker System
product PHILIPS HUB		0x0201	hub
product PHILIPS DSS150		0x0471	DSS XXX Digital Speaker System

/* P.I. Engineering products */
product PIENGINEERING PS2USB	0x020b	PS2 to Mac USB Adapter

/* PLX products */
product PLX TESTBOARD		0x9060	test board

/* Primax products */
product PRIMAX COMFORT		0x4d01	Comfort
product PRIMAX MOUSEINABOX	0x4d02	Mouse-in-a-Box

/* Rockfire products */
product ROCKFIRE GAMEPAD	0x2033	gamepad 203USB

/* Qtronix products */
product QTRONIX 980N		0x2011	Scorpion-980N keyboard

/* SanDisk products */
product SANDISK IMAGEMATE	0x0001	USB ImageMate

/* Shuttle Technology products */
product SHUTTLE EUSB		0x0001	E-USB Bridge

/* SIIG products */
product SIIG DIGIFILMREADER	0x0004	DigiFilm-Combo Reader

/* Sirius Technologies products */
product SIRIUS ROADSTER		0x0001	NetComm Roadster II 56 USB

/* SMC products */
product SMC 2102USB		0x0100	10Mbps ethernet adapter
product SMC 2202USB		0x0200	10/100 ethernet adapter

/* SOLID YEAR products */
product SOLIDYEAR KEYBOARD	0x2101	Solid Year USB keyboard

/* STMicroelectronics products */
product STMICRO COMMUNICATOR	0x7554	USB Communicator

/* Sun Microsystems products */
product SUN KEYBOARD		0x0005	Type 6 USB
/* XXX The above is a North American PC style keyboard possibly */

/* Telex Communications products */
product TELEX MIC1		0x0001	Enhanced USB Microphone

/* Texas Intel products */
product TI UTUSB41		0x1446	UT-USB41 hub

/* Thrustmaster products */
product THRUST FUSION_PAD	0xa0a3	Fusion Digital Gamepad

/* Universal Access products */
product UNIACCESS PANACHE	0x0101	Panache Surf USB ISDN Adapter

/* Vision products */
product VISION VC6452V002	0x0002	VC6452V002 Camera

/* Wacom products */
product WACOM CT0405U		0x0000	CT-0405-U Tablet

/* Y-E Data products */
product YEDATA FLASHBUSTERU	0x0000	Flashbuster-U

/* Zoom Telephonics Inc. products */
product ZOOM 2986L		0x9700	2986L Fax modem