1/*
2 Simple DirectMedia Layer
3 Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
4
5 This software is provided 'as-is', without any express or implied
6 warranty. In no event will the authors be held liable for any damages
7 arising from the use of this software.
8
9 Permission is granted to anyone to use this software for any purpose,
10 including commercial applications, and to alter it and redistribute it
11 freely, subject to the following restrictions:
12
13 1. The origin of this software must not be misrepresented; you must not
14 claim that you wrote the original software. If you use this software
15 in a product, an acknowledgment in the product documentation would be
16 appreciated but is not required.
17 2. Altered source versions must be plainly marked as such, and must not be
18 misrepresented as being the original software.
19 3. This notice may not be removed or altered from any source distribution.
20*/
21
22#ifndef usb_ids_h_
23#define usb_ids_h_
24
25// Definitions of useful USB VID/PID values
26
27#define USB_VENDOR_8BITDO 0x2dc8
28#define USB_VENDOR_AMAZON 0x1949
29#define USB_VENDOR_APPLE 0x05ac
30#define USB_VENDOR_ASTRO 0x9886
31#define USB_VENDOR_ASUS 0x0b05
32#define USB_VENDOR_BACKBONE 0x358a
33#define USB_VENDOR_GAMESIR 0x3537
34#define USB_VENDOR_DRAGONRISE 0x0079
35#define USB_VENDOR_GOOGLE 0x18d1
36#define USB_VENDOR_HORI 0x0f0d
37#define USB_VENDOR_HP 0x03f0
38#define USB_VENDOR_HYPERKIN 0x2e24
39#define USB_VENDOR_LOGITECH 0x046d
40#define USB_VENDOR_MADCATZ 0x0738
41#define USB_VENDOR_MAYFLASH 0x33df
42#define USB_VENDOR_MICROSOFT 0x045e
43#define USB_VENDOR_NACON 0x146b
44#define USB_VENDOR_NACON_ALT 0x3285
45#define USB_VENDOR_NINTENDO 0x057e
46#define USB_VENDOR_NVIDIA 0x0955
47#define USB_VENDOR_PDP 0x0e6f
48#define USB_VENDOR_POWERA 0x24c6
49#define USB_VENDOR_POWERA_ALT 0x20d6
50#define USB_VENDOR_QANBA 0x2c22
51#define USB_VENDOR_RAZER 0x1532
52#define USB_VENDOR_SAITEK 0x06a3
53#define USB_VENDOR_SHANWAN 0x2563
54#define USB_VENDOR_SHANWAN_ALT 0x20bc
55#define USB_VENDOR_SONY 0x054c
56#define USB_VENDOR_THRUSTMASTER 0x044f
57#define USB_VENDOR_TURTLE_BEACH 0x10f5
58#define USB_VENDOR_SWITCH 0x2563
59#define USB_VENDOR_VALVE 0x28de
60#define USB_VENDOR_ZEROPLUS 0x0c12
61
62#define USB_PRODUCT_8BITDO_XBOX_CONTROLLER1 0x2002 // Ultimate Wired Controller for Xbox
63#define USB_PRODUCT_8BITDO_XBOX_CONTROLLER2 0x3106 // Ultimate Wireless / Pro 2 Wired Controller
64#define USB_PRODUCT_AMAZON_LUNA_CONTROLLER 0x0419
65#define USB_PRODUCT_ASTRO_C40_XBOX360 0x0024
66#define USB_PRODUCT_BACKBONE_ONE_IOS 0x0103
67#define USB_PRODUCT_BACKBONE_ONE_IOS_PS5 0x0104
68#define USB_PRODUCT_GAMESIR_G7 0x1001
69#define USB_PRODUCT_GOOGLE_STADIA_CONTROLLER 0x9400
70#define USB_PRODUCT_EVORETRO_GAMECUBE_ADAPTER1 0x1843
71#define USB_PRODUCT_EVORETRO_GAMECUBE_ADAPTER2 0x1846
72#define USB_PRODUCT_HORI_FIGHTING_COMMANDER_OCTA_SERIES_X 0x0150
73#define USB_PRODUCT_HORI_HORIPAD_PRO_SERIES_X 0x014f
74#define USB_PRODUCT_HORI_FIGHTING_STICK_ALPHA_PS4 0x011c
75#define USB_PRODUCT_HORI_FIGHTING_STICK_ALPHA_PS5 0x0184
76#define USB_PRODUCT_HORI_FIGHTING_STICK_ALPHA_PS5 0x0184
77#define USB_PRODUCT_HORI_STEAM_CONTROLLER 0x01AB
78#define USB_PRODUCT_HORI_STEAM_CONTROLLER_BT 0x0196
79#define USB_PRODUCT_LOGITECH_F310 0xc216
80#define USB_PRODUCT_LOGITECH_CHILLSTREAM 0xcad1
81#define USB_PRODUCT_MADCATZ_SAITEK_SIDE_PANEL_CONTROL_DECK 0x2218
82#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS4_WIRELESS 0x0d16
83#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS4_WIRED 0x0d17
84#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS5_WIRELESS 0x0d18
85#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS5_WIRED 0x0d19
86#define USB_PRODUCT_NINTENDO_GAMECUBE_ADAPTER 0x0337
87#define USB_PRODUCT_NINTENDO_N64_CONTROLLER 0x2019
88#define USB_PRODUCT_NINTENDO_SEGA_GENESIS_CONTROLLER 0x201e
89#define USB_PRODUCT_NINTENDO_SNES_CONTROLLER 0x2017
90#define USB_PRODUCT_NINTENDO_SWITCH_JOYCON_GRIP 0x200e
91#define USB_PRODUCT_NINTENDO_SWITCH_JOYCON_LEFT 0x2006
92#define USB_PRODUCT_NINTENDO_SWITCH_JOYCON_PAIR 0x2008 // Used by joycond
93#define USB_PRODUCT_NINTENDO_SWITCH_JOYCON_RIGHT 0x2007
94#define USB_PRODUCT_NINTENDO_SWITCH_PRO 0x2009
95#define USB_PRODUCT_NINTENDO_WII_REMOTE 0x0306
96#define USB_PRODUCT_NINTENDO_WII_REMOTE2 0x0330
97#define USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V103 0x7210
98#define USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V104 0x7214
99#define USB_PRODUCT_RAZER_ATROX 0x0a00
100#define USB_PRODUCT_RAZER_KITSUNE 0x1012
101#define USB_PRODUCT_RAZER_PANTHERA 0x0401
102#define USB_PRODUCT_RAZER_PANTHERA_EVO 0x1008
103#define USB_PRODUCT_RAZER_RAIJU 0x1000
104#define USB_PRODUCT_RAZER_TOURNAMENT_EDITION_USB 0x1007
105#define USB_PRODUCT_RAZER_TOURNAMENT_EDITION_BLUETOOTH 0x100a
106#define USB_PRODUCT_RAZER_ULTIMATE_EDITION_USB 0x1004
107#define USB_PRODUCT_RAZER_ULTIMATE_EDITION_BLUETOOTH 0x1009
108#define USB_PRODUCT_RAZER_WOLVERINE_V2 0x0a29
109#define USB_PRODUCT_RAZER_WOLVERINE_V2_CHROMA 0x0a2e
110#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_PS5_WIRED 0x100b
111#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_PS5_WIRELESS 0x100c
112#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_XBOX_WIRED 0x1010
113#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_XBOX_WIRELESS 0x1011
114#define USB_PRODUCT_RAZER_WOLVERINE_V3_PRO 0x0a3f
115#define USB_PRODUCT_ROG_RAIKIRI 0x1a38
116#define USB_PRODUCT_SAITEK_CYBORG_V3 0xf622
117#define USB_PRODUCT_SHANWAN_DS3 0x0523
118#define USB_PRODUCT_SONY_DS3 0x0268
119#define USB_PRODUCT_SONY_DS4 0x05c4
120#define USB_PRODUCT_SONY_DS4_DONGLE 0x0ba0
121#define USB_PRODUCT_SONY_DS4_SLIM 0x09cc
122#define USB_PRODUCT_SONY_DS4_STRIKEPAD 0x05c5
123#define USB_PRODUCT_SONY_DS5 0x0ce6
124#define USB_PRODUCT_SONY_DS5_EDGE 0x0df2
125#define USB_PRODUCT_SWITCH_RETROBIT_CONTROLLER 0x0575
126#define USB_PRODUCT_THRUSTMASTER_ESWAPX_PRO_PS4 0xd00e
127#define USB_PRODUCT_THRUSTMASTER_ESWAPX_PRO_SERIES_X 0xd012
128#define USB_PRODUCT_TURTLE_BEACH_SERIES_X_REACT_R 0x7013
129#define USB_PRODUCT_TURTLE_BEACH_SERIES_X_RECON 0x7009
130#define USB_PRODUCT_VALVE_STEAM_CONTROLLER_DONGLE 0x1142
131#define USB_PRODUCT_VICTRIX_FS_PRO 0x0203
132#define USB_PRODUCT_VICTRIX_FS_PRO_V2 0x0207
133#define USB_PRODUCT_XBOX360_XUSB_CONTROLLER 0x02a1 // XUSB driver software PID
134#define USB_PRODUCT_XBOX360_WIRED_CONTROLLER 0x028e
135#define USB_PRODUCT_XBOX360_WIRELESS_RECEIVER 0x0719
136#define USB_PRODUCT_XBOX360_WIRELESS_RECEIVER_THIRDPARTY1 0x02a9
137#define USB_PRODUCT_XBOX360_WIRELESS_RECEIVER_THIRDPARTY2 0x0291
138#define USB_PRODUCT_XBOX_ONE_ADAPTIVE 0x0b0a
139#define USB_PRODUCT_XBOX_ONE_ADAPTIVE_BLUETOOTH 0x0b0c
140#define USB_PRODUCT_XBOX_ONE_ADAPTIVE_BLE 0x0b21
141#define USB_PRODUCT_XBOX_ONE_ELITE_SERIES_1 0x02e3
142#define USB_PRODUCT_XBOX_ONE_ELITE_SERIES_2 0x0b00
143#define USB_PRODUCT_XBOX_ONE_ELITE_SERIES_2_BLUETOOTH 0x0b05
144#define USB_PRODUCT_XBOX_ONE_ELITE_SERIES_2_BLE 0x0b22
145#define USB_PRODUCT_XBOX_ONE_S 0x02ea
146#define USB_PRODUCT_XBOX_ONE_S_REV1_BLUETOOTH 0x02e0
147#define USB_PRODUCT_XBOX_ONE_S_REV2_BLUETOOTH 0x02fd
148#define USB_PRODUCT_XBOX_ONE_S_REV2_BLE 0x0b20
149#define USB_PRODUCT_XBOX_SERIES_X 0x0b12
150#define USB_PRODUCT_XBOX_SERIES_X_BLE 0x0b13
151#define USB_PRODUCT_XBOX_SERIES_X_HP_HYPERX 0x08b6
152#define USB_PRODUCT_XBOX_SERIES_X_HP_HYPERX_RGB 0x07a0
153#define USB_PRODUCT_XBOX_SERIES_X_PDP_AFTERGLOW 0x02da
154#define USB_PRODUCT_XBOX_SERIES_X_PDP_BLUE 0x02d9
155#define USB_PRODUCT_XBOX_SERIES_X_POWERA_FUSION_PRO2 0x4001
156#define USB_PRODUCT_XBOX_SERIES_X_POWERA_FUSION_PRO4 0x400b
157#define USB_PRODUCT_XBOX_SERIES_X_POWERA_FUSION_PRO_WIRELESS_USB 0x4014
158#define USB_PRODUCT_XBOX_SERIES_X_POWERA_FUSION_PRO_WIRELESS_DONGLE 0x4016
159#define USB_PRODUCT_XBOX_SERIES_X_POWERA_MOGA_XP_ULTRA 0x890b
160#define USB_PRODUCT_XBOX_SERIES_X_POWERA_SPECTRA 0x4002
161#define USB_PRODUCT_XBOX_SERIES_X_VICTRIX_GAMBIT 0x02d6
162#define USB_PRODUCT_XBOX_ONE_XBOXGIP_CONTROLLER 0x02ff // XBOXGIP driver software PID
163#define USB_PRODUCT_STEAM_VIRTUAL_GAMEPAD 0x11ff
164
165// USB usage pages
166#define USB_USAGEPAGE_GENERIC_DESKTOP 0x0001
167#define USB_USAGEPAGE_BUTTON 0x0009
168
169// USB usages for USAGE_PAGE_GENERIC_DESKTOP
170#define USB_USAGE_GENERIC_POINTER 0x0001
171#define USB_USAGE_GENERIC_MOUSE 0x0002
172#define USB_USAGE_GENERIC_JOYSTICK 0x0004
173#define USB_USAGE_GENERIC_GAMEPAD 0x0005
174#define USB_USAGE_GENERIC_KEYBOARD 0x0006
175#define USB_USAGE_GENERIC_KEYPAD 0x0007
176#define USB_USAGE_GENERIC_MULTIAXISCONTROLLER 0x0008
177#define USB_USAGE_GENERIC_X 0x0030
178#define USB_USAGE_GENERIC_Y 0x0031
179#define USB_USAGE_GENERIC_Z 0x0032
180#define USB_USAGE_GENERIC_RX 0x0033
181#define USB_USAGE_GENERIC_RY 0x0034
182#define USB_USAGE_GENERIC_RZ 0x0035
183#define USB_USAGE_GENERIC_SLIDER 0x0036
184#define USB_USAGE_GENERIC_DIAL 0x0037
185#define USB_USAGE_GENERIC_WHEEL 0x0038
186#define USB_USAGE_GENERIC_HAT 0x0039
187
188/* Bluetooth SIG assigned Company Identifiers
189 https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/ */
190#define BLUETOOTH_VENDOR_AMAZON 0x0171
191
192#define BLUETOOTH_PRODUCT_LUNA_CONTROLLER 0x0419
193
194#endif // usb_ids_h_
195