xref: /linux/drivers/platform/x86/Kconfig (revision e184b1e589a7fbb80bfdd0364c11422999a17a26)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# X86 Platform Specific Drivers
4#
5
6menuconfig X86_PLATFORM_DEVICES
7	bool "X86 Platform Specific Device Drivers"
8	default y
9	depends on X86
10	help
11	  Say Y here to get to see options for device drivers for various
12	  x86 platforms, including vendor-specific laptop extension drivers.
13	  This option alone does not add any kernel code.
14
15	  If you say N, all options in this submenu will be skipped and disabled.
16
17if X86_PLATFORM_DEVICES
18
19config ACPI_WMI
20	tristate "WMI"
21	depends on ACPI
22	help
23	  This driver adds support for the ACPI-WMI (Windows Management
24	  Instrumentation) mapper device (PNP0C14) found on some systems.
25
26	  ACPI-WMI is a proprietary extension to ACPI to expose parts of the
27	  ACPI firmware to userspace - this is done through various vendor
28	  defined methods and data blocks in a PNP0C14 device, which are then
29	  made available for userspace to call.
30
31	  The implementation of this in Linux currently only exposes this to
32	  other kernel space drivers.
33
34	  This driver is a required dependency to build the firmware specific
35	  drivers needed on many machines, including Acer and HP laptops.
36
37	  It is safe to enable this driver even if your DSDT doesn't define
38	  any ACPI-WMI devices.
39
40config WMI_BMOF
41	tristate "WMI embedded Binary MOF driver"
42	depends on ACPI_WMI
43	default ACPI_WMI
44	help
45	  Say Y here if you want to be able to read a firmware-embedded
46	  WMI Binary MOF data. Using this requires userspace tools and may be
47	  rather tedious.
48
49	  To compile this driver as a module, choose M here: the module will
50	  be called wmi-bmof.
51
52config HUAWEI_WMI
53	tristate "Huawei WMI laptop extras driver"
54	depends on ACPI_BATTERY
55	depends on ACPI_WMI
56	depends on INPUT
57	select INPUT_SPARSEKMAP
58	select LEDS_CLASS
59	select LEDS_TRIGGERS
60	select LEDS_TRIGGER_AUDIO
61	select NEW_LEDS
62	help
63	  This driver provides support for Huawei WMI hotkeys, battery charge
64	  control, fn-lock, mic-mute LED, and other extra features.
65
66	  To compile this driver as a module, choose M here: the module
67	  will be called huawei-wmi.
68
69config UV_SYSFS
70	tristate "Sysfs structure for UV systems"
71	depends on X86_UV
72	depends on SYSFS
73	help
74	  This driver supports a sysfs tree describing information about
75	  UV systems at /sys/firmware/sgi_uv/.
76
77	  To compile this driver as a module, choose M here: the module will
78	  be called uv_sysfs.
79
80config INTEL_WMI_SBL_FW_UPDATE
81	tristate "Intel WMI Slim Bootloader firmware update signaling driver"
82	depends on ACPI_WMI
83	help
84	  Say Y here if you want to be able to use the WMI interface to signal
85	  Slim Bootloader to trigger update on next reboot.
86
87	  To compile this driver as a module, choose M here: the module will
88	  be called intel-wmi-sbl-fw-update.
89
90config INTEL_WMI_THUNDERBOLT
91	tristate "Intel WMI thunderbolt force power driver"
92	depends on ACPI_WMI
93	help
94	  Say Y here if you want to be able to use the WMI interface on select
95	  systems to force the power control of Intel Thunderbolt controllers.
96	  This is useful for updating the firmware when devices are not plugged
97	  into the controller.
98
99	  To compile this driver as a module, choose M here: the module will
100	  be called intel-wmi-thunderbolt.
101
102config MXM_WMI
103       tristate "WMI support for MXM Laptop Graphics"
104       depends on ACPI_WMI
105	help
106          MXM is a standard for laptop graphics cards, the WMI interface
107	  is required for switchable nvidia graphics machines
108
109config PEAQ_WMI
110	tristate "PEAQ 2-in-1 WMI hotkey driver"
111	depends on ACPI_WMI
112	depends on INPUT
113	help
114	 Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s.
115
116config XIAOMI_WMI
117	tristate "Xiaomi WMI key driver"
118	depends on ACPI_WMI
119	depends on INPUT
120	help
121	  Say Y here if you want to support WMI-based keys on Xiaomi notebooks.
122
123	  To compile this driver as a module, choose M here: the module will
124	  be called xiaomi-wmi.
125
126config GIGABYTE_WMI
127	tristate "Gigabyte WMI temperature driver"
128	depends on ACPI_WMI
129	depends on HWMON
130	help
131	  Say Y here if you want to support WMI-based temperature reporting on
132	  Gigabyte mainboards.
133
134	  To compile this driver as a module, choose M here: the module will
135	  be called gigabyte-wmi.
136
137config ACERHDF
138	tristate "Acer Aspire One temperature and fan driver"
139	depends on ACPI && THERMAL
140	select THERMAL_GOV_BANG_BANG
141	help
142	  This is a driver for Acer Aspire One netbooks. It allows to access
143	  the temperature sensor and to control the fan.
144
145	  After loading this driver the BIOS is still in control of the fan.
146	  To let the kernel handle the fan, do:
147	  echo -n enabled > /sys/class/thermal/thermal_zoneN/mode
148	  where N=0,1,2... depending on the number of thermal nodes and the
149	  detection order of your particular system.  The "type" parameter
150	  in the same node directory will tell you if it is "acerhdf".
151
152	  For more information about this driver see
153	  <https://piie.net/files/acerhdf_README.txt>
154
155	  If you have an Acer Aspire One netbook, say Y or M
156	  here.
157
158config ACER_WIRELESS
159        tristate "Acer Wireless Radio Control Driver"
160        depends on ACPI
161        depends on INPUT
162	help
163          The Acer Wireless Radio Control handles the airplane mode hotkey
164          present on new Acer laptops.
165
166          Say Y or M here if you have an Acer notebook with an airplane mode
167          hotkey.
168
169          If you choose to compile this driver as a module the module will be
170          called acer-wireless.
171
172config ACER_WMI
173	tristate "Acer WMI Laptop Extras"
174	depends on ACPI
175	select LEDS_CLASS
176	select NEW_LEDS
177	depends on BACKLIGHT_CLASS_DEVICE
178	depends on SERIO_I8042
179	depends on INPUT
180	depends on RFKILL || RFKILL = n
181	depends on ACPI_WMI
182	select INPUT_SPARSEKMAP
183	# Acer WMI depends on ACPI_VIDEO when ACPI is enabled
184        select ACPI_VIDEO if ACPI
185	help
186	  This is a driver for newer Acer (and Wistron) laptops. It adds
187	  wireless radio and bluetooth control, and on some laptops,
188	  exposes the mail LED and LCD backlight.
189
190	  If you have an ACPI-WMI compatible Acer/ Wistron laptop, say Y or M
191	  here.
192
193config AMD_PMC
194	tristate "AMD SoC PMC driver"
195	depends on ACPI && PCI
196	help
197	  The driver provides support for AMD Power Management Controller
198	  primarily responsible for S2Idle transactions that are driven from
199	  a platform firmware running on SMU. This driver also provides a debug
200	  mechanism to investigate the S2Idle transactions and failures.
201
202	  Say Y or M here if you have a notebook powered by AMD RYZEN CPU/APU.
203
204	  If you choose to compile this driver as a module the module will be
205	  called amd-pmc.
206
207config ADV_SWBUTTON
208	tristate "Advantech ACPI Software Button Driver"
209	depends on ACPI && INPUT
210	help
211	  Say Y here to enable support for Advantech software defined
212	  button feature. More information can be found at
213	  <http://www.advantech.com.tw/products/>
214
215	  To compile this driver as a module, choose M here. The module will
216	  be called adv_swbutton.
217
218config APPLE_GMUX
219	tristate "Apple Gmux Driver"
220	depends on ACPI && PCI
221	depends on PNP
222	depends on BACKLIGHT_CLASS_DEVICE
223	depends on BACKLIGHT_APPLE=n || BACKLIGHT_APPLE
224	depends on ACPI_VIDEO=n || ACPI_VIDEO
225	help
226	  This driver provides support for the gmux device found on many
227	  Apple laptops, which controls the display mux for the hybrid
228	  graphics as well as the backlight. Currently only backlight
229	  control is supported by the driver.
230
231config ASUS_LAPTOP
232	tristate "Asus Laptop Extras"
233	depends on ACPI
234	select LEDS_CLASS
235	select NEW_LEDS
236	depends on BACKLIGHT_CLASS_DEVICE
237	depends on INPUT
238	depends on RFKILL || RFKILL = n
239	depends on ACPI_VIDEO || ACPI_VIDEO = n
240	select INPUT_SPARSEKMAP
241	help
242	  This is a driver for Asus laptops, Lenovo SL and the Pegatron
243	  Lucid tablet. It may also support some MEDION, JVC or VICTOR
244	  laptops. It makes all the extra buttons generate standard
245	  ACPI events and input events, and on the Lucid the built-in
246	  accelerometer appears as an input device.  It also adds
247	  support for video output switching, LCD backlight control,
248	  Bluetooth and Wlan control, and most importantly, allows you
249	  to blink those fancy LEDs.
250
251	  For more information see <http://acpi4asus.sf.net>.
252
253	  If you have an ACPI-compatible ASUS laptop, say Y or M here.
254
255config ASUS_WIRELESS
256	tristate "Asus Wireless Radio Control Driver"
257	depends on ACPI
258	depends on INPUT
259	select NEW_LEDS
260	select LEDS_CLASS
261	help
262	  The Asus Wireless Radio Control handles the airplane mode hotkey
263	  present on some Asus laptops.
264
265	  Say Y or M here if you have an ASUS notebook with an airplane mode
266	  hotkey.
267
268	  If you choose to compile this driver as a module the module will be
269	  called asus-wireless.
270
271config ASUS_WMI
272	tristate "ASUS WMI Driver"
273	depends on ACPI_WMI
274	depends on ACPI_BATTERY
275	depends on INPUT
276	depends on HWMON
277	depends on BACKLIGHT_CLASS_DEVICE
278	depends on RFKILL || RFKILL = n
279	depends on HOTPLUG_PCI
280	depends on ACPI_VIDEO || ACPI_VIDEO = n
281	select INPUT_SPARSEKMAP
282	select LEDS_CLASS
283	select NEW_LEDS
284	help
285	  Say Y here if you have a WMI aware Asus laptop (like Eee PCs or new
286	  Asus Notebooks).
287
288	  To compile this driver as a module, choose M here: the module will
289	  be called asus-wmi.
290
291config ASUS_NB_WMI
292	tristate "Asus Notebook WMI Driver"
293	depends on ASUS_WMI
294	depends on SERIO_I8042 || SERIO_I8042 = n
295	help
296	  This is a driver for newer Asus notebooks. It adds extra features
297	  like wireless radio and bluetooth control, leds, hotkeys, backlight...
298
299	  For more information, see
300	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
301
302	  If you have an ACPI-WMI compatible Asus Notebook, say Y or M
303	  here.
304
305config EEEPC_LAPTOP
306	tristate "Eee PC Hotkey Driver"
307	depends on ACPI
308	depends on INPUT
309	depends on RFKILL || RFKILL = n
310	depends on ACPI_VIDEO || ACPI_VIDEO = n
311	depends on HOTPLUG_PCI
312	depends on BACKLIGHT_CLASS_DEVICE
313	select HWMON
314	select LEDS_CLASS
315	select NEW_LEDS
316	select INPUT_SPARSEKMAP
317	help
318	  This driver supports the Fn-Fx keys on Eee PC laptops.
319
320	  It  also gives access to some extra laptop functionalities like
321	  Bluetooth, backlight and allows powering on/off some other
322	  devices.
323
324	  If you have an Eee PC laptop, say Y or M here. If this driver
325	  doesn't work on your Eee PC, try eeepc-wmi instead.
326
327config EEEPC_WMI
328	tristate "Eee PC WMI Driver"
329	depends on ASUS_WMI
330	help
331	  This is a driver for newer Eee PC laptops. It adds extra features
332	  like wireless radio and bluetooth control, leds, hotkeys, backlight...
333
334	  For more information, see
335	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
336
337	  If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M
338	  here.
339
340source "drivers/platform/x86/dell/Kconfig"
341
342config AMILO_RFKILL
343	tristate "Fujitsu-Siemens Amilo rfkill support"
344	depends on RFKILL
345	depends on SERIO_I8042
346	help
347	  This is a driver for enabling wifi on some Fujitsu-Siemens Amilo
348	  laptops.
349
350config FUJITSU_LAPTOP
351	tristate "Fujitsu Laptop Extras"
352	depends on ACPI
353	depends on INPUT
354	depends on BACKLIGHT_CLASS_DEVICE
355	depends on ACPI_VIDEO || ACPI_VIDEO = n
356	select INPUT_SPARSEKMAP
357	select NEW_LEDS
358	select LEDS_CLASS
359	help
360	  This is a driver for laptops built by Fujitsu:
361
362	    * P2xxx/P5xxx/S6xxx/S7xxx series Lifebooks
363	    * Possibly other Fujitsu laptop models
364	    * Tested with S6410 and S7020
365
366	  It adds support for LCD brightness control and some hotkeys.
367
368	  If you have a Fujitsu laptop, say Y or M here.
369
370config FUJITSU_TABLET
371       tristate "Fujitsu Tablet Extras"
372       depends on ACPI
373       depends on INPUT
374	help
375         This is a driver for tablets built by Fujitsu:
376
377           * Lifebook P1510/P1610/P1620/Txxxx
378           * Stylistic ST5xxx
379           * Possibly other Fujitsu tablet models
380
381         It adds support for the panel buttons, docking station detection,
382         tablet/notebook mode detection for convertible and
383         orientation detection for docked slates.
384
385         If you have a Fujitsu convertible or slate, say Y or M here.
386
387config GPD_POCKET_FAN
388	tristate "GPD Pocket Fan Controller support"
389	depends on ACPI
390	depends on THERMAL
391	help
392	  Driver for the GPD Pocket vendor specific FAN02501 ACPI device
393	  which controls the fan speed on the GPD Pocket.
394
395	  Without this driver the fan on the Pocket will stay off independent
396	  of the CPU temperature. Say Y or M if the kernel may be used on a
397	  GPD pocket.
398
399config HP_ACCEL
400	tristate "HP laptop accelerometer"
401	depends on INPUT && ACPI
402	depends on SERIO_I8042
403	select SENSORS_LIS3LV02D
404	select NEW_LEDS
405	select LEDS_CLASS
406	help
407	  This driver provides support for the "Mobile Data Protection System 3D"
408	  or "3D DriveGuard" feature of HP laptops. On such systems the driver
409	  should load automatically (via ACPI alias).
410
411	  Support for a led indicating disk protection will be provided as
412	  hp::hddprotect. For more information on the feature, refer to
413	  Documentation/misc-devices/lis3lv02d.rst.
414
415	  To compile this driver as a module, choose M here: the module will
416	  be called hp_accel.
417
418config WIRELESS_HOTKEY
419	tristate "Wireless hotkey button"
420	depends on ACPI
421	depends on INPUT
422	help
423	 This driver provides supports for the wireless buttons found on some AMD,
424	 HP, & Xioami laptops.
425	 On such systems the driver should load automatically (via ACPI alias).
426
427	 To compile this driver as a module, choose M here: the module will
428	 be called wireless-hotkey.
429
430config HP_WMI
431	tristate "HP WMI extras"
432	depends on ACPI_WMI
433	depends on INPUT
434	depends on RFKILL || RFKILL = n
435	select INPUT_SPARSEKMAP
436	select ACPI_PLATFORM_PROFILE
437	help
438	 Say Y here if you want to support WMI-based hotkeys on HP laptops and
439	 to read data from WMI such as docking or ambient light sensor state.
440
441	 To compile this driver as a module, choose M here: the module will
442	 be called hp-wmi.
443
444config TC1100_WMI
445	tristate "HP Compaq TC1100 Tablet WMI Extras"
446	depends on !X86_64
447	depends on ACPI
448	depends on ACPI_WMI
449	help
450	  This is a driver for the WMI extensions (wireless and bluetooth power
451	  control) of the HP Compaq TC1100 tablet.
452
453config IBM_RTL
454	tristate "Device driver to enable PRTL support"
455	depends on PCI
456	help
457	 Enable support for IBM Premium Real Time Mode (PRTM).
458	 This module will allow you the enter and exit PRTM in the BIOS via
459	 sysfs on platforms that support this feature.  System in PRTM will
460	 not receive CPU-generated SMIs for recoverable errors.  Use of this
461	 feature without proper support may void your hardware warranty.
462
463	 If the proper BIOS support is found the driver will load and create
464	 /sys/devices/system/ibm_rtl/.  The "state" variable will indicate
465	 whether or not the BIOS is in PRTM.
466	 state = 0 (BIOS SMIs on)
467	 state = 1 (BIOS SMIs off)
468
469config IDEAPAD_LAPTOP
470	tristate "Lenovo IdeaPad Laptop Extras"
471	depends on ACPI
472	depends on RFKILL && INPUT
473	depends on SERIO_I8042
474	depends on BACKLIGHT_CLASS_DEVICE
475	depends on ACPI_VIDEO || ACPI_VIDEO = n
476	depends on ACPI_WMI || ACPI_WMI = n
477	select ACPI_PLATFORM_PROFILE
478	select INPUT_SPARSEKMAP
479	select NEW_LEDS
480	select LEDS_CLASS
481	help
482	  This is a driver for Lenovo IdeaPad netbooks contains drivers for
483	  rfkill switch, hotkey, fan control and backlight control.
484
485config SENSORS_HDAPS
486	tristate "Thinkpad Hard Drive Active Protection System (hdaps)"
487	depends on INPUT
488	help
489	  This driver provides support for the IBM Hard Drive Active Protection
490	  System (hdaps), which provides an accelerometer and other misc. data.
491	  ThinkPads starting with the R50, T41, and X40 are supported.  The
492	  accelerometer data is readable via sysfs.
493
494	  This driver also provides an absolute input class device, allowing
495	  the laptop to act as a pinball machine-esque joystick.
496
497	  If your ThinkPad is not recognized by the driver, please update to latest
498	  BIOS. This is especially the case for some R52 ThinkPads.
499
500	  Say Y here if you have an applicable laptop and want to experience
501	  the awesome power of hdaps.
502
503config THINKPAD_ACPI
504	tristate "ThinkPad ACPI Laptop Extras"
505	depends on ACPI
506	depends on ACPI_BATTERY
507	depends on INPUT
508	depends on RFKILL || RFKILL = n
509	depends on ACPI_VIDEO || ACPI_VIDEO = n
510	depends on BACKLIGHT_CLASS_DEVICE
511	depends on I2C
512	select ACPI_PLATFORM_PROFILE
513	select HWMON
514	select NVRAM
515	select NEW_LEDS
516	select LEDS_CLASS
517	select LEDS_TRIGGERS
518	select LEDS_TRIGGER_AUDIO
519	help
520	  This is a driver for the IBM and Lenovo ThinkPad laptops. It adds
521	  support for Fn-Fx key combinations, Bluetooth control, video
522	  output switching, ThinkLight control, UltraBay eject and more.
523	  For more information about this driver see
524	  <file:Documentation/admin-guide/laptops/thinkpad-acpi.rst> and
525	  <http://ibm-acpi.sf.net/> .
526
527	  This driver was formerly known as ibm-acpi.
528
529	  Extra functionality will be available if the rfkill (CONFIG_RFKILL)
530	  and/or ALSA (CONFIG_SND) subsystems are available in the kernel.
531	  Note that if you want ThinkPad-ACPI to be built-in instead of
532	  modular, ALSA and rfkill will also have to be built-in.
533
534	  If you have an IBM or Lenovo ThinkPad laptop, say Y or M here.
535
536config THINKPAD_ACPI_ALSA_SUPPORT
537	bool "Console audio control ALSA interface"
538	depends on THINKPAD_ACPI
539	depends on SND
540	depends on SND = y || THINKPAD_ACPI = SND
541	default y
542	help
543	  Enables monitoring of the built-in console audio output control
544	  (headphone and speakers), which is operated by the mute and (in
545	  some ThinkPad models) volume hotkeys.
546
547	  If this option is enabled, ThinkPad-ACPI will export an ALSA card
548	  with a single read-only mixer control, which should be used for
549	  on-screen-display feedback purposes by the Desktop Environment.
550
551	  Optionally, the driver will also allow software control (the
552	  ALSA mixer will be made read-write).  Please refer to the driver
553	  documentation for details.
554
555	  All IBM models have both volume and mute control.  Newer Lenovo
556	  models only have mute control (the volume hotkeys are just normal
557	  keys and volume control is done through the main HDA mixer).
558
559config THINKPAD_ACPI_DEBUGFACILITIES
560	bool "Maintainer debug facilities"
561	depends on THINKPAD_ACPI
562	help
563	  Enables extra stuff in the thinkpad-acpi which is completely useless
564	  for normal use.  Read the driver source to find out what it does.
565
566	  Say N here, unless you were told by a kernel maintainer to do
567	  otherwise.
568
569config THINKPAD_ACPI_DEBUG
570	bool "Verbose debug mode"
571	depends on THINKPAD_ACPI
572	help
573	  Enables extra debugging information, at the expense of a slightly
574	  increase in driver size.
575
576	  If you are not sure, say N here.
577
578config THINKPAD_ACPI_UNSAFE_LEDS
579	bool "Allow control of important LEDs (unsafe)"
580	depends on THINKPAD_ACPI
581	help
582	  Overriding LED state on ThinkPads can mask important
583	  firmware alerts (like critical battery condition), or misled
584	  the user into damaging the hardware (undocking or ejecting
585	  the bay while buses are still active), etc.
586
587	  LED control on the ThinkPad is write-only (with very few
588	  exceptions on very ancient models), which makes it
589	  impossible to know beforehand if important information will
590	  be lost when one changes LED state.
591
592	  Users that know what they are doing can enable this option
593	  and the driver will allow control of every LED, including
594	  the ones on the dock stations.
595
596	  Never enable this option on a distribution kernel.
597
598	  Say N here, unless you are building a kernel for your own
599	  use, and need to control the important firmware LEDs.
600
601config THINKPAD_ACPI_VIDEO
602	bool "Video output control support"
603	depends on THINKPAD_ACPI
604	default y
605	help
606	  Allows the thinkpad_acpi driver to provide an interface to control
607	  the various video output ports.
608
609	  This feature often won't work well, depending on ThinkPad model,
610	  display state, video output devices in use, whether there is a X
611	  server running, phase of the moon, and the current mood of
612	  Schroedinger's cat.  If you can use X.org's RandR to control
613	  your ThinkPad's video output ports instead of this feature,
614	  don't think twice: do it and say N here to save memory and avoid
615	  bad interactions with X.org.
616
617	  NOTE: access to this feature is limited to processes with the
618	  CAP_SYS_ADMIN capability, to avoid local DoS issues in platforms
619	  where it interacts badly with X.org.
620
621	  If you are not sure, say Y here but do try to check if you could
622	  be using X.org RandR instead.
623
624config THINKPAD_ACPI_HOTKEY_POLL
625	bool "Support NVRAM polling for hot keys"
626	depends on THINKPAD_ACPI
627	default y
628	help
629	  Some thinkpad models benefit from NVRAM polling to detect a few of
630	  the hot key press events.  If you know your ThinkPad model does not
631	  need to do NVRAM polling to support any of the hot keys you use,
632	  unselecting this option will save about 1kB of memory.
633
634	  ThinkPads T40 and newer, R52 and newer, and X31 and newer are
635	  unlikely to need NVRAM polling in their latest BIOS versions.
636
637	  NVRAM polling can detect at most the following keys: ThinkPad/Access
638	  IBM, Zoom, Switch Display (fn+F7), ThinkLight, Volume up/down/mute,
639	  Brightness up/down, Display Expand (fn+F8), Hibernate (fn+F12).
640
641	  If you are not sure, say Y here.  The driver enables polling only if
642	  it is strictly necessary to do so.
643
644config THINKPAD_LMI
645	tristate "Lenovo WMI-based systems management driver"
646	depends on ACPI_WMI
647	select FW_ATTR_CLASS
648	help
649	  This driver allows changing BIOS settings on Lenovo machines whose
650	  BIOS support the WMI interface.
651
652	  To compile this driver as a module, choose M here: the module will
653	  be called think-lmi.
654
655source "drivers/platform/x86/intel/Kconfig"
656
657config INTEL_ATOMISP2_LED
658	tristate "Intel AtomISP2 camera LED driver"
659	depends on GPIOLIB && LEDS_GPIO
660	help
661	  Many Bay Trail and Cherry Trail devices come with a camera attached
662	  to Intel's Image Signal Processor. Linux currently does not have a
663	  driver for these, so they do not work as a camera. Some of these
664	  camera's have a LED which is controlled through a GPIO.
665
666	  Some of these devices have a firmware issue where the LED gets turned
667	  on at boot. This driver will turn the LED off at boot and also allows
668	  controlling the LED (repurposing it) through the sysfs LED interface.
669
670	  Which GPIO is attached to the LED is usually not described in the
671	  ACPI tables, so this driver contains per-system info about the GPIO
672	  inside the driver, this means that this driver only works on systems
673	  the driver knows about.
674
675	  To compile this driver as a module, choose M here: the module
676	  will be called intel_atomisp2_led.
677
678config INTEL_ATOMISP2_PM
679	tristate "Intel AtomISP2 dummy / power-management driver"
680	depends on PCI && IOSF_MBI && PM
681	depends on !INTEL_ATOMISP
682	help
683	  Power-management driver for Intel's Image Signal Processor found on
684	  Bay Trail and Cherry Trail devices. This dummy driver's sole purpose
685	  is to turn the ISP off (put it in D3) to save power and to allow
686	  entering of S0ix modes.
687
688	  To compile this driver as a module, choose M here: the module
689	  will be called intel_atomisp2_pm.
690
691config INTEL_HID_EVENT
692	tristate "INTEL HID Event"
693	depends on ACPI
694	depends on INPUT
695	depends on I2C
696	select INPUT_SPARSEKMAP
697	help
698	  This driver provides support for the Intel HID Event hotkey interface.
699	  Some laptops require this driver for hotkey support.
700
701	  To compile this driver as a module, choose M here: the module will
702	  be called intel_hid.
703
704config INTEL_INT0002_VGPIO
705	tristate "Intel ACPI INT0002 Virtual GPIO driver"
706	depends on GPIOLIB && ACPI && PM_SLEEP
707	select GPIOLIB_IRQCHIP
708	help
709	  Some peripherals on Bay Trail and Cherry Trail platforms signal a
710	  Power Management Event (PME) to the Power Management Controller (PMC)
711	  to wakeup the system. When this happens software needs to explicitly
712	  clear the PME bus 0 status bit in the GPE0a_STS register to avoid an
713	  IRQ storm on IRQ 9.
714
715	  This is modelled in ACPI through the INT0002 ACPI device, which is
716	  called a "Virtual GPIO controller" in ACPI because it defines the
717	  event handler to call when the PME triggers through _AEI and _L02
718	  methods as would be done for a real GPIO interrupt in ACPI.
719
720	  To compile this driver as a module, choose M here: the module will
721	  be called intel_int0002_vgpio.
722
723config INTEL_MENLOW
724	tristate "Thermal Management driver for Intel menlow platform"
725	depends on ACPI_THERMAL
726	select THERMAL
727	help
728	  ACPI thermal management enhancement driver on
729	  Intel Menlow platform.
730
731	  If unsure, say N.
732
733config INTEL_OAKTRAIL
734	tristate "Intel Oaktrail Platform Extras"
735	depends on ACPI
736	depends on ACPI_VIDEO || ACPI_VIDEO = n
737	depends on RFKILL && BACKLIGHT_CLASS_DEVICE && ACPI
738	help
739	  Intel Oaktrail platform need this driver to provide interfaces to
740	  enable/disable the Camera, WiFi, BT etc. devices. If in doubt, say Y
741	  here; it will only load on supported platforms.
742
743config INTEL_VBTN
744	tristate "INTEL VIRTUAL BUTTON"
745	depends on ACPI
746	depends on INPUT
747	depends on I2C
748	select INPUT_SPARSEKMAP
749	help
750	  This driver provides support for the Intel Virtual Button interface.
751	  Some laptops require this driver for power button support.
752
753	  To compile this driver as a module, choose M here: the module will
754	  be called intel_vbtn.
755
756config MSI_LAPTOP
757	tristate "MSI Laptop Extras"
758	depends on ACPI
759	depends on BACKLIGHT_CLASS_DEVICE
760	depends on ACPI_VIDEO || ACPI_VIDEO = n
761	depends on RFKILL
762	depends on INPUT && SERIO_I8042
763	select INPUT_SPARSEKMAP
764	help
765	  This is a driver for laptops built by MSI (MICRO-STAR
766	  INTERNATIONAL):
767
768	  MSI MegaBook S270 (MS-1013)
769	  Cytron/TCM/Medion/Tchibo MD96100/SAM2000
770
771	  It adds support for Bluetooth, WLAN and LCD brightness control.
772
773	  More information about this driver is available at
774	  <http://0pointer.de/lennart/tchibo.html>.
775
776	  If you have an MSI S270 laptop, say Y or M here.
777
778config MSI_WMI
779	tristate "MSI WMI extras"
780	depends on ACPI_WMI
781	depends on INPUT
782	depends on BACKLIGHT_CLASS_DEVICE
783	depends on ACPI_VIDEO || ACPI_VIDEO = n
784	select INPUT_SPARSEKMAP
785	help
786	 Say Y here if you want to support WMI-based hotkeys on MSI laptops.
787
788	 To compile this driver as a module, choose M here: the module will
789	 be called msi-wmi.
790
791config XO15_EBOOK
792	tristate "OLPC XO-1.5 ebook switch"
793	depends on OLPC || COMPILE_TEST
794	depends on ACPI && INPUT
795	help
796	  Support for the ebook switch on the OLPC XO-1.5 laptop.
797
798	  This switch is triggered as the screen is rotated and folded down to
799	  convert the device into ebook form.
800
801config XO1_RFKILL
802	tristate "OLPC XO-1 software RF kill switch"
803	depends on OLPC || COMPILE_TEST
804	depends on RFKILL
805	help
806	  Support for enabling/disabling the WLAN interface on the OLPC XO-1
807	  laptop.
808
809config PCENGINES_APU2
810	tristate "PC Engines APUv2/3 front button and LEDs driver"
811	depends on INPUT && INPUT_KEYBOARD && GPIOLIB
812	depends on LEDS_CLASS
813	select GPIO_AMD_FCH
814	select KEYBOARD_GPIO_POLLED
815	select LEDS_GPIO
816	help
817	  This driver provides support for the front button and LEDs on
818	  PC Engines APUv2/APUv3 board.
819
820	  To compile this driver as a module, choose M here: the module
821	  will be called pcengines-apuv2.
822
823config SAMSUNG_LAPTOP
824	tristate "Samsung Laptop driver"
825	depends on RFKILL || RFKILL = n
826	depends on ACPI_VIDEO || ACPI_VIDEO = n
827	depends on BACKLIGHT_CLASS_DEVICE
828	select LEDS_CLASS
829	select NEW_LEDS
830	help
831	  This module implements a driver for a wide range of different
832	  Samsung laptops.  It offers control over the different
833	  function keys, wireless LED, LCD backlight level.
834
835	  It may also provide some sysfs files described in
836	  <file:Documentation/ABI/testing/sysfs-driver-samsung-laptop>
837
838	  To compile this driver as a module, choose M here: the module
839	  will be called samsung-laptop.
840
841config SAMSUNG_Q10
842	tristate "Samsung Q10 Extras"
843	depends on ACPI
844	select BACKLIGHT_CLASS_DEVICE
845	help
846	  This driver provides support for backlight control on Samsung Q10
847	  and related laptops, including Dell Latitude X200.
848
849config ACPI_TOSHIBA
850	tristate "Toshiba Laptop Extras"
851	depends on ACPI
852	depends on ACPI_WMI
853	select LEDS_CLASS
854	select NEW_LEDS
855	depends on BACKLIGHT_CLASS_DEVICE
856	depends on INPUT
857	depends on SERIO_I8042 || SERIO_I8042 = n
858	depends on ACPI_VIDEO || ACPI_VIDEO = n
859	depends on RFKILL || RFKILL = n
860	depends on IIO
861	select INPUT_SPARSEKMAP
862	help
863	  This driver adds support for access to certain system settings
864	  on "legacy free" Toshiba laptops.  These laptops can be recognized by
865	  their lack of a BIOS setup menu and APM support.
866
867	  On these machines, all system configuration is handled through the
868	  ACPI.  This driver is required for access to controls not covered
869	  by the general ACPI drivers, such as LCD brightness, video output,
870	  etc.
871
872	  This driver differs from the non-ACPI Toshiba laptop driver (located
873	  under "Processor type and features") in several aspects.
874	  Configuration is accessed by reading and writing text files in the
875	  /proc tree instead of by program interface to /dev.  Furthermore, no
876	  power management functions are exposed, as those are handled by the
877	  general ACPI drivers.
878
879	  More information about this driver is available at
880	  <http://memebeam.org/toys/ToshibaAcpiDriver>.
881
882	  If you have a legacy free Toshiba laptop (such as the Libretto L1
883	  series), say Y.
884
885config TOSHIBA_BT_RFKILL
886	tristate "Toshiba Bluetooth RFKill switch support"
887	depends on ACPI
888	depends on RFKILL || RFKILL = n
889	help
890	  This driver adds support for Bluetooth events for the RFKill
891	  switch on modern Toshiba laptops with full ACPI support and
892	  an RFKill switch.
893
894	  This driver handles RFKill events for the TOS6205 Bluetooth,
895	  and re-enables it when the switch is set back to the 'on'
896	  position.
897
898	  If you have a modern Toshiba laptop with a Bluetooth and an
899	  RFKill switch (such as the Portege R500), say Y.
900
901config TOSHIBA_HAPS
902	tristate "Toshiba HDD Active Protection Sensor"
903	depends on ACPI
904	help
905	  This driver adds support for the built-in accelerometer
906	  found on recent Toshiba laptops equipped with HID TOS620A
907	  device.
908
909	  This driver receives ACPI notify events 0x80 when the sensor
910	  detects a sudden move or a harsh vibration, as well as an
911	  ACPI notify event 0x81 whenever the movement or vibration has
912	  been stabilized.
913
914	  Also provides sysfs entries to get/set the desired protection
915	  level and resetting the HDD protection interface.
916
917	  If you have a recent Toshiba laptop with a built-in accelerometer
918	  device, say Y.
919
920config TOSHIBA_WMI
921	tristate "Toshiba WMI Hotkeys Driver (EXPERIMENTAL)"
922	depends on ACPI_WMI
923	depends on INPUT
924	select INPUT_SPARSEKMAP
925	help
926	  This driver adds hotkey monitoring support to some Toshiba models
927	  that manage the hotkeys via WMI events.
928
929	  WARNING: This driver is incomplete as it lacks a proper keymap and the
930	  *notify function only prints the ACPI event type value. Be warned that
931	  you will need to provide some information if you have a Toshiba model
932	  with WMI event hotkeys and want to help with the development of this
933	  driver.
934
935	  If you have a WMI-based hotkeys Toshiba laptop, say Y or M here.
936
937config ACPI_CMPC
938	tristate "CMPC Laptop Extras"
939	depends on ACPI && INPUT
940	depends on RFKILL || RFKILL=n
941	select BACKLIGHT_CLASS_DEVICE
942	help
943	  Support for Intel Classmate PC ACPI devices, including some
944	  keys as input device, backlight device, tablet and accelerometer
945	  devices.
946
947config COMPAL_LAPTOP
948	tristate "Compal (and others) Laptop Extras"
949	depends on ACPI
950	depends on BACKLIGHT_CLASS_DEVICE
951	depends on ACPI_VIDEO || ACPI_VIDEO = n
952	depends on RFKILL
953	depends on HWMON
954	depends on POWER_SUPPLY
955	help
956	  This is a driver for laptops built by Compal, and some models by
957	  other brands (e.g. Dell, Toshiba).
958
959	  It adds support for rfkill, Bluetooth, WLAN, LCD brightness, hwmon
960	  and battery charging level control.
961
962config LG_LAPTOP
963	tristate "LG Laptop Extras"
964	depends on ACPI
965	depends on ACPI_WMI
966	depends on INPUT
967	select INPUT_SPARSEKMAP
968	select NEW_LEDS
969	select LEDS_CLASS
970	help
971	 This driver adds support for hotkeys as well as control of keyboard
972	 backlight, battery maximum charge level and various other ACPI
973	 features.
974
975	 If you have an LG Gram laptop, say Y or M here.
976
977config PANASONIC_LAPTOP
978	tristate "Panasonic Laptop Extras"
979	depends on INPUT && ACPI
980	depends on BACKLIGHT_CLASS_DEVICE
981	select INPUT_SPARSEKMAP
982	help
983	  This driver adds support for access to backlight control and hotkeys
984	  on Panasonic Let's Note laptops.
985
986	  If you have a Panasonic Let's note laptop (such as the R1(N variant),
987	  R2, R3, R5, T2, W2 and Y2 series), say Y.
988
989config SONY_LAPTOP
990	tristate "Sony Laptop Extras"
991	depends on ACPI
992	depends on ACPI_VIDEO || ACPI_VIDEO = n
993	depends on BACKLIGHT_CLASS_DEVICE
994	depends on INPUT
995	depends on RFKILL
996	help
997	  This mini-driver drives the SNC and SPIC devices present in the ACPI
998	  BIOS of the Sony Vaio laptops.
999
1000	  It gives access to some extra laptop functionalities like Bluetooth,
1001	  screen brightness control, Fn keys and allows powering on/off some
1002	  devices.
1003
1004	  Read <file:Documentation/admin-guide/laptops/sony-laptop.rst> for more information.
1005
1006config SONYPI_COMPAT
1007	bool "Sonypi compatibility"
1008	depends on SONY_LAPTOP
1009	help
1010	  Build the sonypi driver compatibility code into the sony-laptop driver.
1011
1012config SYSTEM76_ACPI
1013	tristate "System76 ACPI Driver"
1014	depends on ACPI
1015	select NEW_LEDS
1016	select LEDS_CLASS
1017	select LEDS_TRIGGERS
1018	help
1019	  This is a driver for System76 laptops running open firmware. It adds
1020	  support for Fn-Fx key combinations, keyboard backlight, and airplane mode
1021	  LEDs.
1022
1023	  If you have a System76 laptop running open firmware, say Y or M here.
1024
1025config TOPSTAR_LAPTOP
1026	tristate "Topstar Laptop Extras"
1027	depends on ACPI
1028	depends on INPUT
1029	select INPUT_SPARSEKMAP
1030	select LEDS_CLASS
1031	select NEW_LEDS
1032	help
1033	  This driver adds support for hotkeys found on Topstar laptops.
1034
1035	  If you have a Topstar laptop, say Y or M here.
1036
1037config I2C_MULTI_INSTANTIATE
1038	tristate "I2C multi instantiate pseudo device driver"
1039	depends on I2C && ACPI
1040	help
1041	  Some ACPI-based systems list multiple i2c-devices in a single ACPI
1042	  firmware-node. This driver will instantiate separate i2c-clients
1043	  for each device in the firmware-node.
1044
1045	  To compile this driver as a module, choose M here: the module
1046	  will be called i2c-multi-instantiate.
1047
1048config MLX_PLATFORM
1049	tristate "Mellanox Technologies platform support"
1050	depends on I2C && REGMAP
1051	help
1052	  This option enables system support for the Mellanox Technologies
1053	  platform. The Mellanox systems provide data center networking
1054	  solutions based on Virtual Protocol Interconnect (VPI) technology
1055	  enable seamless connectivity to 56/100Gb/s InfiniBand or 10/40/56GbE
1056	  connection.
1057
1058	  If you have a Mellanox system, say Y or M here.
1059
1060config TOUCHSCREEN_DMI
1061	bool "DMI based touchscreen configuration info"
1062	depends on ACPI && DMI && I2C=y && TOUCHSCREEN_SILEAD
1063	select EFI_EMBEDDED_FIRMWARE if EFI
1064	help
1065	  Certain ACPI based tablets with e.g. Silead or Chipone touchscreens
1066	  do not have enough data in ACPI tables for the touchscreen driver to
1067	  handle the touchscreen properly, as OEMs expect the data to be baked
1068	  into the tablet model specific version of the driver shipped with the
1069	  the OS-image for the device. This option supplies the missing info.
1070	  Enable this for x86 tablets with Silead or Chipone touchscreens.
1071
1072config FW_ATTR_CLASS
1073	tristate
1074
1075config INTEL_IMR
1076	bool "Intel Isolated Memory Region support"
1077	depends on X86_INTEL_QUARK && IOSF_MBI
1078	help
1079	  This option provides a means to manipulate Isolated Memory Regions.
1080	  IMRs are a set of registers that define read and write access masks
1081	  to prohibit certain system agents from accessing memory with 1 KiB
1082	  granularity.
1083
1084	  IMRs make it possible to control read/write access to an address
1085	  by hardware agents inside the SoC. Read and write masks can be
1086	  defined for:
1087		- eSRAM flush
1088		- Dirty CPU snoop (write only)
1089		- RMU access
1090		- PCI Virtual Channel 0/Virtual Channel 1
1091		- SMM mode
1092		- Non SMM mode
1093
1094	  Quark contains a set of eight IMR registers and makes use of those
1095	  registers during its bootup process.
1096
1097	  If you are running on a Galileo/Quark say Y here.
1098
1099config INTEL_IPS
1100	tristate "Intel Intelligent Power Sharing"
1101	depends on ACPI && PCI
1102	help
1103	  Intel Calpella platforms support dynamic power sharing between the
1104	  CPU and GPU, maximizing performance in a given TDP.  This driver,
1105	  along with the CPU frequency and i915 drivers, provides that
1106	  functionality.  If in doubt, say Y here; it will only load on
1107	  supported platforms.
1108
1109config INTEL_RST
1110        tristate "Intel Rapid Start Technology Driver"
1111	depends on ACPI
1112	help
1113	  This driver provides support for modifying parameters on systems
1114	  equipped with Intel's Rapid Start Technology. When put in an ACPI
1115	  sleep state, these devices will wake after either a configured
1116	  timeout or when the system battery reaches a critical state,
1117	  automatically copying memory contents to disk. On resume, the
1118	  firmware will copy the memory contents back to RAM and resume the OS
1119	  as usual.
1120
1121config INTEL_SMARTCONNECT
1122        tristate "Intel Smart Connect disabling driver"
1123	depends on ACPI
1124	help
1125	  Intel Smart Connect is a technology intended to permit devices to
1126	  update state by resuming for a short period of time at regular
1127	  intervals. If a user enables this functionality under Windows and
1128	  then reboots into Linux, the system may remain configured to resume
1129	  on suspend. In the absence of any userspace to support it, the system
1130	  will then remain awake until something triggers another suspend.
1131
1132	  This driver checks to determine whether the device has Intel Smart
1133	  Connect enabled, and if so disables it.
1134
1135source "drivers/platform/x86/intel_speed_select_if/Kconfig"
1136
1137config INTEL_TURBO_MAX_3
1138	bool "Intel Turbo Boost Max Technology 3.0 enumeration driver"
1139	depends on X86_64 && SCHED_MC_PRIO
1140	help
1141	  This driver reads maximum performance ratio of each CPU and set up
1142	  the scheduler priority metrics. In this way scheduler can prefer
1143	  CPU with higher performance to schedule tasks.
1144	  This driver is only required when the system is not using Hardware
1145	  P-States (HWP). In HWP mode, priority can be read from ACPI tables.
1146
1147config INTEL_UNCORE_FREQ_CONTROL
1148	tristate "Intel Uncore frequency control driver"
1149	depends on X86_64
1150	help
1151	  This driver allows control of uncore frequency limits on
1152	  supported server platforms.
1153	  Uncore frequency controls RING/LLC (last-level cache) clocks.
1154
1155	  To compile this driver as a module, choose M here: the module
1156	  will be called intel-uncore-frequency.
1157
1158config INTEL_BXTWC_PMIC_TMU
1159	tristate "Intel BXT Whiskey Cove TMU Driver"
1160	depends on REGMAP
1161	depends on MFD_INTEL_PMC_BXT
1162	depends on INTEL_SOC_PMIC_BXTWC
1163	help
1164	  Select this driver to use Intel BXT Whiskey Cove PMIC TMU feature.
1165	  This driver enables the alarm wakeup functionality in the TMU unit
1166	  of Whiskey Cove PMIC.
1167
1168config INTEL_CHTDC_TI_PWRBTN
1169	tristate "Intel Cherry Trail Dollar Cove TI power button driver"
1170	depends on INTEL_SOC_PMIC_CHTDC_TI
1171	depends on INPUT
1172	help
1173	  This option adds a power button driver driver for Dollar Cove TI
1174	  PMIC on Intel Cherry Trail devices.
1175
1176	  To compile this driver as a module, choose M here: the module
1177	  will be called intel_chtdc_ti_pwrbtn.
1178
1179config INTEL_MRFLD_PWRBTN
1180	tristate "Intel Merrifield Basin Cove power button driver"
1181	depends on INTEL_SOC_PMIC_MRFLD
1182	depends on INPUT
1183	help
1184	  This option adds a power button driver for Basin Cove PMIC
1185	  on Intel Merrifield devices.
1186
1187	  To compile this driver as a module, choose M here: the module
1188	  will be called intel_mrfld_pwrbtn.
1189
1190config INTEL_PMC_CORE
1191	tristate "Intel PMC Core driver"
1192	depends on PCI
1193	depends on ACPI
1194	help
1195	  The Intel Platform Controller Hub for Intel Core SoCs provides access
1196	  to Power Management Controller registers via various interfaces. This
1197	  driver can utilize debugging capabilities and supported features as
1198	  exposed by the Power Management Controller. It also may perform some
1199	  tasks in the PMC in order to enable transition into the SLPS0 state.
1200	  It should be selected on all Intel platforms supported by the driver.
1201
1202	  Supported features:
1203		- SLP_S0_RESIDENCY counter
1204		- PCH IP Power Gating status
1205		- LTR Ignore / LTR Show
1206		- MPHY/PLL gating status (Sunrisepoint PCH only)
1207		- SLPS0 Debug registers (Cannonlake/Icelake PCH)
1208		- Low Power Mode registers (Tigerlake and beyond)
1209		- PMC quirks as needed to enable SLPS0/S0ix
1210
1211config INTEL_PUNIT_IPC
1212	tristate "Intel P-Unit IPC Driver"
1213	help
1214	  This driver provides support for Intel P-Unit Mailbox IPC mechanism,
1215	  which is used to bridge the communications between kernel and P-Unit.
1216
1217config INTEL_SCU_IPC
1218	bool
1219
1220config INTEL_SCU
1221	bool
1222	select INTEL_SCU_IPC
1223
1224config INTEL_SCU_PCI
1225	bool "Intel SCU PCI driver"
1226	depends on PCI
1227	select INTEL_SCU
1228	help
1229	  This driver is used to bridge the communications between kernel
1230	  and SCU on some embedded Intel x86 platforms. It also creates
1231	  devices that are connected to the SoC through the SCU.
1232	  Platforms supported:
1233	    Medfield
1234	    Clovertrail
1235	    Merrifield
1236	    Broxton
1237	    Apollo Lake
1238
1239config INTEL_SCU_PLATFORM
1240	tristate "Intel SCU platform driver"
1241	depends on ACPI
1242	select INTEL_SCU
1243	help
1244	  This driver is used to bridge the communications between kernel
1245	  and SCU (sometimes called PMC as well). The driver currently
1246	  supports Intel Elkhart Lake and compatible platforms.
1247
1248config INTEL_SCU_WDT
1249	bool
1250	default INTEL_SCU_PCI
1251	depends on INTEL_MID_WATCHDOG
1252	help
1253	  This is a specific platform code to instantiate watchdog device
1254	  on ACPI-based Intel MID platforms.
1255
1256config INTEL_SCU_IPC_UTIL
1257	tristate "Intel SCU IPC utility driver"
1258	depends on INTEL_SCU
1259	help
1260	  The IPC Util driver provides an interface with the SCU enabling
1261	  low level access for debug work and updating the firmware. Say
1262	  N unless you will be doing this on an Intel MID platform.
1263
1264config INTEL_TELEMETRY
1265	tristate "Intel SoC Telemetry Driver"
1266	depends on X86_64
1267	depends on MFD_INTEL_PMC_BXT
1268	depends on INTEL_PUNIT_IPC
1269	help
1270	  This driver provides interfaces to configure and use
1271	  telemetry for INTEL SoC from APL onwards. It is also
1272	  used to get various SoC events and parameters
1273	  directly via debugfs files. Various tools may use
1274	  this interface for SoC state monitoring.
1275
1276endif # X86_PLATFORM_DEVICES
1277
1278config PMC_ATOM
1279       def_bool y
1280       depends on PCI
1281       select COMMON_CLK
1282