Commit 51cc1c42 authored by Jiri Kosina's avatar Jiri Kosina
Browse files

Merge branch 'for-7.1/lenovo-v2' into for-linus

- new driver for Lenovo Legion Go / S devices (Derek J. Clark)
parents a3922c83 19acad73
Loading
Loading
Loading
Loading
+724 −0

File added.

Preview size limit exceeded, changes collapsed.

+304 −0
Original line number Diff line number Diff line
What:		/sys/class/leds/go_s:rgb:joystick_rings/effect
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls the display effect of the RGB interface.

		Values are monocolor, breathe, chroma, or rainbow.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/effect_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the effect attribute.

		Values are monocolor, breathe, chroma, or rainbow.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/enabled
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls enabling or disabling the RGB interface.

		Values are true or false.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/enabled_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the enabled attribute.

		Values are true or false.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/mode
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls the operating mode of the RGB interface.

		Values are dynamic or custom. Custom allows setting the RGB effect and color.
    Dynamic is a Windows mode for syncing Lenovo RGB interfaces not currently
    supported under Linux.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/mode_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the mode attribute.

		Values are dynamic or custom.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/profile
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls selecting the configured RGB profile.

		Values are 1-3.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/profile_range
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the profile attribute.

		Values are 1-3.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/speed
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls the change rate for the breathe, chroma, and rainbow effects.

		Values are 0-100.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/class/leds/go_s:rgb:joystick_rings/speed_range
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the speed attribute.

		Values are 0-100.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/auto_sleep_time
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls the sleep timer due to inactivity for the built-in controller.

		Values are 0-255.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/auto_sleep_time_range
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the gamepad/auto_sleep_time attribute.

		Values are 0-255.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/dpad_mode
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls the operating mode of the built-in controllers D-pad.

		Values are 4-way or 8-way.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/dpad_mode_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the gamepad/dpad_mode attribute.

		Values are 4-way or 8-way.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/mode
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls the operating mode of the built-in controller.

		Values are xinput or dinput.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/mode_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the gamepad/mode attribute.

		Values are xinput or dinput.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/poll_rate
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls the poll rate in Hz of the built-in controller.

		Values are 125, 250, 500, or 1000.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/poll_rate_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the gamepad/poll_rate attribute.

		Values are 125, 250, 500, or 1000.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/bypass_enabled
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls enabling or disabling the IMU bypass function. When enabled the IMU data is directly reported to the OS through
an HIDRAW interface.

		Values are true or false.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/bypass_enabled_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the imu/bypass_enabled attribute.

		Values are true or false.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/manufacturer
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the manufacturer of the intertial measurment unit.

		Values are Bosch or ST.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/sensor_enabled
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls enabling or disabling the IMU.

		Values are true, false, or wake-2s.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/sensor_enabled_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the imu/sensor_enabled attribute.

		Values are true, false, or wake-2s.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/mcu_id
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the MCU Identification Number

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/mouse/step
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls which value is used for the mouse sensitivity.

		Values are 1-127.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/mouse/step_range
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the mouse/step attribute.

		Values are 1-127.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/os_mode
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls which value is used for the touchpads operating mode.

		Values are windows or linux.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/os_mode_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the os_mode attribute.

		Values are windows or linux.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/enabled
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls enabling or disabling the built-in touchpad.

		Values are true or false.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/enabled_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the touchpad/enabled attribute.

		Values are true or false.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/linux_mode
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls behavior of the touchpad events when os_mode is set to linux.

		Values are absolute or relative.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/linux_mode_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the touchpad/linux_mode attribute.

		Values are absolute or relative.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/windows_mode
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This controls behavior of the touchpad events when os_mode is set to windows.

		Values are absolute or relative.

		Applies to Lenovo Legion Go S line of handheld devices.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/windows_mode_index
Date:		April 2026
Contact:	linux-input@vger.kernel.org
Description:	This displays the available options for the touchpad/windows_mode attribute.

		Values are absolute or relative.

		Applies to Lenovo Legion Go S line of handheld devices.
+11 −0
Original line number Diff line number Diff line
@@ -14469,6 +14469,17 @@ L: platform-driver-x86@vger.kernel.org
S:	Maintained
F:	drivers/platform/x86/lenovo/wmi-hotkey-utilities.c
LENOVO HID drivers
M:	Derek J. Clark <derekjohn.clark@gmail.com>
M:	Mark Pearson <mpearson-lenovo@squebb.ca>
L:	linux-input@vger.kernel.org
S:	Maintained
F:	Documentation/ABI/testing/sysfs-driver-hid-lenovo-go
F:	Documentation/ABI/testing/sysfs-driver-hid-lenovo-go-s
F:	drivers/hid/hid-lenovo-go-s.c
F:	drivers/hid/hid-lenovo-go.c
F:	drivers/hid/hid-lenovo.c
LETSKETCH HID TABLET DRIVER
M:	Hans de Goede <hansg@kernel.org>
L:	linux-input@vger.kernel.org
+23 −2
Original line number Diff line number Diff line
@@ -601,8 +601,7 @@ config HID_LED

config HID_LENOVO
	tristate "Lenovo / Thinkpad devices"
	select NEW_LEDS
	select LEDS_CLASS
	depends on LEDS_CLASS
	help
	Support for IBM/Lenovo devices that are not fully compliant with HID standard.

@@ -614,6 +613,28 @@ config HID_LENOVO
	- ThinkPad Compact Bluetooth Keyboard with TrackPoint (supports Fn keys)
	- ThinkPad Compact USB Keyboard with TrackPoint (supports Fn keys)

config HID_LENOVO_GO
	tristate "HID Driver for Lenovo Legion Go Series Controllers"
	depends on USB_HID
	depends on LEDS_CLASS_MULTICOLOR
	help
	Support for Lenovo Legion Go devices with detachable controllers.

	Say Y here to include configuration interface support for the Lenovo Legion Go
	and Legion Go 2 Handheld Console Controllers. Say M here to compile this
	driver as a module. The module will be called hid-lenovo-go.

config HID_LENOVO_GO_S
	tristate "HID Driver for Lenovo Legion Go S Controller"
	depends on USB_HID
	depends on LEDS_CLASS_MULTICOLOR
	help
	Support for Lenovo Legion Go S Handheld Console Controller.

	Say Y here to include configuration interface support for the Lenovo Legion Go
	S. Say M here to compile this driver as a module. The module will be called
	hid-lenovo-go-s.

config HID_LETSKETCH
	tristate "Letsketch WP9620N tablets"
	depends on USB_HID
+2 −0
Original line number Diff line number Diff line
@@ -76,6 +76,8 @@ obj-$(CONFIG_HID_KYE) += hid-kye.o
obj-$(CONFIG_HID_KYSONA)	+= hid-kysona.o
obj-$(CONFIG_HID_LCPOWER)	+= hid-lcpower.o
obj-$(CONFIG_HID_LENOVO)	+= hid-lenovo.o
obj-$(CONFIG_HID_LENOVO_GO)	+= hid-lenovo-go.o
obj-$(CONFIG_HID_LENOVO_GO_S)	+= hid-lenovo-go-s.o
obj-$(CONFIG_HID_LETSKETCH)	+= hid-letsketch.o
obj-$(CONFIG_HID_LOGITECH)	+= hid-logitech.o
obj-$(CONFIG_HID_LOGITECH)	+= hid-lg-g15.o
Loading