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

- new driver for Lenovo Legion Go / S devices (Derek J. Clark)
This commit is contained in:
Jiri Kosina 2026-04-16 21:07:13 +02:00
commit 51cc1c4274
11 changed files with 5127 additions and 2 deletions

View File

@ -0,0 +1,724 @@
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/class/leds/go: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 and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/firmware_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the firmware version of the internal MCU.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/fps_mode_dpi
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the DPI of the right handle when the FPS mode switch is on.
Values are 500, 800, 1200, and 1800.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/fps_mode_dpi_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the fps_mode_dpi attribute.
Values are 500, 800, 1200, and 1800.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/hardware_generation
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the hardware generation of the internal MCU.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/hardware_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the hardware version of the internal MCU.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/auto_sleep_time
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls the sleep timer due to inactivity for the left removable controller.
Values are 0-255.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/auto_sleep_time_range
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the left_handle/auto_sleep_time attribute.
Values are 0-255.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_gyro
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This initiates or halts calibration of the left removable controller's IMU.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_gyro_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the left_handle/calibrate_gyro attribute.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_gyro_status
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the result of the last attempted calibration of the left removable controller's IMU.
Values are unknown, success, failure.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_joystick
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This initiates or halts calibration of the left removable controller's joystick.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_joystick_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the left_handle/calibrate_jotstick attribute.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_joystick_status
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the result of the last attempted calibration of the left removable controller's joystick.
Values are unknown, success, failure.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_tirgger
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This initiates or halts calibration of the left removable controller's trigger.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_gyro_trigger
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the left_handle/calibrate_trigger attribute.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/calibrate_trigger_status
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the result of the last attempted calibration of the left removable controller's trigger.
Values are unknown, success, failure.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/firmware_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the left removable controller's firmware version.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/hardware_generation
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the hardware generation of the left removable controller.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/hardware_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the hardware version of the left removable controller.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/imu_bypass_enabled
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls enabling or disabling the IMU bypass function of the left removable controller.
Values are true or false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/imu_bypass_enabled_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the left_handle/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>/left_handle/imu_enabled
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls enabling or disabling the IMU of the left removable controller.
Values are true or false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/imu_enabled_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the left_handle/imu_enabled attribute.
Values are true or false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/product_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the product version of the left removable controller.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/protocol_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the protocol version of the left removable controller.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/reset
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: Resets the left removable controller to factory defaults.
Writing 1 to this path initiates.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/rumble_mode
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls setting the response behavior for rumble events for the left removable controller.
Values are fps, racing, standarg, spg, rpg.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/rumble_mode_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the left_handle/rumble_mode attribute.
Values are fps, racing, standarg, spg, rpg.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/rumble_notification
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls enabling haptic rumble events for the left removable controller.
Values are true, false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/rumble_notification_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the left_handle/rumble_notification attribute.
Values are true, false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/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 and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/left_handle/mode_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the mode attribute.
Values are xinput or dinput.
Applies to Lenovo Legion Go and Go 2 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 the behavior of built in chord combinations.
Values are windows or linux.
Applies to Lenovo Legion Go and Go 2 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 and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/product_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the product version of the internal MCU.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/protocol_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the protocol version of the internal MCU.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/reset_mcu
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: Resets the internal MCU to factory defaults.
Writing 1 to this path initiates.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/auto_sleep_time
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls the sleep timer due to inactivity for the right removable controller.
Values are 0-255.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/auto_sleep_time_range
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the right_handle/auto_sleep_time attribute.
Values are 0-255.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_gyro
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This initiates or halts calibration of the right removable controller's IMU.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_gyro_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the right_handle/calibrate_gyro attribute.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_gyro_status
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the result of the last attempted calibration of the right removable controller's IMU.
Values are unknown, success, failure.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_joystick
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This initiates or halts calibration of the right removable controller's joystick.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_joystick_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the right_handle/calibrate_jotstick attribute.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_joystick_status
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the result of the last attempted calibration of the right removable controller's joystick.
Values are unknown, success, failure.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_tirgger
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This initiates or halts calibration of the right removable controller's trigger.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_gyro_trigger
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the right_handle/calibrate_trigger attribute.
Values are start, stop.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/calibrate_trigger_status
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the result of the last attempted calibration of the right removable controller's trigger.
Values are unknown, success, failure.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/firmware_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the right removable controller's firmware version.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/hardware_generation
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the hardware generation of the right removable controller.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/hardware_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the hardware version of the right removable controller.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/imu_bypass_enabled
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls enabling or disabling the IMU bypass function of the right removable controller.
Values are true or false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/imu_bypass_enabled_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the right_handle/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>/right_handle/imu_enabled
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls enabling or disabling the IMU of the right removable controller.
Values are true or false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/imu_enabled_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the right_handle/imu_enabled attribute.
Values are true or false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/product_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the product version of the right removable controller.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/protocol_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the protocol version of the right removable controller.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/reset
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: Resets the right removable controller to factory defaults.
Writing 1 to this path initiates.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/rumble_mode
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls setting the response behavior for rumble events for the right removable controller.
Values are fps, racing, standarg, spg, rpg.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/rumble_mode_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the right_handle/rumble_mode attribute.
Values are fps, racing, standarg, spg, rpg.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/rumble_notification
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls enabling haptic rumble events for the right removable controller.
Values are true, false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/right_handle/rumble_notification_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the right_handle/rumble_notification attribute.
Values are true, false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/rumble_intensity
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls setting the rumble intensity for both removable controllers.
Values are off, low, medium, high.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/rumble_intensity_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the rumble_intensity attribute.
Values are off, low, medium, high.
Applies to Lenovo Legion Go and Go 2 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 touchpad.
Values are true, false.
Applies to Lenovo Legion Go and Go 2 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, false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/vibration_enabled
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls enabling haptic rumble events for the touchpad.
Values are true, false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/vibration_enabled_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the touchpad/vibration_enabled attribute.
Values are true, false.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/vibration_intensity
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This controls setting the intensity of the touchpad haptics.
Values are off, low, medium, high.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/vibration_intensity_index
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the available options for the touchpad/vibration_intensity attribute.
Values are off, low, medium, high.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/tx_dongle/firmware_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the firmware version of the internal wireless transmission dongle.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/tx_dongle/hardware_generation
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the hardware generation of the internal wireless transmission dongle.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/tx_dongle/hardware_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the hardware version of the internal wireless transmission dongle.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/tx_dongle/product_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the product version of the internal wireless transmission dongle.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/tx_dongle/protocol_version
Date: April 2026
Contact: linux-input@vger.kernel.org
Description: This displays the protocol version of the internal wireless transmission dongle.
Applies to Lenovo Legion Go and Go 2 line of handheld devices.

View File

@ -0,0 +1,304 @@
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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -2895,6 +2895,11 @@ static int hid_uevent(const struct device *dev, struct kobj_uevent_env *env)
if (add_uevent_var(env, "MODALIAS=hid:b%04Xg%04Xv%08Xp%08X",
hdev->bus, hdev->group, hdev->vendor, hdev->product))
return -ENOMEM;
if (hdev->firmware_version) {
if (add_uevent_var(env, "HID_FIRMWARE_VERSION=0x%04llX",
hdev->firmware_version))
return -ENOMEM;
}
return 0;
}

View File

@ -754,6 +754,10 @@
#define USB_DEVICE_ID_ITE8595 0x8595
#define USB_DEVICE_ID_ITE_MEDION_E1239T 0xce50
#define USB_VENDOR_ID_QHE 0x1a86
#define USB_DEVICE_ID_LENOVO_LEGION_GO_S_XINPUT 0xe310
#define USB_DEVICE_ID_LENOVO_LEGION_GO_S_DINPUT 0xe311
#define USB_VENDOR_ID_JABRA 0x0b0e
#define USB_DEVICE_ID_JABRA_SPEAK_410 0x0412
#define USB_DEVICE_ID_JABRA_SPEAK_510 0x0420
@ -873,7 +877,10 @@
#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E 0x602e
#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093 0x6093
#define USB_DEVICE_ID_LENOVO_LEGION_GO_DUAL_DINPUT 0x6184
#define USB_DEVICE_ID_LENOVO_LEGION_GO2_XINPUT 0x61eb
#define USB_DEVICE_ID_LENOVO_LEGION_GO2_DINPUT 0x61ec
#define USB_DEVICE_ID_LENOVO_LEGION_GO2_DUAL_DINPUT 0x61ed
#define USB_DEVICE_ID_LENOVO_LEGION_GO2_FPS 0x61ee
#define USB_VENDOR_ID_LETSKETCH 0x6161
#define USB_DEVICE_ID_WP9620N 0x4d15

File diff suppressed because it is too large Load Diff

2500
drivers/hid/hid-lenovo-go.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -189,6 +189,22 @@ ssize_t device_show_string(struct device *dev, struct device_attribute *attr,
#define DEVICE_ATTR_ADMIN_RW(_name) \
struct device_attribute dev_attr_##_name = __ATTR_RW_MODE(_name, 0600)
/**
* DEVICE_ATTR_RW_NAMED - Define a read-write device attribute with a sysfs name
* that differs from the function name.
* @_name: Attribute function preface
* @_attrname: Attribute name as it wil be exposed in the sysfs.
*
* Like DEVICE_ATTR_RW(), but allows for reusing names under separate paths in
* the same driver.
*/
#define DEVICE_ATTR_RW_NAMED(_name, _attrname) \
struct device_attribute dev_attr_##_name = { \
.attr = { .name = _attrname, .mode = 0644 }, \
.show = _name##_show, \
.store = _name##_store, \
}
/**
* DEVICE_ATTR_RO - Define a readable device attribute.
* @_name: Attribute name.
@ -207,6 +223,21 @@ ssize_t device_show_string(struct device *dev, struct device_attribute *attr,
#define DEVICE_ATTR_ADMIN_RO(_name) \
struct device_attribute dev_attr_##_name = __ATTR_RO_MODE(_name, 0400)
/**
* DEVICE_ATTR_RO_NAMED - Define a read-only device attribute with a sysfs name
* that differs from the function name.
* @_name: Attribute function preface
* @_attrname: Attribute name as it wil be exposed in the sysfs.
*
* Like DEVICE_ATTR_RO(), but allows for reusing names under separate paths in
* the same driver.
*/
#define DEVICE_ATTR_RO_NAMED(_name, _attrname) \
struct device_attribute dev_attr_##_name = { \
.attr = { .name = _attrname, .mode = 0444 }, \
.show = _name##_show, \
}
/**
* DEVICE_ATTR_WO - Define an admin-only writable device attribute.
* @_name: Attribute name.
@ -216,6 +247,21 @@ ssize_t device_show_string(struct device *dev, struct device_attribute *attr,
#define DEVICE_ATTR_WO(_name) \
struct device_attribute dev_attr_##_name = __ATTR_WO(_name)
/**
* DEVICE_ATTR_WO_NAMED - Define a read-only device attribute with a sysfs name
* that differs from the function name.
* @_name: Attribute function preface
* @_attrname: Attribute name as it wil be exposed in the sysfs.
*
* Like DEVICE_ATTR_WO(), but allows for reusing names under separate paths in
* the same driver.
*/
#define DEVICE_ATTR_WO_NAMED(_name, _attrname) \
struct device_attribute dev_attr_##_name = { \
.attr = { .name = _attrname, .mode = 0200 }, \
.store = _name##_store, \
}
/**
* DEVICE_ULONG_ATTR - Define a device attribute backed by an unsigned long.
* @_name: Attribute name.

View File

@ -721,6 +721,7 @@ struct hid_device {
char name[128]; /* Device name */
char phys[64]; /* Device physical location */
char uniq[64]; /* Device unique identifier (serial #) */
u64 firmware_version; /* Firmware version */
void *driver_data;