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