linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Input: xpad - add Lenovo Legion Go controllers
@ 2023-11-16 17:45 Brenton Simpson
  2023-11-16 18:20 ` Hans de Goede
  2024-01-18 18:35 ` Brenton Simpson
  0 siblings, 2 replies; 10+ messages in thread
From: Brenton Simpson @ 2023-11-16 17:45 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Erica Taylor, Vicki Pfau, nate, linux-input, linux-kernel,
	Ismael Ferreras Morezuelas, Cameron Gutman, Hans de Goede

When the controllers are both attached (or detached), they appear as
0x17ef, 0x6182.  When only one is attached, they appear as
0x17ef, 0x6184.

84 (mixed attachment) is already recognized as a gamepad by Linux.  This
patch adds 82 (both attached/detached).

These controllers have many more buttons than is typical.  With this
patch, here's what's functional when it presents as 82:

Recognized:

- X, Y, A, B
- both analog sticks, including L3/R3
- D-pad
- menu and capture buttons
- rumble

Not yet recognized:

- start, select
- 4 rear paddle buttons (Y1, Y2, Y3, M3)
- gyroscope

(There are also non-functional buttons when reporting as 84 that are
out-of-scope for this patch.)

Signed-off-by: Brenton Simpson <appsforartists@google.com>
---
 drivers/input/joystick/xpad.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index f5c21565bb3cec..ecfcea8740a009 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -127,6 +127,7 @@ static const struct xpad_device {
  u8 mapping;
  u8 xtype;
 } xpad_device[] = {
+ { 0x17ef, 0x6182, "Lenovo Legion Go Controller (unified)", 0, XTYPE_XBOX360 },
  { 0x0079, 0x18d4, "GPD Win 2 X-Box Controller", 0, XTYPE_XBOX360 },
  { 0x03eb, 0xff01, "Wooting One (Legacy)", 0, XTYPE_XBOX360 },
  { 0x03eb, 0xff02, "Wooting Two (Legacy)", 0, XTYPE_XBOX360 },
@@ -459,6 +460,7 @@ static const signed short xpad_btn_paddles[] = {

 static const struct usb_device_id xpad_table[] = {
  { USB_INTERFACE_INFO('X', 'B', 0) }, /* Xbox USB-IF not-approved class */
+ XPAD_XBOX360_VENDOR(0x17ef), /* Lenovo */
  XPAD_XBOX360_VENDOR(0x0079), /* GPD Win 2 controller */
  XPAD_XBOX360_VENDOR(0x03eb), /* Wooting Keyboards (Legacy) */
  XPAD_XBOXONE_VENDOR(0x03f0), /* HP HyperX Xbox One controllers */

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-02-09 19:27 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-16 17:45 [PATCH] Input: xpad - add Lenovo Legion Go controllers Brenton Simpson
2023-11-16 18:20 ` Hans de Goede
2024-01-18 18:35 ` Brenton Simpson
2024-01-18 18:41   ` Brenton Simpson
2024-01-19  6:16   ` Vicki Pfau
2024-01-19  8:22     ` Brenton Simpson
2024-01-30 22:32       ` Dmitry Torokhov
2024-01-30 23:19         ` [PATCH] Input: xpad - sort xpad_device by vendor and product ID Brenton Simpson
2024-02-09 18:56           ` Dmitry Torokhov
2024-02-09 19:27             ` Brenton Simpson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).