[PATCH v4 0/5] Add OneXPlayer Configuration HID Driver

Derek J. Clark posted 5 patches 1 month, 3 weeks ago
MAINTAINERS           |    6 +
drivers/hid/Kconfig   |   13 +
drivers/hid/Makefile  |    1 +
drivers/hid/hid-ids.h |    6 +
drivers/hid/hid-oxp.c | 1580 +++++++++++++++++++++++++++++++++++++++++
5 files changed, 1606 insertions(+)
create mode 100644 drivers/hid/hid-oxp.c
[PATCH v4 0/5] Add OneXPlayer Configuration HID Driver
Posted by Derek J. Clark 1 month, 3 weeks ago
Adds an HID driver for OneXPlayer HID configuration devices. There are
currently 2 generations of OneXPlayer HID protocol. The first (OneXPlayer
F1 series) only provides an RGB control interface over HID. The Second
(X1 mini series, G1 series, AOKZOE A1X) also includes a hardware level
button mapping interface, vibration intensity settings, and the ability
to switch output between xinput and a debug mode that can be used to debug
the button mapping. Some devices (G1 Series, APEX) use a hybrid of Gen1
RGB control and Gen 2 controller settings. To ensure there is no conflicts
when the driver is loaded, we skip creating the RGB interface for Gen 2
devices if there is a DMI match.

I'll also add a note that Gen 1 devices also have an interface for
setting the key map and debug mode, but that is done entirely over a
serial TTY device so it is not able to be added to this driver. There
are also some "Gen 0" devices (OneXPlayer 2 Series) also use it, but
the TTY interface also handles the RGB control so no support is
provided by this driver for those interfaces.

Signed-off-by: Derel J. Clark <derekjohn.clark@gmail.com>
---
v4:
  - Make all delayed work part of drvdata & ensure they are canceled
    during remove.

v3: https://lore.kernel.org/linux-input/20260412213444.2231505-1-derekjohn.clark@gmail.com/
  - Ensure default button map is properly init during probe.

v2: https://lore.kernel.org/linux-input/20260407041354.2283201-1-derekjohn.clark@gmail.com/
  - Add DMI quirks for certain devices that ship with both GEN1 and GEN2
    MCU to avoid clashing when initializing the RGB interface.
  - Add left & right vibration intensity attributes.
  - Add additional mappings for keyboard inputs.
  - Add a delayed work trigger to re-apply settings after the MCU
    completes initializing after a suspend/resume cycle.

v1: https://lore.kernel.org/linux-input/20260322031615.1524307-1-derekjohn.clark@gmail.com/

Derek J. Clark (5):
  HID: hid-oxp: Add OneXPlayer configuration driver
  HID: hid-oxp: Add Second Generation RGB Control
  HID: hid-oxp: Add Second Generation Gamepad Mode Switch
  HID: hid-oxp: Add Button Mapping Interface
  HID: hid-oxp: Add Vibration Intensity Attribute

 MAINTAINERS           |    6 +
 drivers/hid/Kconfig   |   13 +
 drivers/hid/Makefile  |    1 +
 drivers/hid/hid-ids.h |    6 +
 drivers/hid/hid-oxp.c | 1580 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 1606 insertions(+)
 create mode 100644 drivers/hid/hid-oxp.c

-- 
2.53.0
Re: [PATCH v4 0/5] Add OneXPlayer Configuration HID Driver
Posted by Jiri Kosina 1 month ago
On Sat, 18 Apr 2026, Derek J. Clark wrote:

> Adds an HID driver for OneXPlayer HID configuration devices. There are
> currently 2 generations of OneXPlayer HID protocol. The first (OneXPlayer
> F1 series) only provides an RGB control interface over HID. The Second
> (X1 mini series, G1 series, AOKZOE A1X) also includes a hardware level
> button mapping interface, vibration intensity settings, and the ability
> to switch output between xinput and a debug mode that can be used to debug
> the button mapping. Some devices (G1 Series, APEX) use a hybrid of Gen1
> RGB control and Gen 2 controller settings. To ensure there is no conflicts
> when the driver is loaded, we skip creating the RGB interface for Gen 2
> devices if there is a DMI match.
> 
> I'll also add a note that Gen 1 devices also have an interface for
> setting the key map and debug mode, but that is done entirely over a
> serial TTY device so it is not able to be added to this driver. There
> are also some "Gen 0" devices (OneXPlayer 2 Series) also use it, but
> the TTY interface also handles the RGB control so no support is
> provided by this driver for those interfaces.
> 
> Signed-off-by: Derel J. Clark <derekjohn.clark@gmail.com>
> ---
> v4:
>   - Make all delayed work part of drvdata & ensure they are canceled
>     during remove.
> 
> v3: https://lore.kernel.org/linux-input/20260412213444.2231505-1-derekjohn.clark@gmail.com/
>   - Ensure default button map is properly init during probe.
> 
> v2: https://lore.kernel.org/linux-input/20260407041354.2283201-1-derekjohn.clark@gmail.com/
>   - Add DMI quirks for certain devices that ship with both GEN1 and GEN2
>     MCU to avoid clashing when initializing the RGB interface.
>   - Add left & right vibration intensity attributes.
>   - Add additional mappings for keyboard inputs.
>   - Add a delayed work trigger to re-apply settings after the MCU
>     completes initializing after a suspend/resume cycle.
> 
> v1: https://lore.kernel.org/linux-input/20260322031615.1524307-1-derekjohn.clark@gmail.com/

Now in hid.git#for-7.2/oxp, thanks.

-- 
Jiri Kosina
SUSE Labs