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