[PATCH v14 0/4] HID: nintendo: Add preliminary Switch 2 controller driver
From: Vicki Pfau <vi@endrift.com>
Date: 2026-09-29 04:58:15
This adds a new driver for the Switch 2 controllers. The Switch 2 uses an unusual split-interface design such that input and rumble occur on the main HID interface, but all other communication occurs over a "configuration" interface. This is the case on both USB and Bluetooth, so this new driver uses a split-driver design with the HID interface being the "main" driver and the configuration interface is a secondary driver that looks up to the HID interface, sharing resources on a common struct. Due to using a non-standard pairing interface as well as Bluetooth communications being extremely limited in the kernel, a custom interface between userspace and the kernel will need to be designed, along with bringup in BlueZ. That is beyond the scope of this initial patch, which only contains the generic HID and USB configuration interface drivers. This initial work supports general input for the Joy-Con 2, Pro Controller 2, and GameCube NSO controllers. IMU, rumble and battery support is not yet present. Since v13 two changes were made: - The nintendo-switch2-usb supplementary driver was renamed to hid-nintendo-switch2-usb and moved into the drivers/hid directory. - An additional patch was added, allowing the NYXI Hyperion 3 third-party controller to work properly, as it had a broken report descriptor. Vicki Pfau (4): HID: nintendo: Add preliminary Switch 2 controller driver HID: nintendo: Add rumble support for Switch 2 controllers HID: nintendo: Add unified report format support HID: nintendo: Patch NYXI Hyperion 3 descriptor MAINTAINERS | 1 + drivers/hid/Kconfig | 30 +- drivers/hid/Makefile | 1 + drivers/hid/hid-ids.h | 4 + drivers/hid/hid-nintendo-switch2-usb.c | 475 +++++++ drivers/hid/hid-nintendo.c | 1701 +++++++++++++++++++++++- drivers/hid/hid-nintendo.h | 72 + 7 files changed, 2241 insertions(+), 43 deletions(-) create mode 100644 drivers/hid/hid-nintendo-switch2-usb.c create mode 100644 drivers/hid/hid-nintendo.h -- 2.54.0