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