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