Unverified Commit cfd84b3f authored by Werner Sembach's avatar Werner Sembach Committed by Ilpo Järvinen
Browse files

platform/x86/tuxedo: Add virtual LampArray for TUXEDO NB04 devices



The TUXEDO Sirius 16 Gen1 and TUXEDO Sirius 16 Gen2 devices have a per-key
controllable RGB keyboard backlight. The firmware API for it is implemented
via WMI.

To make the backlight userspace configurable this driver emulates a
LampArray HID device and translates the input from hidraw to the
corresponding WMI calls. This is a new approach as the leds subsystem lacks
a suitable UAPI for per-key keyboard backlights, and like this no new UAPI
needs to be established.

The handle_* functions an corresponding structs are named based on the HID
spec: HID Usage Tables 1.6 -> 26 Lighting And Illumination Page (0x59)

Signed-off-by: default avatarWerner Sembach <wse@tuxedocomputers.com>
Link: https://lore.kernel.org/r/20250425210043.342288-2-wse@tuxedocomputers.com


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent feea7bd6
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -24642,6 +24642,12 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git turbostat
F:	tools/power/x86/turbostat/
F:	tools/testing/selftests/turbostat/
TUXEDO DRIVERS
M:	Werner Sembach <wse@tuxedocomputers.com>
L:	platform-driver-x86@vger.kernel.org
S:	Supported
F:	drivers/platform/x86/tuxedo/
TW5864 VIDEO4LINUX DRIVER
M:	Bluecherry Maintainers <maintainers@bluecherrydvr.com>
M:	Andrey Utkin <andrey.utkin@corp.bluecherry.net>
+2 −0
Original line number Diff line number Diff line
@@ -1224,6 +1224,8 @@ config OXP_EC
		reasons, this driver also provides hwmon functionality to Ayaneo
		devices and the OrangePi Neo.

source "drivers/platform/x86/tuxedo/Kconfig"

endif # X86_PLATFORM_DEVICES

config P2SB
+3 −0
Original line number Diff line number Diff line
@@ -152,6 +152,9 @@ obj-$(CONFIG_SIEMENS_SIMATIC_IPC) += siemens/
# Silicom
obj-$(CONFIG_SILICOM_PLATFORM)		+= silicom-platform.o

# TUXEDO
obj-y					+= tuxedo/

# Winmate
obj-$(CONFIG_WINMATE_FM07_KEYS)		+= winmate-fm07-keys.o

+8 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright (C) 2024-2025 Werner Sembach wse@tuxedocomputers.com
#
# TUXEDO X86 Platform Specific Drivers
#

source "drivers/platform/x86/tuxedo/nb04/Kconfig"
+8 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright (C) 2024-2025 Werner Sembach wse@tuxedocomputers.com
#
# TUXEDO X86 Platform Specific Drivers
#

obj-y	+= nb04/
Loading