| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * X-Box gamepad driver |
|---|
| 3 | 4 | * |
|---|
| .. | .. |
|---|
| 10 | 11 | * 2006 Adam Buchbinder <adam.buchbinder@gmail.com> |
|---|
| 11 | 12 | * 2007 Jan Kratochvil <honza@jikos.cz> |
|---|
| 12 | 13 | * 2010 Christoph Fritz <chf.fritz@googlemail.com> |
|---|
| 13 | | - * |
|---|
| 14 | | - * This program is free software; you can redistribute it and/or |
|---|
| 15 | | - * modify it under the terms of the GNU General Public License as |
|---|
| 16 | | - * published by the Free Software Foundation; either version 2 of |
|---|
| 17 | | - * the License, or (at your option) any later version. |
|---|
| 18 | | - * |
|---|
| 19 | | - * This program is distributed in the hope that it will be useful, |
|---|
| 20 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 21 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 22 | | - * GNU General Public License for more details. |
|---|
| 23 | | - * |
|---|
| 24 | | - * You should have received a copy of the GNU General Public License |
|---|
| 25 | | - * along with this program; if not, write to the Free Software |
|---|
| 26 | | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|---|
| 27 | | - * |
|---|
| 28 | 14 | * |
|---|
| 29 | 15 | * This driver is based on: |
|---|
| 30 | 16 | * - information from http://euc.jp/periphs/xbox-controller.ja.html |
|---|
| .. | .. |
|---|
| 126 | 112 | u8 xtype; |
|---|
| 127 | 113 | } xpad_device[] = { |
|---|
| 128 | 114 | { 0x0079, 0x18d4, "GPD Win 2 X-Box Controller", 0, XTYPE_XBOX360 }, |
|---|
| 115 | + { 0x03eb, 0xff01, "Wooting One (Legacy)", 0, XTYPE_XBOX360 }, |
|---|
| 116 | + { 0x03eb, 0xff02, "Wooting Two (Legacy)", 0, XTYPE_XBOX360 }, |
|---|
| 129 | 117 | { 0x044f, 0x0f00, "Thrustmaster Wheel", 0, XTYPE_XBOX }, |
|---|
| 130 | 118 | { 0x044f, 0x0f03, "Thrustmaster Wheel", 0, XTYPE_XBOX }, |
|---|
| 131 | 119 | { 0x044f, 0x0f07, "Thrustmaster, Inc. Controller", 0, XTYPE_XBOX }, |
|---|
| .. | .. |
|---|
| 256 | 244 | { 0x0f0d, 0x0063, "Hori Real Arcade Pro Hayabusa (USA) Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, |
|---|
| 257 | 245 | { 0x0f0d, 0x0067, "HORIPAD ONE", 0, XTYPE_XBOXONE }, |
|---|
| 258 | 246 | { 0x0f0d, 0x0078, "Hori Real Arcade Pro V Kai Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, |
|---|
| 247 | + { 0x0f0d, 0x00c5, "Hori Fighting Commander ONE", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, |
|---|
| 259 | 248 | { 0x0f30, 0x010b, "Philips Recoil", 0, XTYPE_XBOX }, |
|---|
| 260 | 249 | { 0x0f30, 0x0202, "Joytech Advanced Controller", 0, XTYPE_XBOX }, |
|---|
| 261 | 250 | { 0x0f30, 0x8888, "BigBen XBMiniPad Controller", 0, XTYPE_XBOX }, |
|---|
| .. | .. |
|---|
| 272 | 261 | { 0x1430, 0x8888, "TX6500+ Dance Pad (first generation)", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX }, |
|---|
| 273 | 262 | { 0x1430, 0xf801, "RedOctane Controller", 0, XTYPE_XBOX360 }, |
|---|
| 274 | 263 | { 0x146b, 0x0601, "BigBen Interactive XBOX 360 Controller", 0, XTYPE_XBOX360 }, |
|---|
| 264 | + { 0x146b, 0x0604, "Bigben Interactive DAIJA Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, |
|---|
| 275 | 265 | { 0x1532, 0x0037, "Razer Sabertooth", 0, XTYPE_XBOX360 }, |
|---|
| 276 | 266 | { 0x1532, 0x0a00, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, |
|---|
| 277 | 267 | { 0x1532, 0x0a03, "Razer Wildcat", 0, XTYPE_XBOXONE }, |
|---|
| .. | .. |
|---|
| 336 | 326 | { 0x24c6, 0x5502, "Hori Fighting Stick VX Alt", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, |
|---|
| 337 | 327 | { 0x24c6, 0x5503, "Hori Fighting Edge", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, |
|---|
| 338 | 328 | { 0x24c6, 0x5506, "Hori SOULCALIBUR V Stick", 0, XTYPE_XBOX360 }, |
|---|
| 329 | + { 0x24c6, 0x5510, "Hori Fighting Commander ONE (Xbox 360/PC Mode)", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, |
|---|
| 339 | 330 | { 0x24c6, 0x550d, "Hori GEM Xbox controller", 0, XTYPE_XBOX360 }, |
|---|
| 340 | 331 | { 0x24c6, 0x550e, "Hori Real Arcade Pro V Kai 360", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, |
|---|
| 341 | 332 | { 0x24c6, 0x551a, "PowerA FUSION Pro Controller", 0, XTYPE_XBOXONE }, |
|---|
| .. | .. |
|---|
| 345 | 336 | { 0x24c6, 0x5b03, "Thrustmaster Ferrari 458 Racing Wheel", 0, XTYPE_XBOX360 }, |
|---|
| 346 | 337 | { 0x24c6, 0x5d04, "Razer Sabertooth", 0, XTYPE_XBOX360 }, |
|---|
| 347 | 338 | { 0x24c6, 0xfafe, "Rock Candy Gamepad for Xbox 360", 0, XTYPE_XBOX360 }, |
|---|
| 339 | + { 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 }, |
|---|
| 340 | + { 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE }, |
|---|
| 341 | + { 0x31e3, 0x1100, "Wooting One", 0, XTYPE_XBOX360 }, |
|---|
| 342 | + { 0x31e3, 0x1200, "Wooting Two", 0, XTYPE_XBOX360 }, |
|---|
| 343 | + { 0x31e3, 0x1210, "Wooting Lekker", 0, XTYPE_XBOX360 }, |
|---|
| 344 | + { 0x31e3, 0x1220, "Wooting Two HE", 0, XTYPE_XBOX360 }, |
|---|
| 345 | + { 0x31e3, 0x1300, "Wooting 60HE (AVR)", 0, XTYPE_XBOX360 }, |
|---|
| 346 | + { 0x31e3, 0x1310, "Wooting 60HE (ARM)", 0, XTYPE_XBOX360 }, |
|---|
| 348 | 347 | { 0x3285, 0x0607, "Nacon GC-100", 0, XTYPE_XBOX360 }, |
|---|
| 349 | 348 | { 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX }, |
|---|
| 350 | 349 | { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX }, |
|---|
| .. | .. |
|---|
| 430 | 429 | static const struct usb_device_id xpad_table[] = { |
|---|
| 431 | 430 | { USB_INTERFACE_INFO('X', 'B', 0) }, /* X-Box USB-IF not approved class */ |
|---|
| 432 | 431 | XPAD_XBOX360_VENDOR(0x0079), /* GPD Win 2 Controller */ |
|---|
| 432 | + XPAD_XBOX360_VENDOR(0x03eb), /* Wooting Keyboards (Legacy) */ |
|---|
| 433 | 433 | XPAD_XBOX360_VENDOR(0x044f), /* Thrustmaster X-Box 360 controllers */ |
|---|
| 434 | 434 | XPAD_XBOX360_VENDOR(0x045e), /* Microsoft X-Box 360 controllers */ |
|---|
| 435 | 435 | XPAD_XBOXONE_VENDOR(0x045e), /* Microsoft X-Box One controllers */ |
|---|
| .. | .. |
|---|
| 440 | 440 | { USB_DEVICE(0x0738, 0x4540) }, /* Mad Catz Beat Pad */ |
|---|
| 441 | 441 | XPAD_XBOXONE_VENDOR(0x0738), /* Mad Catz FightStick TE 2 */ |
|---|
| 442 | 442 | XPAD_XBOX360_VENDOR(0x07ff), /* Mad Catz GamePad */ |
|---|
| 443 | + XPAD_XBOX360_VENDOR(0x0c12), /* Zeroplus X-Box 360 controllers */ |
|---|
| 443 | 444 | XPAD_XBOX360_VENDOR(0x0e6f), /* 0x0e6f X-Box 360 controllers */ |
|---|
| 444 | 445 | XPAD_XBOXONE_VENDOR(0x0e6f), /* 0x0e6f X-Box One controllers */ |
|---|
| 445 | 446 | XPAD_XBOX360_VENDOR(0x0f0d), /* Hori Controllers */ |
|---|
| .. | .. |
|---|
| 460 | 461 | XPAD_XBOXONE_VENDOR(0x20d6), /* PowerA Controllers */ |
|---|
| 461 | 462 | XPAD_XBOX360_VENDOR(0x24c6), /* PowerA Controllers */ |
|---|
| 462 | 463 | XPAD_XBOXONE_VENDOR(0x24c6), /* PowerA Controllers */ |
|---|
| 464 | + XPAD_XBOX360_VENDOR(0x2563), /* OneXPlayer Gamepad */ |
|---|
| 465 | + XPAD_XBOX360_VENDOR(0x260d), /* Dareu H101 */ |
|---|
| 466 | + XPAD_XBOXONE_VENDOR(0x2dc8), /* 8BitDo Pro 2 Wired Controller for Xbox */ |
|---|
| 463 | 467 | XPAD_XBOXONE_VENDOR(0x2e24), /* Hyperkin Duke X-Box One pad */ |
|---|
| 464 | 468 | XPAD_XBOX360_VENDOR(0x2f24), /* GameSir Controllers */ |
|---|
| 469 | + XPAD_XBOX360_VENDOR(0x31e3), /* Wooting Keyboards */ |
|---|
| 465 | 470 | XPAD_XBOX360_VENDOR(0x3285), /* Nacon GC-100 */ |
|---|
| 466 | 471 | { } |
|---|
| 467 | 472 | }; |
|---|
| .. | .. |
|---|
| 1978 | 1983 | .disconnect = xpad_disconnect, |
|---|
| 1979 | 1984 | .suspend = xpad_suspend, |
|---|
| 1980 | 1985 | .resume = xpad_resume, |
|---|
| 1981 | | - .reset_resume = xpad_resume, |
|---|
| 1982 | 1986 | .id_table = xpad_table, |
|---|
| 1983 | 1987 | }; |
|---|
| 1984 | 1988 | |
|---|