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