This introduces a new driver for the Xbox One/Series controller protocol,
officially known as the Gaming Input Protocol, or GIP for short.
Microsoft released documentation on (some of) GIP in late 2024, upon which
this driver is based. Though the documentation was incomplete, it still
provided enough information to warrant a clean start over the previous,
incomplete implementation.
This driver is already at feature parity with the GIP support in xpad,
along with several more enhancements:
- Proper support for parsing message length and fragmented messages
- Metadata parsing, allowing for auto-detection on various parameters,
including the presence and location in the message of the share button,
as well as detection of specific device types
- Controllable LED support
- HID passthrough for the Chatpad
- Preliminary support for racing wheels and flight sticks
The framework set out in this driver also allows future expansion for
specialized device types and additional features more cleanly than xpad.
Future plans include:
- Improved support for racing wheels and flight sticks, including force
feedback and LED support.
- Support for the security handshake, which is required for devices that use
wireless dongles.
- Exposing a raw character device to enable sending vendor-specific commands
from userspace.
- Event logging to either sysfs or dmesg.
- Support for the headphone jack.
Also included in this series is the addition of three new ABS input types, with
the two relevant ones to HID added to the mappings
Vicki Pfau (6):
Input: xbox_gip - Add new driver for Xbox GIP
Input: xpad - Remove Xbox One support
Input: Add ABS_CLUTCH, HANDBRAKE, and SHIFTER
HID: Map more automobile simulation inputs
Input: xbox_gip - Add wheel support
Input: xbox_gip - Add flight stick support
Documentation/input/devices/xpad.rst | 17 +-
MAINTAINERS | 6 +
drivers/hid/hid-debug.c | 16 +-
drivers/hid/hid-input.c | 2 +
drivers/input/joystick/Kconfig | 26 +
drivers/input/joystick/Makefile | 1 +
drivers/input/joystick/xbox_gip.c | 3434 ++++++++++++++++++++++++
drivers/input/joystick/xpad.c | 634 +----
include/uapi/linux/input-event-codes.h | 3 +
9 files changed, 3492 insertions(+), 647 deletions(-)
create mode 100644 drivers/input/joystick/xbox_gip.c
--
2.50.1