1# SPDX-License-Identifier: GPL-2.0-only 2# 3# Lenovo X86 Platform Specific Drivers 4# 5 6config IDEAPAD_LAPTOP 7 tristate "Lenovo IdeaPad Laptop Extras" 8 depends on ACPI 9 depends on ACPI_BATTERY 10 depends on RFKILL && INPUT 11 depends on SERIO_I8042 12 depends on BACKLIGHT_CLASS_DEVICE 13 depends on ACPI_VIDEO || ACPI_VIDEO = n 14 depends on ACPI_WMI || ACPI_WMI = n 15 select ACPI_PLATFORM_PROFILE 16 select INPUT_SPARSEKMAP 17 select NEW_LEDS 18 select LEDS_CLASS 19 help 20 This is a driver for Lenovo IdeaPad netbooks contains drivers for 21 rfkill switch, hotkey, fan control and backlight control. 22 23config LENOVO_WMI_HOTKEY_UTILITIES 24 tristate "Lenovo Hotkey Utility WMI extras driver" 25 depends on ACPI_WMI 26 select NEW_LEDS 27 select LEDS_CLASS 28 imply IDEAPAD_LAPTOP 29 help 30 This driver provides WMI support for Lenovo customized hotkeys function, 31 such as LED control for audio/mic mute event for Ideapad, YOGA, XiaoXin, 32 Gaming, ThinkBook and so on. 33 34config LENOVO_WMI_CAMERA 35 tristate "Lenovo WMI Camera Button driver" 36 depends on ACPI_WMI 37 depends on INPUT 38 help 39 This driver provides support for Lenovo camera button. The Camera 40 button is a GPIO device. This driver receives ACPI notifications when 41 the camera button is switched on/off. 42 43 To compile this driver as a module, choose M here: the module 44 will be called lenovo-wmi-camera. 45 46config LENOVO_YMC 47 tristate "Lenovo Yoga Tablet Mode Control" 48 depends on ACPI_WMI 49 depends on INPUT 50 depends on IDEAPAD_LAPTOP 51 select INPUT_SPARSEKMAP 52 help 53 This driver maps the Tablet Mode Control switch to SW_TABLET_MODE input 54 events for Lenovo Yoga notebooks. 55 56config THINKPAD_ACPI 57 tristate "ThinkPad ACPI Laptop Extras" 58 depends on ACPI_EC 59 depends on ACPI_BATTERY 60 depends on INPUT 61 depends on RFKILL || RFKILL = n 62 depends on ACPI_VIDEO || ACPI_VIDEO = n 63 depends on BACKLIGHT_CLASS_DEVICE 64 depends on I2C 65 depends on DRM 66 select ACPI_PLATFORM_PROFILE 67 select DRM_PRIVACY_SCREEN 68 select HWMON 69 select NVRAM 70 select NEW_LEDS 71 select LEDS_CLASS 72 select INPUT_SPARSEKMAP 73 help 74 This is a driver for the IBM and Lenovo ThinkPad laptops. It adds 75 support for Fn-Fx key combinations, Bluetooth control, video 76 output switching, ThinkLight control, UltraBay eject and more. 77 For more information about this driver see 78 <file:Documentation/admin-guide/laptops/thinkpad-acpi.rst> and 79 <http://ibm-acpi.sf.net/> . 80 81 This driver was formerly known as ibm-acpi. 82 83 Extra functionality will be available if the rfkill (CONFIG_RFKILL) 84 and/or ALSA (CONFIG_SND) subsystems are available in the kernel. 85 Note that if you want ThinkPad-ACPI to be built-in instead of 86 modular, ALSA and rfkill will also have to be built-in. 87 88 If you have an IBM or Lenovo ThinkPad laptop, say Y or M here. 89 90config THINKPAD_ACPI_ALSA_SUPPORT 91 bool "Console audio control ALSA interface" 92 depends on THINKPAD_ACPI 93 depends on SND 94 depends on SND = y || THINKPAD_ACPI = SND 95 default y 96 help 97 Enables monitoring of the built-in console audio output control 98 (headphone and speakers), which is operated by the mute and (in 99 some ThinkPad models) volume hotkeys. 100 101 If this option is enabled, ThinkPad-ACPI will export an ALSA card 102 with a single read-only mixer control, which should be used for 103 on-screen-display feedback purposes by the Desktop Environment. 104 105 Optionally, the driver will also allow software control (the 106 ALSA mixer will be made read-write). Please refer to the driver 107 documentation for details. 108 109 All IBM models have both volume and mute control. Newer Lenovo 110 models only have mute control (the volume hotkeys are just normal 111 keys and volume control is done through the main HDA mixer). 112 113config THINKPAD_ACPI_DEBUGFACILITIES 114 bool "Maintainer debug facilities" 115 depends on THINKPAD_ACPI 116 help 117 Enables extra stuff in the thinkpad-acpi which is completely useless 118 for normal use. Read the driver source to find out what it does. 119 120 Say N here, unless you were told by a kernel maintainer to do 121 otherwise. 122 123config THINKPAD_ACPI_DEBUG 124 bool "Verbose debug mode" 125 depends on THINKPAD_ACPI 126 help 127 Enables extra debugging information, at the expense of a slightly 128 increase in driver size. 129 130 If you are not sure, say N here. 131 132config THINKPAD_ACPI_UNSAFE_LEDS 133 bool "Allow control of important LEDs (unsafe)" 134 depends on THINKPAD_ACPI 135 help 136 Overriding LED state on ThinkPads can mask important 137 firmware alerts (like critical battery condition), or misled 138 the user into damaging the hardware (undocking or ejecting 139 the bay while buses are still active), etc. 140 141 LED control on the ThinkPad is write-only (with very few 142 exceptions on very ancient models), which makes it 143 impossible to know beforehand if important information will 144 be lost when one changes LED state. 145 146 Users that know what they are doing can enable this option 147 and the driver will allow control of every LED, including 148 the ones on the dock stations. 149 150 Never enable this option on a distribution kernel. 151 152 Say N here, unless you are building a kernel for your own 153 use, and need to control the important firmware LEDs. 154 155config THINKPAD_ACPI_VIDEO 156 bool "Video output control support" 157 depends on THINKPAD_ACPI 158 default y 159 help 160 Allows the thinkpad_acpi driver to provide an interface to control 161 the various video output ports. 162 163 This feature often won't work well, depending on ThinkPad model, 164 display state, video output devices in use, whether there is a X 165 server running, phase of the moon, and the current mood of 166 Schroedinger's cat. If you can use X.org's RandR to control 167 your ThinkPad's video output ports instead of this feature, 168 don't think twice: do it and say N here to save memory and avoid 169 bad interactions with X.org. 170 171 NOTE: access to this feature is limited to processes with the 172 CAP_SYS_ADMIN capability, to avoid local DoS issues in platforms 173 where it interacts badly with X.org. 174 175 If you are not sure, say Y here but do try to check if you could 176 be using X.org RandR instead. 177 178config THINKPAD_ACPI_HOTKEY_POLL 179 bool "Support NVRAM polling for hot keys" 180 depends on THINKPAD_ACPI 181 default y 182 help 183 Some thinkpad models benefit from NVRAM polling to detect a few of 184 the hot key press events. If you know your ThinkPad model does not 185 need to do NVRAM polling to support any of the hot keys you use, 186 unselecting this option will save about 1kB of memory. 187 188 ThinkPads T40 and newer, R52 and newer, and X31 and newer are 189 unlikely to need NVRAM polling in their latest BIOS versions. 190 191 NVRAM polling can detect at most the following keys: ThinkPad/Access 192 IBM, Zoom, Switch Display (fn+F7), ThinkLight, Volume up/down/mute, 193 Brightness up/down, Display Expand (fn+F8), Hibernate (fn+F12). 194 195 If you are not sure, say Y here. The driver enables polling only if 196 it is strictly necessary to do so. 197 198config THINKPAD_LMI 199 tristate "Lenovo WMI-based systems management driver" 200 depends on ACPI_WMI 201 depends on DMI 202 select FW_ATTR_CLASS 203 help 204 This driver allows changing BIOS settings on Lenovo machines whose 205 BIOS support the WMI interface. 206 207 To compile this driver as a module, choose M here: the module will 208 be called think-lmi. 209 210config YOGABOOK 211 tristate "Lenovo Yoga Book tablet key driver" 212 depends on ACPI_WMI 213 depends on INPUT 214 depends on I2C 215 select LEDS_CLASS 216 select NEW_LEDS 217 help 218 Say Y here if you want to support the 'Pen' key and keyboard backlight 219 control on the Lenovo Yoga Book tablets. 220 221 To compile this driver as a module, choose M here: the module will 222 be called lenovo-yogabook. 223 224config YT2_1380 225 tristate "Lenovo Yoga Tablet 2 1380 fast charge driver" 226 depends on SERIAL_DEV_BUS 227 depends on EXTCON 228 depends on ACPI 229 help 230 Say Y here to enable support for the custom fast charging protocol 231 found on the Lenovo Yoga Tablet 2 1380F / 1380L models. 232 233 To compile this driver as a module, choose M here: the module will 234 be called lenovo-yogabook. 235 236config LENOVO_WMI_DATA01 237 tristate 238 depends on ACPI_WMI 239 240config LENOVO_WMI_EVENTS 241 tristate 242 depends on ACPI_WMI 243 244config LENOVO_WMI_HELPERS 245 tristate 246 depends on ACPI_WMI 247 248config LENOVO_WMI_GAMEZONE 249 tristate "Lenovo GameZone WMI Driver" 250 depends on ACPI_WMI 251 depends on DMI 252 select ACPI_PLATFORM_PROFILE 253 select LENOVO_WMI_EVENTS 254 select LENOVO_WMI_HELPERS 255 select LENOVO_WMI_TUNING 256 help 257 Say Y here if you have a WMI aware Lenovo Legion device and would like to use the 258 platform-profile firmware interface to manage power usage. 259 260 To compile this driver as a module, choose M here: the module will 261 be called lenovo-wmi-gamezone. 262 263config LENOVO_WMI_TUNING 264 tristate "Lenovo Other Mode WMI Driver" 265 depends on ACPI_WMI 266 select FW_ATTR_CLASS 267 select LENOVO_WMI_DATA01 268 select LENOVO_WMI_EVENTS 269 select LENOVO_WMI_HELPERS 270 help 271 Say Y here if you have a WMI aware Lenovo Legion device and would like to use the 272 firmware_attributes API to control various tunable settings typically exposed by 273 Lenovo software in Windows. 274 275 To compile this driver as a module, choose M here: the module will 276 be called lenovo-wmi-other. 277