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