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 MXM_WMI
81       tristate "WMI support for MXM Laptop Graphics"
82       depends on ACPI_WMI
83	help
84          MXM is a standard for laptop graphics cards, the WMI interface
85	  is required for switchable nvidia graphics machines
86
87config PEAQ_WMI
88	tristate "PEAQ 2-in-1 WMI hotkey driver"
89	depends on ACPI_WMI
90	depends on INPUT
91	help
92	 Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s.
93
94config NVIDIA_WMI_EC_BACKLIGHT
95	tristate "EC Backlight Driver for Hybrid Graphics Notebook Systems"
96	depends on ACPI_WMI
97	depends on BACKLIGHT_CLASS_DEVICE
98	help
99	  This driver provides a sysfs backlight interface for notebook systems
100	  which are equipped with NVIDIA hybrid graphics and drive LCD backlight
101	  levels through the Embedded Controller (EC).
102
103	  Say Y or M here if you want to control the backlight on a notebook
104	  system with an EC-driven backlight.
105
106	  If you choose to compile this driver as a module the module will be
107	  called nvidia-wmi-ec-backlight.
108
109config XIAOMI_WMI
110	tristate "Xiaomi WMI key driver"
111	depends on ACPI_WMI
112	depends on INPUT
113	help
114	  Say Y here if you want to support WMI-based keys on Xiaomi notebooks.
115
116	  To compile this driver as a module, choose M here: the module will
117	  be called xiaomi-wmi.
118
119config GIGABYTE_WMI
120	tristate "Gigabyte WMI temperature driver"
121	depends on ACPI_WMI
122	depends on HWMON
123	help
124	  Say Y here if you want to support WMI-based temperature reporting on
125	  Gigabyte mainboards.
126
127	  To compile this driver as a module, choose M here: the module will
128	  be called gigabyte-wmi.
129
130config YOGABOOK_WMI
131	tristate "Lenovo Yoga Book tablet WMI key driver"
132	depends on ACPI_WMI
133	depends on INPUT
134	select LEDS_CLASS
135	select NEW_LEDS
136	help
137	  Say Y here if you want to support the 'Pen' key and keyboard backlight
138	  control on the Lenovo Yoga Book tablets.
139
140	  To compile this driver as a module, choose M here: the module will
141	  be called lenovo-yogabook-wmi.
142
143config ACERHDF
144	tristate "Acer Aspire One temperature and fan driver"
145	depends on ACPI && THERMAL
146	select THERMAL_GOV_BANG_BANG
147	help
148	  This is a driver for Acer Aspire One netbooks. It allows to access
149	  the temperature sensor and to control the fan.
150
151	  After loading this driver the BIOS is still in control of the fan.
152	  To let the kernel handle the fan, do:
153	  echo -n enabled > /sys/class/thermal/thermal_zoneN/mode
154	  where N=0,1,2... depending on the number of thermal nodes and the
155	  detection order of your particular system.  The "type" parameter
156	  in the same node directory will tell you if it is "acerhdf".
157
158	  For more information about this driver see
159	  <https://piie.net/files/acerhdf_README.txt>
160
161	  If you have an Acer Aspire One netbook, say Y or M
162	  here.
163
164config ACER_WIRELESS
165        tristate "Acer Wireless Radio Control Driver"
166        depends on ACPI
167        depends on INPUT
168	help
169          The Acer Wireless Radio Control handles the airplane mode hotkey
170          present on new Acer laptops.
171
172          Say Y or M here if you have an Acer notebook with an airplane mode
173          hotkey.
174
175          If you choose to compile this driver as a module the module will be
176          called acer-wireless.
177
178config ACER_WMI
179	tristate "Acer WMI Laptop Extras"
180	depends on ACPI
181	select LEDS_CLASS
182	select NEW_LEDS
183	depends on BACKLIGHT_CLASS_DEVICE
184	depends on SERIO_I8042
185	depends on INPUT
186	depends on RFKILL || RFKILL = n
187	depends on ACPI_WMI
188	select INPUT_SPARSEKMAP
189	# Acer WMI depends on ACPI_VIDEO when ACPI is enabled
190        select ACPI_VIDEO if ACPI
191	help
192	  This is a driver for newer Acer (and Wistron) laptops. It adds
193	  wireless radio and bluetooth control, and on some laptops,
194	  exposes the mail LED and LCD backlight.
195
196	  If you have an ACPI-WMI compatible Acer/ Wistron laptop, say Y or M
197	  here.
198
199config AMD_PMC
200	tristate "AMD SoC PMC driver"
201	depends on ACPI && PCI && RTC_CLASS
202	help
203	  The driver provides support for AMD Power Management Controller
204	  primarily responsible for S2Idle transactions that are driven from
205	  a platform firmware running on SMU. This driver also provides a debug
206	  mechanism to investigate the S2Idle transactions and failures.
207
208	  Say Y or M here if you have a notebook powered by AMD RYZEN CPU/APU.
209
210	  If you choose to compile this driver as a module the module will be
211	  called amd-pmc.
212
213config AMD_HSMP
214	tristate "AMD HSMP Driver"
215	depends on AMD_NB && X86_64
216	help
217	  The driver provides a way for user space tools to monitor and manage
218	  system management functionality on EPYC server CPUs from AMD.
219
220	  Host System Management Port (HSMP) interface is a mailbox interface
221	  between the x86 core and the System Management Unit (SMU) firmware.
222
223	  If you choose to compile this driver as a module the module will be
224	  called amd_hsmp.
225
226config ADV_SWBUTTON
227	tristate "Advantech ACPI Software Button Driver"
228	depends on ACPI && INPUT
229	help
230	  Say Y here to enable support for Advantech software defined
231	  button feature. More information can be found at
232	  <http://www.advantech.com.tw/products/>
233
234	  To compile this driver as a module, choose M here. The module will
235	  be called adv_swbutton.
236
237config APPLE_GMUX
238	tristate "Apple Gmux Driver"
239	depends on ACPI && PCI
240	depends on PNP
241	depends on BACKLIGHT_CLASS_DEVICE
242	depends on BACKLIGHT_APPLE=n || BACKLIGHT_APPLE
243	depends on ACPI_VIDEO=n || ACPI_VIDEO
244	help
245	  This driver provides support for the gmux device found on many
246	  Apple laptops, which controls the display mux for the hybrid
247	  graphics as well as the backlight. Currently only backlight
248	  control is supported by the driver.
249
250config ASUS_LAPTOP
251	tristate "Asus Laptop Extras"
252	depends on ACPI
253	select LEDS_CLASS
254	select NEW_LEDS
255	depends on BACKLIGHT_CLASS_DEVICE
256	depends on INPUT
257	depends on RFKILL || RFKILL = n
258	depends on ACPI_VIDEO || ACPI_VIDEO = n
259	select INPUT_SPARSEKMAP
260	help
261	  This is a driver for Asus laptops, Lenovo SL and the Pegatron
262	  Lucid tablet. It may also support some MEDION, JVC or VICTOR
263	  laptops. It makes all the extra buttons generate standard
264	  ACPI events and input events, and on the Lucid the built-in
265	  accelerometer appears as an input device.  It also adds
266	  support for video output switching, LCD backlight control,
267	  Bluetooth and Wlan control, and most importantly, allows you
268	  to blink those fancy LEDs.
269
270	  For more information see <http://acpi4asus.sf.net>.
271
272	  If you have an ACPI-compatible ASUS laptop, say Y or M here.
273
274config ASUS_WIRELESS
275	tristate "Asus Wireless Radio Control Driver"
276	depends on ACPI
277	depends on INPUT
278	select NEW_LEDS
279	select LEDS_CLASS
280	help
281	  The Asus Wireless Radio Control handles the airplane mode hotkey
282	  present on some Asus laptops.
283
284	  Say Y or M here if you have an ASUS notebook with an airplane mode
285	  hotkey.
286
287	  If you choose to compile this driver as a module the module will be
288	  called asus-wireless.
289
290config ASUS_WMI
291	tristate "ASUS WMI Driver"
292	depends on ACPI_WMI
293	depends on ACPI_BATTERY
294	depends on INPUT
295	depends on HWMON
296	depends on BACKLIGHT_CLASS_DEVICE
297	depends on RFKILL || RFKILL = n
298	depends on HOTPLUG_PCI
299	depends on ACPI_VIDEO || ACPI_VIDEO = n
300	select INPUT_SPARSEKMAP
301	select LEDS_CLASS
302	select NEW_LEDS
303	select ACPI_PLATFORM_PROFILE
304	help
305	  Say Y here if you have a WMI aware Asus laptop (like Eee PCs or new
306	  Asus Notebooks).
307
308	  To compile this driver as a module, choose M here: the module will
309	  be called asus-wmi.
310
311config ASUS_NB_WMI
312	tristate "Asus Notebook WMI Driver"
313	depends on ASUS_WMI
314	depends on SERIO_I8042 || SERIO_I8042 = n
315	help
316	  This is a driver for newer Asus notebooks. It adds extra features
317	  like wireless radio and bluetooth control, leds, hotkeys, backlight...
318
319	  For more information, see
320	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
321
322	  If you have an ACPI-WMI compatible Asus Notebook, say Y or M
323	  here.
324
325config ASUS_TF103C_DOCK
326	tristate "Asus TF103C 2-in-1 keyboard dock"
327	depends on ACPI
328	depends on I2C
329	depends on INPUT
330	depends on HID
331	depends on GPIOLIB
332	help
333	  This is a driver for the keyboard, touchpad and USB port of the
334	  keyboard dock for the Asus TF103C 2-in-1 tablet.
335
336	  This keyboard dock has its own I2C attached embedded controller
337	  and the keyboard and touchpad are also connected over I2C,
338	  instead of using the usual USB connection. This means that the
339	  keyboard dock requires this special driver to function.
340
341	  If you have an Asus TF103C tablet say Y or M here, for a generic x86
342	  distro config say M here.
343
344config MERAKI_MX100
345	tristate "Cisco Meraki MX100 Platform Driver"
346	depends on GPIOLIB
347	depends on GPIO_ICH
348	depends on LEDS_CLASS
349	select LEDS_GPIO
350	help
351	  This driver provides support for the front button and LEDs on
352	  the Cisco Meraki MX100 (Tinkerbell) 1U appliance.
353
354	  To compile this driver as a module, choose M here: the module
355	  will be called meraki-mx100.
356
357config EEEPC_LAPTOP
358	tristate "Eee PC Hotkey Driver"
359	depends on ACPI
360	depends on INPUT
361	depends on RFKILL || RFKILL = n
362	depends on ACPI_VIDEO || ACPI_VIDEO = n
363	depends on HOTPLUG_PCI
364	depends on BACKLIGHT_CLASS_DEVICE
365	select HWMON
366	select LEDS_CLASS
367	select NEW_LEDS
368	select INPUT_SPARSEKMAP
369	help
370	  This driver supports the Fn-Fx keys on Eee PC laptops.
371
372	  It  also gives access to some extra laptop functionalities like
373	  Bluetooth, backlight and allows powering on/off some other
374	  devices.
375
376	  If you have an Eee PC laptop, say Y or M here. If this driver
377	  doesn't work on your Eee PC, try eeepc-wmi instead.
378
379config EEEPC_WMI
380	tristate "Eee PC WMI Driver"
381	depends on ASUS_WMI
382	help
383	  This is a driver for newer Eee PC laptops. It adds extra features
384	  like wireless radio and bluetooth control, leds, hotkeys, backlight...
385
386	  For more information, see
387	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
388
389	  If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M
390	  here.
391
392source "drivers/platform/x86/dell/Kconfig"
393
394config AMILO_RFKILL
395	tristate "Fujitsu-Siemens Amilo rfkill support"
396	depends on RFKILL
397	depends on SERIO_I8042
398	help
399	  This is a driver for enabling wifi on some Fujitsu-Siemens Amilo
400	  laptops.
401
402config FUJITSU_LAPTOP
403	tristate "Fujitsu Laptop Extras"
404	depends on ACPI
405	depends on INPUT
406	depends on BACKLIGHT_CLASS_DEVICE
407	depends on ACPI_VIDEO || ACPI_VIDEO = n
408	select INPUT_SPARSEKMAP
409	select NEW_LEDS
410	select LEDS_CLASS
411	help
412	  This is a driver for laptops built by Fujitsu:
413
414	    * P2xxx/P5xxx/S6xxx/S7xxx series Lifebooks
415	    * Possibly other Fujitsu laptop models
416	    * Tested with S6410 and S7020
417
418	  It adds support for LCD brightness control and some hotkeys.
419
420	  If you have a Fujitsu laptop, say Y or M here.
421
422config FUJITSU_TABLET
423       tristate "Fujitsu Tablet Extras"
424       depends on ACPI
425       depends on INPUT
426	help
427         This is a driver for tablets built by Fujitsu:
428
429           * Lifebook P1510/P1610/P1620/Txxxx
430           * Stylistic ST5xxx
431           * Possibly other Fujitsu tablet models
432
433         It adds support for the panel buttons, docking station detection,
434         tablet/notebook mode detection for convertible and
435         orientation detection for docked slates.
436
437         If you have a Fujitsu convertible or slate, say Y or M here.
438
439config GPD_POCKET_FAN
440	tristate "GPD Pocket Fan Controller support"
441	depends on ACPI
442	depends on THERMAL
443	help
444	  Driver for the GPD Pocket vendor specific FAN02501 ACPI device
445	  which controls the fan speed on the GPD Pocket.
446
447	  Without this driver the fan on the Pocket will stay off independent
448	  of the CPU temperature. Say Y or M if the kernel may be used on a
449	  GPD pocket.
450
451config HP_ACCEL
452	tristate "HP laptop accelerometer"
453	depends on INPUT && ACPI
454	depends on SERIO_I8042
455	select SENSORS_LIS3LV02D
456	select NEW_LEDS
457	select LEDS_CLASS
458	help
459	  This driver provides support for the "Mobile Data Protection System 3D"
460	  or "3D DriveGuard" feature of HP laptops. On such systems the driver
461	  should load automatically (via ACPI alias).
462
463	  Support for a led indicating disk protection will be provided as
464	  hp::hddprotect. For more information on the feature, refer to
465	  Documentation/misc-devices/lis3lv02d.rst.
466
467	  To compile this driver as a module, choose M here: the module will
468	  be called hp_accel.
469
470config WIRELESS_HOTKEY
471	tristate "Wireless hotkey button"
472	depends on ACPI
473	depends on INPUT
474	help
475	 This driver provides supports for the wireless buttons found on some AMD,
476	 HP, & Xioami laptops.
477	 On such systems the driver should load automatically (via ACPI alias).
478
479	 To compile this driver as a module, choose M here: the module will
480	 be called wireless-hotkey.
481
482config HP_WMI
483	tristate "HP WMI extras"
484	depends on ACPI_WMI
485	depends on INPUT
486	depends on RFKILL || RFKILL = n
487	select INPUT_SPARSEKMAP
488	select ACPI_PLATFORM_PROFILE
489	select HWMON
490	help
491	 Say Y here if you want to support WMI-based hotkeys on HP laptops and
492	 to read data from WMI such as docking or ambient light sensor state.
493
494	 To compile this driver as a module, choose M here: the module will
495	 be called hp-wmi.
496
497config TC1100_WMI
498	tristate "HP Compaq TC1100 Tablet WMI Extras"
499	depends on !X86_64
500	depends on ACPI
501	depends on ACPI_WMI
502	help
503	  This is a driver for the WMI extensions (wireless and bluetooth power
504	  control) of the HP Compaq TC1100 tablet.
505
506config IBM_RTL
507	tristate "Device driver to enable PRTL support"
508	depends on PCI
509	help
510	 Enable support for IBM Premium Real Time Mode (PRTM).
511	 This module will allow you the enter and exit PRTM in the BIOS via
512	 sysfs on platforms that support this feature.  System in PRTM will
513	 not receive CPU-generated SMIs for recoverable errors.  Use of this
514	 feature without proper support may void your hardware warranty.
515
516	 If the proper BIOS support is found the driver will load and create
517	 /sys/devices/system/ibm_rtl/.  The "state" variable will indicate
518	 whether or not the BIOS is in PRTM.
519	 state = 0 (BIOS SMIs on)
520	 state = 1 (BIOS SMIs off)
521
522config IDEAPAD_LAPTOP
523	tristate "Lenovo IdeaPad Laptop Extras"
524	depends on ACPI
525	depends on RFKILL && INPUT
526	depends on SERIO_I8042
527	depends on BACKLIGHT_CLASS_DEVICE
528	depends on ACPI_VIDEO || ACPI_VIDEO = n
529	depends on ACPI_WMI || ACPI_WMI = n
530	select ACPI_PLATFORM_PROFILE
531	select INPUT_SPARSEKMAP
532	select NEW_LEDS
533	select LEDS_CLASS
534	help
535	  This is a driver for Lenovo IdeaPad netbooks contains drivers for
536	  rfkill switch, hotkey, fan control and backlight control.
537
538config SENSORS_HDAPS
539	tristate "Thinkpad Hard Drive Active Protection System (hdaps)"
540	depends on INPUT
541	help
542	  This driver provides support for the IBM Hard Drive Active Protection
543	  System (hdaps), which provides an accelerometer and other misc. data.
544	  ThinkPads starting with the R50, T41, and X40 are supported.  The
545	  accelerometer data is readable via sysfs.
546
547	  This driver also provides an absolute input class device, allowing
548	  the laptop to act as a pinball machine-esque joystick.
549
550	  If your ThinkPad is not recognized by the driver, please update to latest
551	  BIOS. This is especially the case for some R52 ThinkPads.
552
553	  Say Y here if you have an applicable laptop and want to experience
554	  the awesome power of hdaps.
555
556config THINKPAD_ACPI
557	tristate "ThinkPad ACPI Laptop Extras"
558	depends on ACPI
559	depends on ACPI_BATTERY
560	depends on INPUT
561	depends on RFKILL || RFKILL = n
562	depends on ACPI_VIDEO || ACPI_VIDEO = n
563	depends on BACKLIGHT_CLASS_DEVICE
564	depends on I2C
565	depends on DRM
566	select ACPI_PLATFORM_PROFILE
567	select DRM_PRIVACY_SCREEN
568	select HWMON
569	select NVRAM
570	select NEW_LEDS
571	select LEDS_CLASS
572	select LEDS_TRIGGERS
573	select LEDS_TRIGGER_AUDIO
574	help
575	  This is a driver for the IBM and Lenovo ThinkPad laptops. It adds
576	  support for Fn-Fx key combinations, Bluetooth control, video
577	  output switching, ThinkLight control, UltraBay eject and more.
578	  For more information about this driver see
579	  <file:Documentation/admin-guide/laptops/thinkpad-acpi.rst> and
580	  <http://ibm-acpi.sf.net/> .
581
582	  This driver was formerly known as ibm-acpi.
583
584	  Extra functionality will be available if the rfkill (CONFIG_RFKILL)
585	  and/or ALSA (CONFIG_SND) subsystems are available in the kernel.
586	  Note that if you want ThinkPad-ACPI to be built-in instead of
587	  modular, ALSA and rfkill will also have to be built-in.
588
589	  If you have an IBM or Lenovo ThinkPad laptop, say Y or M here.
590
591config THINKPAD_ACPI_ALSA_SUPPORT
592	bool "Console audio control ALSA interface"
593	depends on THINKPAD_ACPI
594	depends on SND
595	depends on SND = y || THINKPAD_ACPI = SND
596	default y
597	help
598	  Enables monitoring of the built-in console audio output control
599	  (headphone and speakers), which is operated by the mute and (in
600	  some ThinkPad models) volume hotkeys.
601
602	  If this option is enabled, ThinkPad-ACPI will export an ALSA card
603	  with a single read-only mixer control, which should be used for
604	  on-screen-display feedback purposes by the Desktop Environment.
605
606	  Optionally, the driver will also allow software control (the
607	  ALSA mixer will be made read-write).  Please refer to the driver
608	  documentation for details.
609
610	  All IBM models have both volume and mute control.  Newer Lenovo
611	  models only have mute control (the volume hotkeys are just normal
612	  keys and volume control is done through the main HDA mixer).
613
614config THINKPAD_ACPI_DEBUGFACILITIES
615	bool "Maintainer debug facilities"
616	depends on THINKPAD_ACPI
617	help
618	  Enables extra stuff in the thinkpad-acpi which is completely useless
619	  for normal use.  Read the driver source to find out what it does.
620
621	  Say N here, unless you were told by a kernel maintainer to do
622	  otherwise.
623
624config THINKPAD_ACPI_DEBUG
625	bool "Verbose debug mode"
626	depends on THINKPAD_ACPI
627	help
628	  Enables extra debugging information, at the expense of a slightly
629	  increase in driver size.
630
631	  If you are not sure, say N here.
632
633config THINKPAD_ACPI_UNSAFE_LEDS
634	bool "Allow control of important LEDs (unsafe)"
635	depends on THINKPAD_ACPI
636	help
637	  Overriding LED state on ThinkPads can mask important
638	  firmware alerts (like critical battery condition), or misled
639	  the user into damaging the hardware (undocking or ejecting
640	  the bay while buses are still active), etc.
641
642	  LED control on the ThinkPad is write-only (with very few
643	  exceptions on very ancient models), which makes it
644	  impossible to know beforehand if important information will
645	  be lost when one changes LED state.
646
647	  Users that know what they are doing can enable this option
648	  and the driver will allow control of every LED, including
649	  the ones on the dock stations.
650
651	  Never enable this option on a distribution kernel.
652
653	  Say N here, unless you are building a kernel for your own
654	  use, and need to control the important firmware LEDs.
655
656config THINKPAD_ACPI_VIDEO
657	bool "Video output control support"
658	depends on THINKPAD_ACPI
659	default y
660	help
661	  Allows the thinkpad_acpi driver to provide an interface to control
662	  the various video output ports.
663
664	  This feature often won't work well, depending on ThinkPad model,
665	  display state, video output devices in use, whether there is a X
666	  server running, phase of the moon, and the current mood of
667	  Schroedinger's cat.  If you can use X.org's RandR to control
668	  your ThinkPad's video output ports instead of this feature,
669	  don't think twice: do it and say N here to save memory and avoid
670	  bad interactions with X.org.
671
672	  NOTE: access to this feature is limited to processes with the
673	  CAP_SYS_ADMIN capability, to avoid local DoS issues in platforms
674	  where it interacts badly with X.org.
675
676	  If you are not sure, say Y here but do try to check if you could
677	  be using X.org RandR instead.
678
679config THINKPAD_ACPI_HOTKEY_POLL
680	bool "Support NVRAM polling for hot keys"
681	depends on THINKPAD_ACPI
682	default y
683	help
684	  Some thinkpad models benefit from NVRAM polling to detect a few of
685	  the hot key press events.  If you know your ThinkPad model does not
686	  need to do NVRAM polling to support any of the hot keys you use,
687	  unselecting this option will save about 1kB of memory.
688
689	  ThinkPads T40 and newer, R52 and newer, and X31 and newer are
690	  unlikely to need NVRAM polling in their latest BIOS versions.
691
692	  NVRAM polling can detect at most the following keys: ThinkPad/Access
693	  IBM, Zoom, Switch Display (fn+F7), ThinkLight, Volume up/down/mute,
694	  Brightness up/down, Display Expand (fn+F8), Hibernate (fn+F12).
695
696	  If you are not sure, say Y here.  The driver enables polling only if
697	  it is strictly necessary to do so.
698
699config THINKPAD_LMI
700	tristate "Lenovo WMI-based systems management driver"
701	depends on ACPI_WMI
702	select FW_ATTR_CLASS
703	help
704	  This driver allows changing BIOS settings on Lenovo machines whose
705	  BIOS support the WMI interface.
706
707	  To compile this driver as a module, choose M here: the module will
708	  be called think-lmi.
709
710source "drivers/platform/x86/intel/Kconfig"
711
712config MSI_LAPTOP
713	tristate "MSI Laptop Extras"
714	depends on ACPI
715	depends on BACKLIGHT_CLASS_DEVICE
716	depends on ACPI_VIDEO || ACPI_VIDEO = n
717	depends on RFKILL
718	depends on INPUT && SERIO_I8042
719	select INPUT_SPARSEKMAP
720	help
721	  This is a driver for laptops built by MSI (MICRO-STAR
722	  INTERNATIONAL):
723
724	  MSI MegaBook S270 (MS-1013)
725	  Cytron/TCM/Medion/Tchibo MD96100/SAM2000
726
727	  It adds support for Bluetooth, WLAN and LCD brightness control.
728
729	  More information about this driver is available at
730	  <http://0pointer.de/lennart/tchibo.html>.
731
732	  If you have an MSI S270 laptop, say Y or M here.
733
734config MSI_WMI
735	tristate "MSI WMI extras"
736	depends on ACPI_WMI
737	depends on INPUT
738	depends on BACKLIGHT_CLASS_DEVICE
739	depends on ACPI_VIDEO || ACPI_VIDEO = n
740	select INPUT_SPARSEKMAP
741	help
742	 Say Y here if you want to support WMI-based hotkeys on MSI laptops.
743
744	 To compile this driver as a module, choose M here: the module will
745	 be called msi-wmi.
746
747config XO15_EBOOK
748	tristate "OLPC XO-1.5 ebook switch"
749	depends on OLPC || COMPILE_TEST
750	depends on ACPI && INPUT
751	help
752	  Support for the ebook switch on the OLPC XO-1.5 laptop.
753
754	  This switch is triggered as the screen is rotated and folded down to
755	  convert the device into ebook form.
756
757config XO1_RFKILL
758	tristate "OLPC XO-1 software RF kill switch"
759	depends on OLPC || COMPILE_TEST
760	depends on RFKILL
761	help
762	  Support for enabling/disabling the WLAN interface on the OLPC XO-1
763	  laptop.
764
765config PCENGINES_APU2
766	tristate "PC Engines APUv2/3 front button and LEDs driver"
767	depends on INPUT && INPUT_KEYBOARD && GPIOLIB
768	depends on LEDS_CLASS
769	select GPIO_AMD_FCH
770	select KEYBOARD_GPIO_POLLED
771	select LEDS_GPIO
772	help
773	  This driver provides support for the front button and LEDs on
774	  PC Engines APUv2/APUv3 board.
775
776	  To compile this driver as a module, choose M here: the module
777	  will be called pcengines-apuv2.
778
779config BARCO_P50_GPIO
780	tristate "Barco P50 GPIO driver for identify LED/button"
781	depends on GPIOLIB
782	help
783	  This driver provides access to the GPIOs for the identify button
784	  and led present on Barco P50 board.
785
786	  To compile this driver as a module, choose M here: the module
787	  will be called barco-p50-gpio.
788
789config SAMSUNG_LAPTOP
790	tristate "Samsung Laptop driver"
791	depends on RFKILL || RFKILL = n
792	depends on ACPI_VIDEO || ACPI_VIDEO = n
793	depends on BACKLIGHT_CLASS_DEVICE
794	select LEDS_CLASS
795	select NEW_LEDS
796	help
797	  This module implements a driver for a wide range of different
798	  Samsung laptops.  It offers control over the different
799	  function keys, wireless LED, LCD backlight level.
800
801	  It may also provide some sysfs files described in
802	  <file:Documentation/ABI/testing/sysfs-driver-samsung-laptop>
803
804	  To compile this driver as a module, choose M here: the module
805	  will be called samsung-laptop.
806
807config SAMSUNG_Q10
808	tristate "Samsung Q10 Extras"
809	depends on ACPI
810	select BACKLIGHT_CLASS_DEVICE
811	help
812	  This driver provides support for backlight control on Samsung Q10
813	  and related laptops, including Dell Latitude X200.
814
815config ACPI_TOSHIBA
816	tristate "Toshiba Laptop Extras"
817	depends on ACPI
818	depends on ACPI_WMI
819	select LEDS_CLASS
820	select NEW_LEDS
821	depends on BACKLIGHT_CLASS_DEVICE
822	depends on INPUT
823	depends on SERIO_I8042 || SERIO_I8042 = n
824	depends on ACPI_VIDEO || ACPI_VIDEO = n
825	depends on RFKILL || RFKILL = n
826	depends on IIO
827	select INPUT_SPARSEKMAP
828	help
829	  This driver adds support for access to certain system settings
830	  on "legacy free" Toshiba laptops.  These laptops can be recognized by
831	  their lack of a BIOS setup menu and APM support.
832
833	  On these machines, all system configuration is handled through the
834	  ACPI.  This driver is required for access to controls not covered
835	  by the general ACPI drivers, such as LCD brightness, video output,
836	  etc.
837
838	  This driver differs from the non-ACPI Toshiba laptop driver (located
839	  under "Processor type and features") in several aspects.
840	  Configuration is accessed by reading and writing text files in the
841	  /proc tree instead of by program interface to /dev.  Furthermore, no
842	  power management functions are exposed, as those are handled by the
843	  general ACPI drivers.
844
845	  More information about this driver is available at
846	  <http://memebeam.org/toys/ToshibaAcpiDriver>.
847
848	  If you have a legacy free Toshiba laptop (such as the Libretto L1
849	  series), say Y.
850
851config TOSHIBA_BT_RFKILL
852	tristate "Toshiba Bluetooth RFKill switch support"
853	depends on ACPI
854	depends on RFKILL || RFKILL = n
855	help
856	  This driver adds support for Bluetooth events for the RFKill
857	  switch on modern Toshiba laptops with full ACPI support and
858	  an RFKill switch.
859
860	  This driver handles RFKill events for the TOS6205 Bluetooth,
861	  and re-enables it when the switch is set back to the 'on'
862	  position.
863
864	  If you have a modern Toshiba laptop with a Bluetooth and an
865	  RFKill switch (such as the Portege R500), say Y.
866
867config TOSHIBA_HAPS
868	tristate "Toshiba HDD Active Protection Sensor"
869	depends on ACPI
870	help
871	  This driver adds support for the built-in accelerometer
872	  found on recent Toshiba laptops equipped with HID TOS620A
873	  device.
874
875	  This driver receives ACPI notify events 0x80 when the sensor
876	  detects a sudden move or a harsh vibration, as well as an
877	  ACPI notify event 0x81 whenever the movement or vibration has
878	  been stabilized.
879
880	  Also provides sysfs entries to get/set the desired protection
881	  level and resetting the HDD protection interface.
882
883	  If you have a recent Toshiba laptop with a built-in accelerometer
884	  device, say Y.
885
886config TOSHIBA_WMI
887	tristate "Toshiba WMI Hotkeys Driver (EXPERIMENTAL)"
888	depends on ACPI_WMI
889	depends on INPUT
890	select INPUT_SPARSEKMAP
891	help
892	  This driver adds hotkey monitoring support to some Toshiba models
893	  that manage the hotkeys via WMI events.
894
895	  WARNING: This driver is incomplete as it lacks a proper keymap and the
896	  *notify function only prints the ACPI event type value. Be warned that
897	  you will need to provide some information if you have a Toshiba model
898	  with WMI event hotkeys and want to help with the development of this
899	  driver.
900
901	  If you have a WMI-based hotkeys Toshiba laptop, say Y or M here.
902
903config ACPI_CMPC
904	tristate "CMPC Laptop Extras"
905	depends on ACPI && INPUT
906	depends on RFKILL || RFKILL=n
907	select BACKLIGHT_CLASS_DEVICE
908	help
909	  Support for Intel Classmate PC ACPI devices, including some
910	  keys as input device, backlight device, tablet and accelerometer
911	  devices.
912
913config COMPAL_LAPTOP
914	tristate "Compal (and others) Laptop Extras"
915	depends on ACPI
916	depends on BACKLIGHT_CLASS_DEVICE
917	depends on ACPI_VIDEO || ACPI_VIDEO = n
918	depends on RFKILL
919	depends on HWMON
920	depends on POWER_SUPPLY
921	help
922	  This is a driver for laptops built by Compal, and some models by
923	  other brands (e.g. Dell, Toshiba).
924
925	  It adds support for rfkill, Bluetooth, WLAN, LCD brightness, hwmon
926	  and battery charging level control.
927
928config LG_LAPTOP
929	tristate "LG Laptop Extras"
930	depends on ACPI
931	depends on ACPI_BATTERY
932	depends on ACPI_WMI
933	depends on INPUT
934	select INPUT_SPARSEKMAP
935	select NEW_LEDS
936	select LEDS_CLASS
937	help
938	 This driver adds support for hotkeys as well as control of keyboard
939	 backlight, battery maximum charge level and various other ACPI
940	 features.
941
942	 If you have an LG Gram laptop, say Y or M here.
943
944config PANASONIC_LAPTOP
945	tristate "Panasonic Laptop Extras"
946	depends on INPUT && ACPI
947	depends on BACKLIGHT_CLASS_DEVICE
948	depends on ACPI_VIDEO=n || ACPI_VIDEO
949	depends on SERIO_I8042 || SERIO_I8042 = n
950	select INPUT_SPARSEKMAP
951	help
952	  This driver adds support for access to backlight control and hotkeys
953	  on Panasonic Let's Note laptops.
954
955	  If you have a Panasonic Let's note laptop (such as the R1(N variant),
956	  R2, R3, R5, T2, W2 and Y2 series), say Y.
957
958config SONY_LAPTOP
959	tristate "Sony Laptop Extras"
960	depends on ACPI
961	depends on ACPI_VIDEO || ACPI_VIDEO = n
962	depends on BACKLIGHT_CLASS_DEVICE
963	depends on INPUT
964	depends on RFKILL
965	help
966	  This mini-driver drives the SNC and SPIC devices present in the ACPI
967	  BIOS of the Sony Vaio laptops.
968
969	  It gives access to some extra laptop functionalities like Bluetooth,
970	  screen brightness control, Fn keys and allows powering on/off some
971	  devices.
972
973	  Read <file:Documentation/admin-guide/laptops/sony-laptop.rst> for more information.
974
975config SONYPI_COMPAT
976	bool "Sonypi compatibility"
977	depends on SONY_LAPTOP
978	help
979	  Build the sonypi driver compatibility code into the sony-laptop driver.
980
981config SYSTEM76_ACPI
982	tristate "System76 ACPI Driver"
983	depends on ACPI
984	depends on ACPI_BATTERY
985	depends on HWMON
986	depends on INPUT
987	select NEW_LEDS
988	select LEDS_CLASS
989	select LEDS_TRIGGERS
990	help
991	  This is a driver for System76 laptops running open firmware. It adds
992	  support for Fn-Fx key combinations, keyboard backlight, and airplane mode
993	  LEDs.
994
995	  If you have a System76 laptop running open firmware, say Y or M here.
996
997config TOPSTAR_LAPTOP
998	tristate "Topstar Laptop Extras"
999	depends on ACPI
1000	depends on INPUT
1001	select INPUT_SPARSEKMAP
1002	select LEDS_CLASS
1003	select NEW_LEDS
1004	help
1005	  This driver adds support for hotkeys found on Topstar laptops.
1006
1007	  If you have a Topstar laptop, say Y or M here.
1008
1009config SERIAL_MULTI_INSTANTIATE
1010	tristate "Serial bus multi instantiate pseudo device driver"
1011	depends on I2C && SPI && ACPI
1012	help
1013	  Some ACPI-based systems list multiple devices in a single ACPI
1014	  firmware-node. This driver will instantiate separate clients
1015	  for each device in the firmware-node.
1016
1017	  To compile this driver as a module, choose M here: the module
1018	  will be called serial-multi-instantiate.
1019
1020config MLX_PLATFORM
1021	tristate "Mellanox Technologies platform support"
1022	depends on I2C && REGMAP
1023	help
1024	  This option enables system support for the Mellanox Technologies
1025	  platform. The Mellanox systems provide data center networking
1026	  solutions based on Virtual Protocol Interconnect (VPI) technology
1027	  enable seamless connectivity to 56/100Gb/s InfiniBand or 10/40/56GbE
1028	  connection.
1029
1030	  If you have a Mellanox system, say Y or M here.
1031
1032config TOUCHSCREEN_DMI
1033	bool "DMI based touchscreen configuration info"
1034	depends on ACPI && DMI && I2C=y && TOUCHSCREEN_SILEAD
1035	select EFI_EMBEDDED_FIRMWARE if EFI
1036	help
1037	  Certain ACPI based tablets with e.g. Silead or Chipone touchscreens
1038	  do not have enough data in ACPI tables for the touchscreen driver to
1039	  handle the touchscreen properly, as OEMs expect the data to be baked
1040	  into the tablet model specific version of the driver shipped with the
1041	  the OS-image for the device. This option supplies the missing info.
1042	  Enable this for x86 tablets with Silead or Chipone touchscreens.
1043
1044config X86_ANDROID_TABLETS
1045	tristate "X86 Android tablet support"
1046	depends on I2C && SPI && SERIAL_DEV_BUS && ACPI && EFI && GPIOLIB
1047	help
1048	  X86 tablets which ship with Android as (part of) the factory image
1049	  typically have various problems with their DSDTs. The factory kernels
1050	  shipped on these devices typically have device addresses and GPIOs
1051	  hardcoded in the kernel, rather than specified in their DSDT.
1052
1053	  With the DSDT containing a random collection of devices which may or
1054	  may not actually be present. This driver contains various fixes for
1055	  such tablets, including instantiating kernel devices for devices which
1056	  are missing from the DSDT.
1057
1058	  If you have a x86 Android tablet say Y or M here, for a generic x86
1059	  distro config say M here.
1060
1061config FW_ATTR_CLASS
1062	tristate
1063
1064config INTEL_IMR
1065	bool "Intel Isolated Memory Region support"
1066	depends on X86_INTEL_QUARK && IOSF_MBI
1067	help
1068	  This option provides a means to manipulate Isolated Memory Regions.
1069	  IMRs are a set of registers that define read and write access masks
1070	  to prohibit certain system agents from accessing memory with 1 KiB
1071	  granularity.
1072
1073	  IMRs make it possible to control read/write access to an address
1074	  by hardware agents inside the SoC. Read and write masks can be
1075	  defined for:
1076		- eSRAM flush
1077		- Dirty CPU snoop (write only)
1078		- RMU access
1079		- PCI Virtual Channel 0/Virtual Channel 1
1080		- SMM mode
1081		- Non SMM mode
1082
1083	  Quark contains a set of eight IMR registers and makes use of those
1084	  registers during its bootup process.
1085
1086	  If you are running on a Galileo/Quark say Y here.
1087
1088config INTEL_IPS
1089	tristate "Intel Intelligent Power Sharing"
1090	depends on ACPI && PCI
1091	help
1092	  Intel Calpella platforms support dynamic power sharing between the
1093	  CPU and GPU, maximizing performance in a given TDP.  This driver,
1094	  along with the CPU frequency and i915 drivers, provides that
1095	  functionality.  If in doubt, say Y here; it will only load on
1096	  supported platforms.
1097
1098config INTEL_SCU_IPC
1099	bool
1100
1101config INTEL_SCU
1102	bool
1103	select INTEL_SCU_IPC
1104
1105config INTEL_SCU_PCI
1106	bool "Intel SCU PCI driver"
1107	depends on PCI
1108	select INTEL_SCU
1109	help
1110	  This driver is used to bridge the communications between kernel
1111	  and SCU on some embedded Intel x86 platforms. It also creates
1112	  devices that are connected to the SoC through the SCU.
1113	  Platforms supported:
1114	    Medfield
1115	    Clovertrail
1116	    Merrifield
1117	    Broxton
1118	    Apollo Lake
1119
1120config INTEL_SCU_PLATFORM
1121	tristate "Intel SCU platform driver"
1122	depends on ACPI
1123	select INTEL_SCU
1124	help
1125	  This driver is used to bridge the communications between kernel
1126	  and SCU (sometimes called PMC as well). The driver currently
1127	  supports Intel Elkhart Lake and compatible platforms.
1128
1129config INTEL_SCU_WDT
1130	bool
1131	default INTEL_SCU_PCI
1132	depends on INTEL_MID_WATCHDOG
1133	help
1134	  This is a specific platform code to instantiate watchdog device
1135	  on ACPI-based Intel MID platforms.
1136
1137config INTEL_SCU_IPC_UTIL
1138	tristate "Intel SCU IPC utility driver"
1139	depends on INTEL_SCU
1140	help
1141	  The IPC Util driver provides an interface with the SCU enabling
1142	  low level access for debug work and updating the firmware. Say
1143	  N unless you will be doing this on an Intel MID platform.
1144
1145config SIEMENS_SIMATIC_IPC
1146	tristate "Siemens Simatic IPC Class driver"
1147	depends on PCI
1148	help
1149	  This Simatic IPC class driver is the central of several drivers. It
1150	  is mainly used for system identification, after which drivers in other
1151	  classes will take care of driving specifics of those machines.
1152	  i.e. LEDs and watchdog.
1153
1154	  To compile this driver as a module, choose M here: the module
1155	  will be called simatic-ipc.
1156
1157config WINMATE_FM07_KEYS
1158	tristate "Winmate FM07/FM07P front-panel keys driver"
1159	depends on INPUT
1160	help
1161	  Winmate FM07 and FM07P in-vehicle computers have a row of five
1162	  buttons below the display. This module adds an input device
1163	  that delivers key events when these buttons are pressed.
1164
1165endif # X86_PLATFORM_DEVICES
1166
1167config PMC_ATOM
1168       def_bool y
1169       depends on PCI
1170       select COMMON_CLK
1171