1651b57ddSMark Pearson# SPDX-License-Identifier: GPL-2.0-only 2651b57ddSMark Pearson# 3651b57ddSMark Pearson# Lenovo X86 Platform Specific Drivers 4651b57ddSMark Pearson# 5651b57ddSMark Pearson 6651b57ddSMark Pearsonconfig IDEAPAD_LAPTOP 7651b57ddSMark Pearson tristate "Lenovo IdeaPad Laptop Extras" 8651b57ddSMark Pearson depends on ACPI 9da8f2708SJelle van der Waa depends on ACPI_BATTERY 10651b57ddSMark Pearson depends on RFKILL && INPUT 11651b57ddSMark Pearson depends on SERIO_I8042 12651b57ddSMark Pearson depends on BACKLIGHT_CLASS_DEVICE 13651b57ddSMark Pearson depends on ACPI_VIDEO || ACPI_VIDEO = n 14651b57ddSMark Pearson depends on ACPI_WMI || ACPI_WMI = n 15651b57ddSMark Pearson select ACPI_PLATFORM_PROFILE 16651b57ddSMark Pearson select INPUT_SPARSEKMAP 17651b57ddSMark Pearson select NEW_LEDS 18651b57ddSMark Pearson select LEDS_CLASS 19651b57ddSMark Pearson help 20651b57ddSMark Pearson This is a driver for Lenovo IdeaPad netbooks contains drivers for 21651b57ddSMark Pearson rfkill switch, hotkey, fan control and backlight control. 22651b57ddSMark Pearson 23651b57ddSMark Pearsonconfig LENOVO_WMI_HOTKEY_UTILITIES 24651b57ddSMark Pearson tristate "Lenovo Hotkey Utility WMI extras driver" 25651b57ddSMark Pearson depends on ACPI_WMI 26651b57ddSMark Pearson select NEW_LEDS 27651b57ddSMark Pearson select LEDS_CLASS 28651b57ddSMark Pearson imply IDEAPAD_LAPTOP 29651b57ddSMark Pearson help 30651b57ddSMark Pearson This driver provides WMI support for Lenovo customized hotkeys function, 31651b57ddSMark Pearson such as LED control for audio/mic mute event for Ideapad, YOGA, XiaoXin, 32651b57ddSMark Pearson Gaming, ThinkBook and so on. 33651b57ddSMark Pearson 34651b57ddSMark Pearsonconfig LENOVO_WMI_CAMERA 35651b57ddSMark Pearson tristate "Lenovo WMI Camera Button driver" 36651b57ddSMark Pearson depends on ACPI_WMI 37651b57ddSMark Pearson depends on INPUT 38651b57ddSMark Pearson help 39651b57ddSMark Pearson This driver provides support for Lenovo camera button. The Camera 40651b57ddSMark Pearson button is a GPIO device. This driver receives ACPI notifications when 41651b57ddSMark Pearson the camera button is switched on/off. 42651b57ddSMark Pearson 43651b57ddSMark Pearson To compile this driver as a module, choose M here: the module 44651b57ddSMark Pearson will be called lenovo-wmi-camera. 45651b57ddSMark Pearson 46651b57ddSMark Pearsonconfig LENOVO_YMC 47651b57ddSMark Pearson tristate "Lenovo Yoga Tablet Mode Control" 48651b57ddSMark Pearson depends on ACPI_WMI 49651b57ddSMark Pearson depends on INPUT 50651b57ddSMark Pearson depends on IDEAPAD_LAPTOP 51651b57ddSMark Pearson select INPUT_SPARSEKMAP 52651b57ddSMark Pearson help 53651b57ddSMark Pearson This driver maps the Tablet Mode Control switch to SW_TABLET_MODE input 54651b57ddSMark Pearson events for Lenovo Yoga notebooks. 55651b57ddSMark Pearson 56651b57ddSMark Pearsonconfig THINKPAD_ACPI 57651b57ddSMark Pearson tristate "ThinkPad ACPI Laptop Extras" 58651b57ddSMark Pearson depends on ACPI_EC 59651b57ddSMark Pearson depends on ACPI_BATTERY 60651b57ddSMark Pearson depends on INPUT 61651b57ddSMark Pearson depends on RFKILL || RFKILL = n 62651b57ddSMark Pearson depends on ACPI_VIDEO || ACPI_VIDEO = n 63651b57ddSMark Pearson depends on BACKLIGHT_CLASS_DEVICE 64651b57ddSMark Pearson depends on I2C 65651b57ddSMark Pearson depends on DRM 66651b57ddSMark Pearson select ACPI_PLATFORM_PROFILE 67651b57ddSMark Pearson select DRM_PRIVACY_SCREEN 68651b57ddSMark Pearson select HWMON 69651b57ddSMark Pearson select NVRAM 70651b57ddSMark Pearson select NEW_LEDS 71651b57ddSMark Pearson select LEDS_CLASS 72651b57ddSMark Pearson select INPUT_SPARSEKMAP 73651b57ddSMark Pearson help 74651b57ddSMark Pearson This is a driver for the IBM and Lenovo ThinkPad laptops. It adds 75651b57ddSMark Pearson support for Fn-Fx key combinations, Bluetooth control, video 76651b57ddSMark Pearson output switching, ThinkLight control, UltraBay eject and more. 77651b57ddSMark Pearson For more information about this driver see 78651b57ddSMark Pearson <file:Documentation/admin-guide/laptops/thinkpad-acpi.rst> and 79651b57ddSMark Pearson <http://ibm-acpi.sf.net/> . 80651b57ddSMark Pearson 81651b57ddSMark Pearson This driver was formerly known as ibm-acpi. 82651b57ddSMark Pearson 83651b57ddSMark Pearson Extra functionality will be available if the rfkill (CONFIG_RFKILL) 84651b57ddSMark Pearson and/or ALSA (CONFIG_SND) subsystems are available in the kernel. 85651b57ddSMark Pearson Note that if you want ThinkPad-ACPI to be built-in instead of 86651b57ddSMark Pearson modular, ALSA and rfkill will also have to be built-in. 87651b57ddSMark Pearson 88651b57ddSMark Pearson If you have an IBM or Lenovo ThinkPad laptop, say Y or M here. 89651b57ddSMark Pearson 90651b57ddSMark Pearsonconfig THINKPAD_ACPI_ALSA_SUPPORT 91651b57ddSMark Pearson bool "Console audio control ALSA interface" 92651b57ddSMark Pearson depends on THINKPAD_ACPI 93651b57ddSMark Pearson depends on SND 94651b57ddSMark Pearson depends on SND = y || THINKPAD_ACPI = SND 95651b57ddSMark Pearson default y 96651b57ddSMark Pearson help 97651b57ddSMark Pearson Enables monitoring of the built-in console audio output control 98651b57ddSMark Pearson (headphone and speakers), which is operated by the mute and (in 99651b57ddSMark Pearson some ThinkPad models) volume hotkeys. 100651b57ddSMark Pearson 101651b57ddSMark Pearson If this option is enabled, ThinkPad-ACPI will export an ALSA card 102651b57ddSMark Pearson with a single read-only mixer control, which should be used for 103651b57ddSMark Pearson on-screen-display feedback purposes by the Desktop Environment. 104651b57ddSMark Pearson 105651b57ddSMark Pearson Optionally, the driver will also allow software control (the 106651b57ddSMark Pearson ALSA mixer will be made read-write). Please refer to the driver 107651b57ddSMark Pearson documentation for details. 108651b57ddSMark Pearson 109651b57ddSMark Pearson All IBM models have both volume and mute control. Newer Lenovo 110651b57ddSMark Pearson models only have mute control (the volume hotkeys are just normal 111651b57ddSMark Pearson keys and volume control is done through the main HDA mixer). 112651b57ddSMark Pearson 113651b57ddSMark Pearsonconfig THINKPAD_ACPI_DEBUGFACILITIES 114651b57ddSMark Pearson bool "Maintainer debug facilities" 115651b57ddSMark Pearson depends on THINKPAD_ACPI 116651b57ddSMark Pearson help 117651b57ddSMark Pearson Enables extra stuff in the thinkpad-acpi which is completely useless 118651b57ddSMark Pearson for normal use. Read the driver source to find out what it does. 119651b57ddSMark Pearson 120651b57ddSMark Pearson Say N here, unless you were told by a kernel maintainer to do 121651b57ddSMark Pearson otherwise. 122651b57ddSMark Pearson 123651b57ddSMark Pearsonconfig THINKPAD_ACPI_DEBUG 124651b57ddSMark Pearson bool "Verbose debug mode" 125651b57ddSMark Pearson depends on THINKPAD_ACPI 126651b57ddSMark Pearson help 127651b57ddSMark Pearson Enables extra debugging information, at the expense of a slightly 128651b57ddSMark Pearson increase in driver size. 129651b57ddSMark Pearson 130651b57ddSMark Pearson If you are not sure, say N here. 131651b57ddSMark Pearson 132651b57ddSMark Pearsonconfig THINKPAD_ACPI_UNSAFE_LEDS 133651b57ddSMark Pearson bool "Allow control of important LEDs (unsafe)" 134651b57ddSMark Pearson depends on THINKPAD_ACPI 135651b57ddSMark Pearson help 136651b57ddSMark Pearson Overriding LED state on ThinkPads can mask important 137651b57ddSMark Pearson firmware alerts (like critical battery condition), or misled 138651b57ddSMark Pearson the user into damaging the hardware (undocking or ejecting 139651b57ddSMark Pearson the bay while buses are still active), etc. 140651b57ddSMark Pearson 141651b57ddSMark Pearson LED control on the ThinkPad is write-only (with very few 142651b57ddSMark Pearson exceptions on very ancient models), which makes it 143651b57ddSMark Pearson impossible to know beforehand if important information will 144651b57ddSMark Pearson be lost when one changes LED state. 145651b57ddSMark Pearson 146651b57ddSMark Pearson Users that know what they are doing can enable this option 147651b57ddSMark Pearson and the driver will allow control of every LED, including 148651b57ddSMark Pearson the ones on the dock stations. 149651b57ddSMark Pearson 150651b57ddSMark Pearson Never enable this option on a distribution kernel. 151651b57ddSMark Pearson 152651b57ddSMark Pearson Say N here, unless you are building a kernel for your own 153651b57ddSMark Pearson use, and need to control the important firmware LEDs. 154651b57ddSMark Pearson 155651b57ddSMark Pearsonconfig THINKPAD_ACPI_VIDEO 156651b57ddSMark Pearson bool "Video output control support" 157651b57ddSMark Pearson depends on THINKPAD_ACPI 158651b57ddSMark Pearson default y 159651b57ddSMark Pearson help 160651b57ddSMark Pearson Allows the thinkpad_acpi driver to provide an interface to control 161651b57ddSMark Pearson the various video output ports. 162651b57ddSMark Pearson 163651b57ddSMark Pearson This feature often won't work well, depending on ThinkPad model, 164651b57ddSMark Pearson display state, video output devices in use, whether there is a X 165651b57ddSMark Pearson server running, phase of the moon, and the current mood of 166651b57ddSMark Pearson Schroedinger's cat. If you can use X.org's RandR to control 167651b57ddSMark Pearson your ThinkPad's video output ports instead of this feature, 168651b57ddSMark Pearson don't think twice: do it and say N here to save memory and avoid 169651b57ddSMark Pearson bad interactions with X.org. 170651b57ddSMark Pearson 171651b57ddSMark Pearson NOTE: access to this feature is limited to processes with the 172651b57ddSMark Pearson CAP_SYS_ADMIN capability, to avoid local DoS issues in platforms 173651b57ddSMark Pearson where it interacts badly with X.org. 174651b57ddSMark Pearson 175651b57ddSMark Pearson If you are not sure, say Y here but do try to check if you could 176651b57ddSMark Pearson be using X.org RandR instead. 177651b57ddSMark Pearson 178651b57ddSMark Pearsonconfig THINKPAD_ACPI_HOTKEY_POLL 179651b57ddSMark Pearson bool "Support NVRAM polling for hot keys" 180651b57ddSMark Pearson depends on THINKPAD_ACPI 181651b57ddSMark Pearson default y 182651b57ddSMark Pearson help 183651b57ddSMark Pearson Some thinkpad models benefit from NVRAM polling to detect a few of 184651b57ddSMark Pearson the hot key press events. If you know your ThinkPad model does not 185651b57ddSMark Pearson need to do NVRAM polling to support any of the hot keys you use, 186651b57ddSMark Pearson unselecting this option will save about 1kB of memory. 187651b57ddSMark Pearson 188651b57ddSMark Pearson ThinkPads T40 and newer, R52 and newer, and X31 and newer are 189651b57ddSMark Pearson unlikely to need NVRAM polling in their latest BIOS versions. 190651b57ddSMark Pearson 191651b57ddSMark Pearson NVRAM polling can detect at most the following keys: ThinkPad/Access 192651b57ddSMark Pearson IBM, Zoom, Switch Display (fn+F7), ThinkLight, Volume up/down/mute, 193651b57ddSMark Pearson Brightness up/down, Display Expand (fn+F8), Hibernate (fn+F12). 194651b57ddSMark Pearson 195651b57ddSMark Pearson If you are not sure, say Y here. The driver enables polling only if 196651b57ddSMark Pearson it is strictly necessary to do so. 197651b57ddSMark Pearson 198651b57ddSMark Pearsonconfig THINKPAD_LMI 199651b57ddSMark Pearson tristate "Lenovo WMI-based systems management driver" 200651b57ddSMark Pearson depends on ACPI_WMI 201651b57ddSMark Pearson depends on DMI 202651b57ddSMark Pearson select FW_ATTR_CLASS 203651b57ddSMark Pearson help 204651b57ddSMark Pearson This driver allows changing BIOS settings on Lenovo machines whose 205651b57ddSMark Pearson BIOS support the WMI interface. 206651b57ddSMark Pearson 207651b57ddSMark Pearson To compile this driver as a module, choose M here: the module will 208651b57ddSMark Pearson be called think-lmi. 209651b57ddSMark Pearson 210651b57ddSMark Pearsonconfig YOGABOOK 211651b57ddSMark Pearson tristate "Lenovo Yoga Book tablet key driver" 212651b57ddSMark Pearson depends on ACPI_WMI 213651b57ddSMark Pearson depends on INPUT 214651b57ddSMark Pearson depends on I2C 215651b57ddSMark Pearson select LEDS_CLASS 216651b57ddSMark Pearson select NEW_LEDS 217651b57ddSMark Pearson help 218651b57ddSMark Pearson Say Y here if you want to support the 'Pen' key and keyboard backlight 219651b57ddSMark Pearson control on the Lenovo Yoga Book tablets. 220651b57ddSMark Pearson 221651b57ddSMark Pearson To compile this driver as a module, choose M here: the module will 222651b57ddSMark Pearson be called lenovo-yogabook. 223651b57ddSMark Pearson 224651b57ddSMark Pearsonconfig YT2_1380 225651b57ddSMark Pearson tristate "Lenovo Yoga Tablet 2 1380 fast charge driver" 226651b57ddSMark Pearson depends on SERIAL_DEV_BUS 227651b57ddSMark Pearson depends on EXTCON 228651b57ddSMark Pearson depends on ACPI 229651b57ddSMark Pearson help 230651b57ddSMark Pearson Say Y here to enable support for the custom fast charging protocol 231651b57ddSMark Pearson found on the Lenovo Yoga Tablet 2 1380F / 1380L models. 232651b57ddSMark Pearson 233651b57ddSMark Pearson To compile this driver as a module, choose M here: the module will 234651b57ddSMark Pearson be called lenovo-yogabook. 235e521d16eSDerek J. Clark 236e1a5fe66SDerek J. Clarkconfig LENOVO_WMI_DATA01 237e1a5fe66SDerek J. Clark tristate 238e1a5fe66SDerek J. Clark depends on ACPI_WMI 239e1a5fe66SDerek J. Clark 240949bf144SDerek J. Clarkconfig LENOVO_WMI_EVENTS 241949bf144SDerek J. Clark tristate 242949bf144SDerek J. Clark depends on ACPI_WMI 243949bf144SDerek J. Clark 244e521d16eSDerek J. Clarkconfig LENOVO_WMI_HELPERS 245e521d16eSDerek J. Clark tristate 246e521d16eSDerek J. Clark depends on ACPI_WMI 24722024ac5SDerek J. Clark 24822024ac5SDerek J. Clarkconfig LENOVO_WMI_GAMEZONE 24922024ac5SDerek J. Clark tristate "Lenovo GameZone WMI Driver" 25022024ac5SDerek J. Clark depends on ACPI_WMI 25122024ac5SDerek J. Clark depends on DMI 25222024ac5SDerek J. Clark select ACPI_PLATFORM_PROFILE 25322024ac5SDerek J. Clark select LENOVO_WMI_EVENTS 25422024ac5SDerek J. Clark select LENOVO_WMI_HELPERS 255*6e38b9fcSArnd Bergmann select LENOVO_WMI_TUNING 25622024ac5SDerek J. Clark help 25722024ac5SDerek J. Clark Say Y here if you have a WMI aware Lenovo Legion device and would like to use the 25822024ac5SDerek J. Clark platform-profile firmware interface to manage power usage. 25922024ac5SDerek J. Clark 26022024ac5SDerek J. Clark To compile this driver as a module, choose M here: the module will 26122024ac5SDerek J. Clark be called lenovo-wmi-gamezone. 262edc4b183SDerek J. Clark 263edc4b183SDerek J. Clarkconfig LENOVO_WMI_TUNING 264edc4b183SDerek J. Clark tristate "Lenovo Other Mode WMI Driver" 265edc4b183SDerek J. Clark depends on ACPI_WMI 266edc4b183SDerek J. Clark select FW_ATTR_CLASS 267edc4b183SDerek J. Clark select LENOVO_WMI_DATA01 268edc4b183SDerek J. Clark select LENOVO_WMI_EVENTS 269edc4b183SDerek J. Clark select LENOVO_WMI_HELPERS 270edc4b183SDerek J. Clark help 271edc4b183SDerek J. Clark Say Y here if you have a WMI aware Lenovo Legion device and would like to use the 272edc4b183SDerek J. Clark firmware_attributes API to control various tunable settings typically exposed by 273edc4b183SDerek J. Clark Lenovo software in Windows. 274edc4b183SDerek J. Clark 275edc4b183SDerek J. Clark To compile this driver as a module, choose M here: the module will 276edc4b183SDerek J. Clark be called lenovo-wmi-other. 277