Switch 2 Pro Controller (057e:2069) detected but button inputs not working on Raspberry Pi Linux

Open
#7,374 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
c, linux, raspberry-pi

Research direction

Start with the HID descriptor and the kernel logs showing the controller bound to hid-generic rather than hid-nintendo. Review how the hid-nintendo driver handles input reports, then reproduce with evtest and jstest on the listed Raspberry Pi system. Done means button presses generate EV_KEY events while the existing analog axes continue to work.

Written by the indexing model from the issue text.

Description

switch2_diagnostic_20260515_132643.log

Describe the bug

The Nintendo Switch 2 Pro Controller (USB VID: 057e, PID: 2069) is detected on Raspberry Pi Linux, but button inputs do not work.

The device is recognized and creates input nodes (/dev/input/js* and /dev/input/event*), however only analog axes respond. Button presses are not registered in evtest or the Linux input subsystem.

The controller is bound to hid-generic instead of hid-nintendo, and no button events are generated.

Steps to reproduce the behaviour

Steps to reproduce the behaviour

  1. Connect Nintendo Switch 2 Pro Controller via USB to Raspberry Pi
  2. Boot Raspberry Pi OS / ReplayOS (Debian 13 kernel 6.12.x)
  3. Check device creation:
    • /dev/input/js1
    • /dev/input/event3
  4. Run:
    • jstest /dev/input/js1
    • evtest /dev/input/event3
  5. Press any button on the controller

Expected: Button inputs should be detected
Actual: No button events are registered

Device (s)

Raspberry Pi 3 Mod. B

System

System

  • Device: Raspberry Pi 3 B
  • OS: Debian GNU/Linux 13 (trixie)
  • Kernel: 6.12.75+rpt-rpi-v8
  • Architecture: aarch64
  • Controller: Nintendo Switch 2 Pro Controller (057e:2069)
  • Driver in use: hid-generic
  • hid-nintendo driver: not bound to device
Logs

Logs

USB detection

Bus 001 Device 005: ID 057e:2069 Nintendo Switch 2 Pro Controller


Kernel logs

hid-generic 0003:057E:2069.0001:
input,hidraw0: USB HID v1.11 Gamepad [Nintendo Switch 2 Pro Controller]

hid-generic 0003:057E:2069.0002:
input,hidraw0: USB HID v1.11 Gamepad [Nintendo Switch 2 Pro Controller]


jstest output

Axes (X, Y, Rx, Rz): working

Buttons:

  • 21 buttons detected
  • No state changes when pressing buttons

evtest output

Device: Nintendo Switch 2 Pro Controller

Supported events:

  • EV_KEY
  • EV_ABS

Result:
No EV_KEY events generated on button press


HID descriptor (usbhid-dump)

05 01 09 05 A1 01 85 05 05 FF 09 01 15 00 26 FF
00 95 3F 75 08 81 02 85 09 09 01 95 02 81 02 05
09 19 01 29 15 25 01 95 15 75 01 81 02 95 01 75
03 81 03 05 01 09 01 A1 00 09 30 09 31 09 33 09
35 26 FF 0F 95 04 75 0C 81 02 C0 05 FF 09 02 26
FF 00 95 34 75 08 81 02 85 02 09 01 95 3F 91 02
C0

Key insight:
95 15 75 01 81 02 → 21 buttons, bit-packed input report

Additional context

]

Dominant language
C
Stars
13.2k
Forks
5.5k
Avg merge
2d 21h
Merged PRs (30d)
21

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from raspberrypi/linux

All issues in raspberrypi/linux

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.