Merge tag 'acpica-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[linux-drm-fsl-dcu.git] / drivers / acpi / Kconfig
1 #
2 # ACPI Configuration
3 #
4
5 menuconfig ACPI
6         bool "ACPI (Advanced Configuration and Power Interface) Support"
7         depends on !IA64_HP_SIM
8         depends on IA64 || X86 || (ARM64 && EXPERT)
9         depends on PCI
10         select PNP
11         default y
12         help
13           Advanced Configuration and Power Interface (ACPI) support for 
14           Linux requires an ACPI-compliant platform (hardware/firmware),
15           and assumes the presence of OS-directed configuration and power
16           management (OSPM) software.  This option will enlarge your 
17           kernel by about 70K.
18
19           Linux ACPI provides a robust functional replacement for several 
20           legacy configuration and power management interfaces, including
21           the Plug-and-Play BIOS specification (PnP BIOS), the 
22           MultiProcessor Specification (MPS), and the Advanced Power 
23           Management (APM) specification.  If both ACPI and APM support 
24           are configured, ACPI is used.
25
26           The project home page for the Linux ACPI subsystem is here:
27           <https://01.org/linux-acpi>
28
29           Linux support for ACPI is based on Intel Corporation's ACPI
30           Component Architecture (ACPI CA).  For more information on the
31           ACPI CA, see:
32           <http://acpica.org/>
33
34           ACPI is an open industry specification originally co-developed by
35           Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
36           it is developed by the ACPI Specification Working Group (ASWG) under
37           the UEFI Forum and any UEFI member can join the ASWG and contribute
38           to the ACPI specification.
39           The specification is available at:
40           <http://www.acpi.info>
41           <http://www.uefi.org/acpi/specs>
42
43 if ACPI
44
45 config ACPI_LEGACY_TABLES_LOOKUP
46         bool
47
48 config ARCH_MIGHT_HAVE_ACPI_PDC
49         bool
50
51 config ACPI_GENERIC_GSI
52         bool
53
54 config ACPI_SYSTEM_POWER_STATES_SUPPORT
55         bool
56
57 config ACPI_CCA_REQUIRED
58         bool
59
60 config ACPI_SLEEP
61         bool
62         depends on SUSPEND || HIBERNATION
63         depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
64         default y
65
66 config ACPI_PROCFS_POWER
67         bool "Deprecated power /proc/acpi directories"
68         depends on X86 && PROC_FS
69         help
70           For backwards compatibility, this option allows
71           deprecated power /proc/acpi/ directories to exist, even when
72           they have been replaced by functions in /sys.
73           The deprecated directories (and their replacements) include:
74           /proc/acpi/battery/* (/sys/class/power_supply/*)
75           /proc/acpi/ac_adapter/* (sys/class/power_supply/*)
76           This option has no effect on /proc/acpi/ directories
77           and functions, which do not yet exist in /sys
78           This option, together with the proc directories, will be
79           deleted in the future.
80
81           Say N to delete power /proc/acpi/ directories that have moved to /sys/
82
83 config ACPI_REV_OVERRIDE_POSSIBLE
84         bool "Allow supported ACPI revision to be overriden"
85         depends on X86
86         default y
87         help
88           The platform firmware on some systems expects Linux to return "5" as
89           the supported ACPI revision which makes it expose system configuration
90           information in a special way.
91
92           For example, based on what ACPI exports as the supported revision,
93           Dell XPS 13 (2015) configures its audio device to either work in HDA
94           mode or in I2S mode, where the former is supposed to be used on Linux
95           until the latter is fully supported (in the kernel as well as in user
96           space).
97
98           This option enables a DMI-based quirk for the above Dell machine (so
99           that HDA audio is exposed by the platform firmware to the kernel) and
100           makes it possible to force the kernel to return "5" as the supported
101           ACPI revision via the "acpi_rev_override" command line switch.
102
103 config ACPI_EC_DEBUGFS
104         tristate "EC read/write access through /sys/kernel/debug/ec"
105         default n
106         help
107           Say N to disable Embedded Controller /sys/kernel/debug interface
108
109           Be aware that using this interface can confuse your Embedded
110           Controller in a way that a normal reboot is not enough. You then
111           have to power off your system, and remove the laptop battery for
112           some seconds.
113           An Embedded Controller typically is available on laptops and reads
114           sensor values like battery state and temperature.
115           The kernel accesses the EC through ACPI parsed code provided by BIOS
116           tables. This option allows to access the EC directly without ACPI
117           code being involved.
118           Thus this option is a debug option that helps to write ACPI drivers
119           and can be used to identify ACPI code or EC firmware bugs.
120
121 config ACPI_AC
122         tristate "AC Adapter"
123         depends on X86
124         select POWER_SUPPLY
125         default y
126         help
127           This driver supports the AC Adapter object, which indicates
128           whether a system is on AC or not.  If you have a system that can
129           switch between A/C and battery, say Y.
130
131           To compile this driver as a module, choose M here:
132           the module will be called ac.
133
134 config ACPI_BATTERY
135         tristate "Battery"
136         depends on X86
137         select POWER_SUPPLY
138         default y
139         help
140           This driver adds support for battery information through
141           /proc/acpi/battery. If you have a mobile system with a battery, 
142           say Y.
143
144           To compile this driver as a module, choose M here:
145           the module will be called battery.
146
147 config ACPI_BUTTON
148         tristate "Button"
149         depends on INPUT
150         default y
151         help
152           This driver handles events on the power, sleep, and lid buttons.
153           A daemon reads events from input devices or via netlink and
154           performs user-defined actions such as shutting down the system.
155           This is necessary for software-controlled poweroff.
156
157           To compile this driver as a module, choose M here:
158           the module will be called button.
159
160 config ACPI_VIDEO
161         tristate "Video"
162         depends on X86 && BACKLIGHT_CLASS_DEVICE
163         depends on INPUT
164         select THERMAL
165         help
166           This driver implements the ACPI Extensions For Display Adapters
167           for integrated graphics devices on motherboard, as specified in
168           ACPI 2.0 Specification, Appendix B.  This supports basic operations
169           such as defining the video POST device, retrieving EDID information,
170           and setting up a video output.
171
172           To compile this driver as a module, choose M here:
173           the module will be called video.
174
175 config ACPI_FAN
176         tristate "Fan"
177         depends on THERMAL
178         default y
179         help
180           This driver supports ACPI fan devices, allowing user-mode
181           applications to perform basic fan control (on, off, status).
182
183           To compile this driver as a module, choose M here:
184           the module will be called fan.
185
186 config ACPI_DOCK
187         bool "Dock"
188         help
189           This driver supports ACPI-controlled docking stations and removable
190           drive bays such as the IBM Ultrabay and the Dell Module Bay.
191
192 config ACPI_PROCESSOR
193         tristate "Processor"
194         select THERMAL
195         select CPU_IDLE
196         depends on X86 || IA64
197         default y
198         help
199           This driver installs ACPI as the idle handler for Linux and uses
200           ACPI C2 and C3 processor states to save power on systems that
201           support it.  It is required by several flavors of cpufreq
202           performance-state drivers.
203
204           To compile this driver as a module, choose M here:
205           the module will be called processor.
206
207 config ACPI_IPMI
208         tristate "IPMI"
209         depends on IPMI_SI
210         default n
211         help
212           This driver enables the ACPI to access the BMC controller. And it
213           uses the IPMI request/response message to communicate with BMC
214           controller, which can be found on on the server.
215
216           To compile this driver as a module, choose M here:
217           the module will be called as acpi_ipmi.
218
219 config ACPI_HOTPLUG_CPU
220         bool
221         depends on ACPI_PROCESSOR && HOTPLUG_CPU
222         select ACPI_CONTAINER
223         default y
224
225 config ACPI_PROCESSOR_AGGREGATOR
226         tristate "Processor Aggregator"
227         depends on ACPI_PROCESSOR
228         depends on X86
229         help
230           ACPI 4.0 defines processor Aggregator, which enables OS to perform
231           specific processor configuration and control that applies to all
232           processors in the platform. Currently only logical processor idling
233           is defined, which is to reduce power consumption. This driver
234           supports the new device.
235
236 config ACPI_THERMAL
237         tristate "Thermal Zone"
238         depends on ACPI_PROCESSOR
239         select THERMAL
240         default y
241         help
242           This driver supports ACPI thermal zones.  Most mobile and
243           some desktop systems support ACPI thermal zones.  It is HIGHLY
244           recommended that this option be enabled, as your processor(s)
245           may be damaged without it.
246
247           To compile this driver as a module, choose M here:
248           the module will be called thermal.
249
250 config ACPI_NUMA
251         bool "NUMA support"
252         depends on NUMA
253         depends on (X86 || IA64)
254         default y if IA64_GENERIC || IA64_SGI_SN2
255
256 config ACPI_CUSTOM_DSDT_FILE
257         string "Custom DSDT Table file to include"
258         default ""
259         depends on !STANDALONE
260         help
261           This option supports a custom DSDT by linking it into the kernel.
262           See Documentation/acpi/dsdt-override.txt
263
264           Enter the full path name to the file which includes the AmlCode
265           declaration.
266
267           If unsure, don't enter a file name.
268
269 config ACPI_CUSTOM_DSDT
270         bool
271         default ACPI_CUSTOM_DSDT_FILE != ""
272
273 config ACPI_INITRD_TABLE_OVERRIDE
274         bool "ACPI tables override via initrd"
275         depends on BLK_DEV_INITRD && X86
276         default n
277         help
278           This option provides functionality to override arbitrary ACPI tables
279           via initrd. No functional change if no ACPI tables are passed via
280           initrd, therefore it's safe to say Y.
281           See Documentation/acpi/initrd_table_override.txt for details
282
283 config ACPI_DEBUG
284         bool "Debug Statements"
285         default n
286         help
287           The ACPI subsystem can produce debug output.  Saying Y enables this
288           output and increases the kernel size by around 50K.
289
290           Use the acpi.debug_layer and acpi.debug_level kernel command-line
291           parameters documented in Documentation/acpi/debug.txt and
292           Documentation/kernel-parameters.txt to control the type and
293           amount of debug output.
294
295 config ACPI_PCI_SLOT
296         bool "PCI slot detection driver"
297         depends on SYSFS
298         default n
299         help
300           This driver creates entries in /sys/bus/pci/slots/ for all PCI
301           slots in the system.  This can help correlate PCI bus addresses,
302           i.e., segment/bus/device/function tuples, with physical slots in
303           the system.  If you are unsure, say N.
304
305 config X86_PM_TIMER
306         bool "Power Management Timer Support" if EXPERT
307         depends on X86
308         default y
309         help
310           The Power Management Timer is available on all ACPI-capable,
311           in most cases even if ACPI is unusable or blacklisted.
312
313           This timing source is not affected by power management features
314           like aggressive processor idling, throttling, frequency and/or
315           voltage scaling, unlike the commonly used Time Stamp Counter
316           (TSC) timing source.
317
318           You should nearly always say Y here because many modern
319           systems require this timer. 
320
321 config ACPI_CONTAINER
322         bool "Container and Module Devices"
323         default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
324         help
325           This driver supports ACPI Container and Module devices (IDs
326           ACPI0004, PNP0A05, and PNP0A06).
327
328           This helps support hotplug of nodes, CPUs, and memory.
329
330           To compile this driver as a module, choose M here:
331           the module will be called container.
332
333 config ACPI_HOTPLUG_MEMORY
334         bool "Memory Hotplug"
335         depends on MEMORY_HOTPLUG
336         help
337           This driver supports ACPI memory hotplug.  The driver
338           fields notifications on ACPI memory devices (PNP0C80),
339           which represent memory ranges that may be onlined or
340           offlined during runtime.
341
342           If your hardware and firmware do not support adding or
343           removing memory devices at runtime, you need not enable
344           this driver.
345
346           To compile this driver as a module, choose M here:
347           the module will be called acpi_memhotplug.
348
349 config ACPI_HOTPLUG_IOAPIC
350         bool
351         depends on PCI
352         depends on X86_IO_APIC
353         default y
354
355 config ACPI_SBS
356         tristate "Smart Battery System"
357         depends on X86
358         select POWER_SUPPLY
359         help
360           This driver supports the Smart Battery System, another
361           type of access to battery information, found on some laptops.
362
363           To compile this driver as a module, choose M here:
364           the modules will be called sbs and sbshc.
365
366 config ACPI_HED
367         tristate "Hardware Error Device"
368         help
369           This driver supports the Hardware Error Device (PNP0C33),
370           which is used to report some hardware errors notified via
371           SCI, mainly the corrected errors.
372
373 config ACPI_CUSTOM_METHOD
374         tristate "Allow ACPI methods to be inserted/replaced at run time"
375         depends on DEBUG_FS
376         default n
377         help
378           This debug facility allows ACPI AML methods to be inserted and/or
379           replaced without rebooting the system. For details refer to:
380           Documentation/acpi/method-customizing.txt.
381
382           NOTE: This option is security sensitive, because it allows arbitrary
383           kernel memory to be written to by root (uid=0) users, allowing them
384           to bypass certain security measures (e.g. if root is not allowed to
385           load additional kernel modules after boot, this feature may be used
386           to override that restriction).
387
388 config ACPI_BGRT
389         bool "Boottime Graphics Resource Table support"
390         depends on EFI && X86
391         help
392           This driver adds support for exposing the ACPI Boottime Graphics
393           Resource Table, which allows the operating system to obtain
394           data from the firmware boot splash. It will appear under
395           /sys/firmware/acpi/bgrt/ .
396
397 config ACPI_REDUCED_HARDWARE_ONLY
398         bool "Hardware-reduced ACPI support only" if EXPERT
399         def_bool n
400         help
401           This config item changes the way the ACPI code is built.  When this
402           option is selected, the kernel will use a specialized version of
403           ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
404           resulting kernel will be smaller but it will also be restricted to
405           running in ACPI reduced hardware mode ONLY.
406
407           If you are unsure what to do, do not enable this option.
408
409 config ACPI_NFIT
410         tristate "ACPI NVDIMM Firmware Interface Table (NFIT)"
411         depends on PHYS_ADDR_T_64BIT
412         depends on BLK_DEV
413         select LIBNVDIMM
414         help
415           Infrastructure to probe ACPI 6 compliant platforms for
416           NVDIMMs (NFIT) and register a libnvdimm device tree.  In
417           addition to storage devices this also enables libnvdimm to pass
418           ACPI._DSM messages for platform/dimm configuration.
419
420           To compile this driver as a module, choose M here:
421           the module will be called nfit.
422
423 config ACPI_NFIT_DEBUG
424         bool "NFIT DSM debug"
425         depends on ACPI_NFIT
426         depends on DYNAMIC_DEBUG
427         default n
428         help
429           Enabling this option causes the nfit driver to dump the
430           input and output buffers of _DSM operations on the ACPI0012
431           device and its children.  This can be very verbose, so leave
432           it disabled unless you are debugging a hardware / firmware
433           issue.
434
435 source "drivers/acpi/apei/Kconfig"
436
437 config ACPI_EXTLOG
438         tristate "Extended Error Log support"
439         depends on X86_MCE && X86_LOCAL_APIC
440         select UEFI_CPER
441         select RAS
442         default n
443         help
444           Certain usages such as Predictive Failure Analysis (PFA) require
445           more information about the error than what can be described in
446           processor machine check banks. Most server processors log
447           additional information about the error in processor uncore
448           registers. Since the addresses and layout of these registers vary
449           widely from one processor to another, system software cannot
450           readily make use of them. To complicate matters further, some of
451           the additional error information cannot be constructed without
452           detailed knowledge about platform topology.
453
454           Enhanced MCA Logging allows firmware to provide additional error
455           information to system software, synchronous with MCE or CMCI. This
456           driver adds support for that functionality with corresponding
457           tracepoint which carries that information to userspace.
458
459 menuconfig PMIC_OPREGION
460         bool "PMIC (Power Management Integrated Circuit) operation region support"
461         help
462           Select this option to enable support for ACPI operation
463           region of the PMIC chip. The operation region can be used
464           to control power rails and sensor reading/writing on the
465           PMIC chip.
466
467 if PMIC_OPREGION
468 config CRC_PMIC_OPREGION
469         bool "ACPI operation region support for CrystalCove PMIC"
470         depends on INTEL_SOC_PMIC
471         help
472           This config adds ACPI operation region support for CrystalCove PMIC.
473
474 config XPOWER_PMIC_OPREGION
475         bool "ACPI operation region support for XPower AXP288 PMIC"
476         depends on AXP288_ADC = y
477         help
478           This config adds ACPI operation region support for XPower AXP288 PMIC.
479
480 endif
481
482 endif   # ACPI