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