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