xref: /linux/drivers/platform/x86/lenovo/Kconfig (revision 9669b2499ea377764f8320dd562dd6cd4ea80a5d)
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