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	  <http://www.lesswatts.org/projects/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_PROCFS_POWER
60	bool "Deprecated power /proc/acpi directories"
61	depends on PROC_FS
62	help
63	  For backwards compatibility, this option allows
64          deprecated power /proc/acpi/ directories to exist, even when
65          they have been replaced by functions in /sys.
66          The deprecated directories (and their replacements) include:
67	  /proc/acpi/battery/* (/sys/class/power_supply/*)
68	  /proc/acpi/ac_adapter/* (sys/class/power_supply/*)
69	  This option has no effect on /proc/acpi/ directories
70	  and functions, which do not yet exist in /sys
71	  This option, together with the proc directories, will be
72	  deleted in 2.6.39.
73
74	  Say N to delete power /proc/acpi/ directories that have moved to /sys/
75
76config ACPI_POWER_METER
77	tristate "ACPI 4.0 power meter"
78	depends on HWMON
79	help
80	  This driver exposes ACPI 4.0 power meters as hardware monitoring
81	  devices.  Say Y (or M) if you have a computer with ACPI 4.0 firmware
82	  and a power meter.
83
84	  To compile this driver as a module, choose M here:
85	  the module will be called power-meter.
86
87config ACPI_EC_DEBUGFS
88	tristate "EC read/write access through /sys/kernel/debug/ec"
89	default n
90	help
91	  Say N to disable Embedded Controller /sys/kernel/debug interface
92
93	  Be aware that using this interface can confuse your Embedded
94	  Controller in a way that a normal reboot is not enough. You then
95	  have to power off your system, and remove the laptop battery for
96	  some seconds.
97	  An Embedded Controller typically is available on laptops and reads
98	  sensor values like battery state and temperature.
99	  The kernel accesses the EC through ACPI parsed code provided by BIOS
100	  tables. This option allows to access the EC directly without ACPI
101	  code being involved.
102	  Thus this option is a debug option that helps to write ACPI drivers
103	  and can be used to identify ACPI code or EC firmware bugs.
104
105config ACPI_PROC_EVENT
106	bool "Deprecated /proc/acpi/event support"
107	depends on PROC_FS
108	default y
109	help
110	  A user-space daemon, acpid, typically reads /proc/acpi/event
111	  and handles all ACPI-generated events.
112
113	  These events are now delivered to user-space either
114	  via the input layer or as netlink events.
115
116	  This build option enables the old code for legacy
117	  user-space implementation.  After some time, this will
118	  be moved under CONFIG_ACPI_PROCFS, and then deleted.
119
120	  Say Y here to retain the old behaviour.  Say N if your
121	  user-space is newer than kernel 2.6.23 (September 2007).
122
123config ACPI_AC
124	tristate "AC Adapter"
125	depends on X86
126	select POWER_SUPPLY
127	default y
128	help
129	  This driver supports the AC Adapter object, which indicates
130	  whether a system is on AC or not.  If you have a system that can
131	  switch between A/C and battery, say Y.
132
133	  To compile this driver as a module, choose M here:
134	  the module will be called ac.
135
136config ACPI_BATTERY
137	tristate "Battery"
138	depends on X86
139	select POWER_SUPPLY
140	default y
141	help
142	  This driver adds support for battery information through
143	  /proc/acpi/battery. If you have a mobile system with a battery,
144	  say Y.
145
146	  To compile this driver as a module, choose M here:
147	  the module will be called battery.
148
149config ACPI_BUTTON
150	tristate "Button"
151	depends on INPUT
152	default y
153	help
154	  This driver handles events on the power, sleep, and lid buttons.
155	  A daemon reads /proc/acpi/event and perform user-defined actions
156	  such as shutting down the system.  This is necessary for
157	  software-controlled poweroff.
158
159	  To compile this driver as a module, choose M here:
160	  the module will be called button.
161
162config ACPI_VIDEO
163	tristate "Video"
164	depends on X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL
165	depends on INPUT
166	select THERMAL
167	help
168	  This driver implements the ACPI Extensions For Display Adapters
169	  for integrated graphics devices on motherboard, as specified in
170	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
171	  such as defining the video POST device, retrieving EDID information,
172	  and setting up a video output.
173
174	  To compile this driver as a module, choose M here:
175	  the module will be called video.
176
177config ACPI_FAN
178	tristate "Fan"
179	select THERMAL
180	default y
181	help
182	  This driver supports ACPI fan devices, allowing user-mode
183	  applications to perform basic fan control (on, off, status).
184
185	  To compile this driver as a module, choose M here:
186	  the module will be called fan.
187
188config ACPI_DOCK
189	bool "Dock"
190	depends on EXPERIMENTAL
191	help
192	  This driver supports ACPI-controlled docking stations and removable
193	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
194
195config ACPI_PROCESSOR
196	tristate "Processor"
197	select THERMAL
198	select CPU_IDLE
199	default y
200	help
201	  This driver installs ACPI as the idle handler for Linux and uses
202	  ACPI C2 and C3 processor states to save power on systems that
203	  support it.  It is required by several flavors of cpufreq
204	  performance-state drivers.
205
206	  To compile this driver as a module, choose M here:
207	  the module will be called processor.
208config ACPI_IPMI
209	tristate "IPMI"
210	depends on EXPERIMENTAL && IPMI_SI && IPMI_HANDLER
211	default n
212	help
213	  This driver enables the ACPI to access the BMC controller. And it
214	  uses the IPMI request/response message to communicate with BMC
215	  controller, which can be found on on the server.
216
217	  To compile this driver as a module, choose M here:
218	  the module will be called as acpi_ipmi.
219
220config ACPI_HOTPLUG_CPU
221	bool
222	depends on ACPI_PROCESSOR && HOTPLUG_CPU
223	select ACPI_CONTAINER
224	default y
225
226config ACPI_PROCESSOR_AGGREGATOR
227	tristate "Processor Aggregator"
228	depends on ACPI_PROCESSOR
229	depends on EXPERIMENTAL
230	depends on X86
231	help
232	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
233	  specific processor configuration and control that applies to all
234	  processors in the platform. Currently only logical processor idling
235	  is defined, which is to reduce power consumption. This driver
236	  supports the new device.
237
238config ACPI_THERMAL
239	tristate "Thermal Zone"
240	depends on ACPI_PROCESSOR
241	select THERMAL
242	default y
243	help
244	  This driver supports ACPI thermal zones.  Most mobile and
245	  some desktop systems support ACPI thermal zones.  It is HIGHLY
246	  recommended that this option be enabled, as your processor(s)
247	  may be damaged without it.
248
249	  To compile this driver as a module, choose M here:
250	  the module will be called thermal.
251
252config ACPI_NUMA
253	bool "NUMA support"
254	depends on NUMA
255	depends on (X86 || IA64)
256	default y if IA64_GENERIC || IA64_SGI_SN2
257
258config ACPI_CUSTOM_DSDT_FILE
259	string "Custom DSDT Table file to include"
260	default ""
261	depends on !STANDALONE
262	help
263	  This option supports a custom DSDT by linking it into the kernel.
264	  See Documentation/acpi/dsdt-override.txt
265
266	  Enter the full path name to the file which includes the AmlCode
267	  declaration.
268
269	  If unsure, don't enter a file name.
270
271config ACPI_CUSTOM_DSDT
272	bool
273	default ACPI_CUSTOM_DSDT_FILE != ""
274
275config ACPI_BLACKLIST_YEAR
276	int "Disable ACPI for systems before Jan 1st this year" if X86_32
277	default 0
278	help
279	  Enter a 4-digit year, e.g., 2001, to disable ACPI by default
280	  on platforms with DMI BIOS date before January 1st that year.
281	  "acpi=force" can be used to override this mechanism.
282
283	  Enter 0 to disable this mechanism and allow ACPI to
284	  run by default no matter what the year.  (default)
285
286config ACPI_DEBUG
287	bool "Debug Statements"
288	default n
289	help
290	  The ACPI subsystem can produce debug output.  Saying Y enables this
291	  output and increases the kernel size by around 50K.
292
293	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
294	  parameters documented in Documentation/acpi/debug.txt and
295	  Documentation/kernel-parameters.txt to control the type and
296	  amount of debug output.
297
298config ACPI_DEBUG_FUNC_TRACE
299	bool "Additionally enable ACPI function tracing"
300	default n
301	depends on ACPI_DEBUG
302	help
303	  ACPI Debug Statements slow down ACPI processing. Function trace
304	  is about half of the penalty and is rarely useful.
305
306config ACPI_PCI_SLOT
307	tristate "PCI slot detection driver"
308	depends on SYSFS
309	default n
310	help
311	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
312	  slots in the system.  This can help correlate PCI bus addresses,
313	  i.e., segment/bus/device/function tuples, with physical slots in
314	  the system.  If you are unsure, say N.
315
316	  To compile this driver as a module, choose M here:
317	  the module will be called pci_slot.
318
319config X86_PM_TIMER
320	bool "Power Management Timer Support" if EXPERT
321	depends on X86
322	default y
323	help
324	  The Power Management Timer is available on all ACPI-capable,
325	  in most cases even if ACPI is unusable or blacklisted.
326
327	  This timing source is not affected by power management features
328	  like aggressive processor idling, throttling, frequency and/or
329	  voltage scaling, unlike the commonly used Time Stamp Counter
330	  (TSC) timing source.
331
332	  You should nearly always say Y here because many modern
333	  systems require this timer.
334
335config ACPI_CONTAINER
336	tristate "Container and Module Devices (EXPERIMENTAL)"
337	depends on EXPERIMENTAL
338	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO)
339	help
340	  This driver supports ACPI Container and Module devices (IDs
341	  ACPI0004, PNP0A05, and PNP0A06).
342
343	  This helps support hotplug of nodes, CPUs, and memory.
344
345	  To compile this driver as a module, choose M here:
346	  the module will be called container.
347
348config ACPI_HOTPLUG_MEMORY
349	tristate "Memory Hotplug"
350	depends on MEMORY_HOTPLUG
351	default n
352	help
353	  This driver supports ACPI memory hotplug.  The driver
354	  fields notifications on ACPI memory devices (PNP0C80),
355	  which represent memory ranges that may be onlined or
356	  offlined during runtime.
357
358	  If your hardware and firmware do not support adding or
359	  removing memory devices at runtime, you need not enable
360	  this driver.
361
362	  To compile this driver as a module, choose M here:
363	  the module will be called acpi_memhotplug.
364
365config ACPI_SBS
366	tristate "Smart Battery System"
367	depends on X86
368	select POWER_SUPPLY
369	help
370	  This driver supports the Smart Battery System, another
371	  type of access to battery information, found on some laptops.
372
373	  To compile this driver as a module, choose M here:
374	  the modules will be called sbs and sbshc.
375
376config ACPI_HED
377	tristate "Hardware Error Device"
378	help
379	  This driver supports the Hardware Error Device (PNP0C33),
380	  which is used to report some hardware errors notified via
381	  SCI, mainly the corrected errors.
382
383source "drivers/acpi/apei/Kconfig"
384
385endif	# ACPI
386