blob: 6f66a937ba208c63a752a1a21ede738ea85f8919 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
2# ACPI Configuration
3#
4
Jan Engelhardt3f2c48c2007-07-03 01:40:59 -04005menuconfig ACPI
Frans Pop355ee5e2007-10-29 17:20:38 -04006 bool "ACPI (Advanced Configuration and Power Interface) Support"
Linus Torvalds1da177e2005-04-16 15:20:36 -07007 depends on !IA64_HP_SIM
8 depends on IA64 || X86
Adrian Bunk13001242006-03-28 17:04:00 -05009 depends on PCI
Andrew Morton6796a122006-12-19 12:56:13 -080010 depends on PM
Len Brown243b66e2007-02-15 22:34:36 -050011 select PNP
Len Brown9fdd54f2009-02-06 12:24:17 -050012 select CPU_IDLE
Linus Torvalds1da177e2005-04-16 15:20:36 -070013 default y
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070014 help
Linus Torvalds1da177e2005-04-16 15:20:36 -070015 Advanced Configuration and Power Interface (ACPI) support for
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070016 Linux requires an ACPI-compliant platform (hardware/firmware),
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 and assumes the presence of OS-directed configuration and power
18 management (OSPM) software. This option will enlarge your
19 kernel by about 70K.
20
21 Linux ACPI provides a robust functional replacement for several
22 legacy configuration and power management interfaces, including
23 the Plug-and-Play BIOS specification (PnP BIOS), the
24 MultiProcessor Specification (MPS), and the Advanced Power
25 Management (APM) specification. If both ACPI and APM support
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070026 are configured, ACPI is used.
Linus Torvalds1da177e2005-04-16 15:20:36 -070027
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070028 The project home page for the Linux ACPI subsystem is here:
29 <http://www.lesswatts.org/projects/acpi/>
Linus Torvalds1da177e2005-04-16 15:20:36 -070030
31 Linux support for ACPI is based on Intel Corporation's ACPI
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070032 Component Architecture (ACPI CA). For more information on the
33 ACPI CA, see:
34 <http://acpica.org/>
Linus Torvalds1da177e2005-04-16 15:20:36 -070035
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070036 ACPI is an open industry specification co-developed by
37 Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba.
38 The specification is available at:
Linus Torvalds1da177e2005-04-16 15:20:36 -070039 <http://www.acpi.info>
40
Len Brown3e11c3c2005-05-27 04:53:27 -040041if ACPI
42
Len Brown673d5b42007-07-28 03:33:16 -040043config ACPI_SLEEP
44 bool
Rafael J. Wysocki5d1e0722008-10-22 14:58:43 -040045 depends on SUSPEND || HIBERNATION
Len Brown673d5b42007-07-28 03:33:16 -040046 default y
47
Zhang Ruib981c592007-01-29 11:02:30 +080048config ACPI_PROCFS
Len Brownfb804712007-07-24 01:50:46 -040049 bool "Deprecated /proc/acpi files"
50 depends on PROC_FS
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070051 help
Len Brownfb804712007-07-24 01:50:46 -040052 For backwards compatibility, this option allows
Rolf Eike Beer405bbe92007-10-20 03:10:57 +020053 deprecated /proc/acpi/ files to exist, even when
Len Brownfb804712007-07-24 01:50:46 -040054 they have been replaced by functions in /sys.
55 The deprecated files (and their replacements) include:
56
Zhao Yakui74cad4e2009-06-24 11:49:49 +080057 /proc/acpi/processor/*/throttling (/sys/class/thermal/
58 cooling_device*/*)
Len Brownfb804712007-07-24 01:50:46 -040059 This option has no effect on /proc/acpi/ files
60 and functions which do not yet exist in /sys.
61
62 Say N to delete /proc/acpi/ files that have moved to /sys/
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070063
Alexey Starikovskiyfdcedbb2007-11-19 16:33:45 +030064config ACPI_PROCFS_POWER
Alan Cox9e527972008-01-03 16:31:42 +000065 bool "Deprecated power /proc/acpi directories"
Alexey Starikovskiyfdcedbb2007-11-19 16:33:45 +030066 depends on PROC_FS
67 default y
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070068 help
Alexey Starikovskiyfdcedbb2007-11-19 16:33:45 +030069 For backwards compatibility, this option allows
Alan Cox9e527972008-01-03 16:31:42 +000070 deprecated power /proc/acpi/ directories to exist, even when
Alexey Starikovskiyfdcedbb2007-11-19 16:33:45 +030071 they have been replaced by functions in /sys.
Alan Cox9e527972008-01-03 16:31:42 +000072 The deprecated directories (and their replacements) include:
Alexey Starikovskiyfdcedbb2007-11-19 16:33:45 +030073 /proc/acpi/battery/* (/sys/class/power_supply/*)
74 /proc/acpi/ac_adapter/* (sys/class/power_supply/*)
Alan Cox9e527972008-01-03 16:31:42 +000075 This option has no effect on /proc/acpi/ directories
Alexey Starikovskiyfdcedbb2007-11-19 16:33:45 +030076 and functions, which do not yet exist in /sys
Zhang Ruib981c592007-01-29 11:02:30 +080077
Alan Cox9e527972008-01-03 16:31:42 +000078 Say N to delete power /proc/acpi/ directories that have moved to /sys/
79
Darrick J. Wongde584af2009-09-18 12:41:09 -070080config ACPI_POWER_METER
81 tristate "ACPI 4.0 power meter"
82 depends on HWMON
83 help
84 This driver exposes ACPI 4.0 power meters as hardware monitoring
85 devices. Say Y (or M) if you have a computer with ACPI 4.0 firmware
86 and a power meter.
87
88 To compile this driver as a module, choose M here:
89 the module will be called power-meter.
90
Alexey Starikovskiy97749cd2008-01-01 14:27:24 -050091config ACPI_SYSFS_POWER
92 bool "Future power /sys interface"
93 select POWER_SUPPLY
94 default y
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070095 help
Alexey Starikovskiy97749cd2008-01-01 14:27:24 -050096 Say N to disable power /sys interface
Alan Cox9e527972008-01-03 16:31:42 +000097
Len Brown14e04fb32007-08-23 15:20:26 -040098config ACPI_PROC_EVENT
99 bool "Deprecated /proc/acpi/event support"
100 depends on PROC_FS
Hugh Dickins721ebe02007-08-27 16:04:39 +0100101 default y
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700102 help
103 A user-space daemon, acpid, typically reads /proc/acpi/event
104 and handles all ACPI-generated events.
Len Brown14e04fb32007-08-23 15:20:26 -0400105
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700106 These events are now delivered to user-space either
107 via the input layer or as netlink events.
Len Brown14e04fb32007-08-23 15:20:26 -0400108
Hugh Dickins721ebe02007-08-27 16:04:39 +0100109 This build option enables the old code for legacy
Len Brown14e04fb32007-08-23 15:20:26 -0400110 user-space implementation. After some time, this will
111 be moved under CONFIG_ACPI_PROCFS, and then deleted.
112
Hugh Dickins721ebe02007-08-27 16:04:39 +0100113 Say Y here to retain the old behaviour. Say N if your
114 user-space is newer than kernel 2.6.23 (September 2007).
115
Linus Torvalds1da177e2005-04-16 15:20:36 -0700116config ACPI_AC
117 tristate "AC Adapter"
Alexey Starikovskiy5527c8b2007-10-29 17:08:59 -0400118 depends on X86
Len Brown07fefe42005-08-25 12:22:04 -0400119 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700120 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700121 This driver supports the AC Adapter object, which indicates
122 whether a system is on AC or not. If you have a system that can
Len Brown07fefe42005-08-25 12:22:04 -0400123 switch between A/C and battery, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700124
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700125 To compile this driver as a module, choose M here:
126 the module will be called ac.
127
Linus Torvalds1da177e2005-04-16 15:20:36 -0700128config ACPI_BATTERY
129 tristate "Battery"
Alexey Starikovskiy5527c8b2007-10-29 17:08:59 -0400130 depends on X86
Len Brown07fefe42005-08-25 12:22:04 -0400131 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700132 help
133 This driver adds support for battery information through
134 /proc/acpi/battery. If you have a mobile system with a battery,
135 say Y.
136
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700137 To compile this driver as a module, choose M here:
138 the module will be called battery.
139
Linus Torvalds1da177e2005-04-16 15:20:36 -0700140config ACPI_BUTTON
141 tristate "Button"
Dmitry Torokhovc0968f02006-11-09 00:40:13 -0500142 depends on INPUT
Len Brown07fefe42005-08-25 12:22:04 -0400143 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700144 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700145 This driver handles events on the power, sleep, and lid buttons.
Len Brown07fefe42005-08-25 12:22:04 -0400146 A daemon reads /proc/acpi/event and perform user-defined actions
147 such as shutting down the system. This is necessary for
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700148 software-controlled poweroff.
149
150 To compile this driver as a module, choose M here:
151 the module will be called button.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700152
153config ACPI_VIDEO
154 tristate "Video"
Luming Yu23b0f012007-05-09 21:07:05 +0800155 depends on X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL
Andreas Herrmann03e2bf22007-09-17 23:41:05 +0200156 depends on INPUT
Zhang Rui63c4ec92008-04-21 16:07:13 +0800157 select THERMAL
Linus Torvalds1da177e2005-04-16 15:20:36 -0700158 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700159 This driver implements the ACPI Extensions For Display Adapters
Linus Torvalds1da177e2005-04-16 15:20:36 -0700160 for integrated graphics devices on motherboard, as specified in
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700161 ACPI 2.0 Specification, Appendix B. This supports basic operations
162 such as defining the video POST device, retrieving EDID information,
163 and setting up a video output.
164
165 To compile this driver as a module, choose M here:
166 the module will be called video.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700167
168config ACPI_FAN
169 tristate "Fan"
Zhang Rui63c4ec92008-04-21 16:07:13 +0800170 select THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400171 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700172 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700173 This driver supports ACPI fan devices, allowing user-mode
Linus Torvalds1da177e2005-04-16 15:20:36 -0700174 applications to perform basic fan control (on, off, status).
175
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700176 To compile this driver as a module, choose M here:
177 the module will be called fan.
178
Len Brownc8f7a622006-07-09 17:22:28 -0400179config ACPI_DOCK
Shaohua Li898b0542008-09-27 11:10:28 +0800180 bool "Dock"
Len Brown8d7bff62006-07-09 22:09:57 -0400181 depends on EXPERIMENTAL
Len Brownc8f7a622006-07-09 17:22:28 -0400182 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700183 This driver supports ACPI-controlled docking stations and removable
184 drive bays such as the IBM Ultrabay and the Dell Module Bay.
Kristen Carlson Accardi01b57e72006-10-20 14:30:25 -0700185
Linus Torvalds1da177e2005-04-16 15:20:36 -0700186config ACPI_PROCESSOR
187 tristate "Processor"
Zhang Rui63c4ec92008-04-21 16:07:13 +0800188 select THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400189 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700190 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700191 This driver installs ACPI as the idle handler for Linux and uses
192 ACPI C2 and C3 processor states to save power on systems that
Len Brown07fefe42005-08-25 12:22:04 -0400193 support it. It is required by several flavors of cpufreq
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700194 performance-state drivers.
195
196 To compile this driver as a module, choose M here:
197 the module will be called processor.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700198
199config ACPI_HOTPLUG_CPU
Adrian Bunkcbfc1ba2005-07-30 04:18:00 -0400200 bool
201 depends on ACPI_PROCESSOR && HOTPLUG_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700202 select ACPI_CONTAINER
Adrian Bunkcbfc1ba2005-07-30 04:18:00 -0400203 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700204
Shaohua Li8e0af512009-07-27 18:11:02 -0400205config ACPI_PROCESSOR_AGGREGATOR
206 tristate "Processor Aggregator"
207 depends on ACPI_PROCESSOR
208 depends on EXPERIMENTAL
Len Brownd91f79e2009-09-27 02:35:55 -0400209 depends on X86
Shaohua Li8e0af512009-07-27 18:11:02 -0400210 help
211 ACPI 4.0 defines processor Aggregator, which enables OS to perform
Jiri Slabyc4c4e2a2009-10-09 15:53:24 +0200212 specific processor configuration and control that applies to all
Shaohua Li8e0af512009-07-27 18:11:02 -0400213 processors in the platform. Currently only logical processor idling
214 is defined, which is to reduce power consumption. This driver
Jiri Slabyc4c4e2a2009-10-09 15:53:24 +0200215 supports the new device.
Shaohua Li8e0af512009-07-27 18:11:02 -0400216
Linus Torvalds1da177e2005-04-16 15:20:36 -0700217config ACPI_THERMAL
218 tristate "Thermal Zone"
219 depends on ACPI_PROCESSOR
Zhang Rui3f655ef2008-01-17 15:51:11 +0800220 select THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400221 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700222 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700223 This driver supports ACPI thermal zones. Most mobile and
Linus Torvalds1da177e2005-04-16 15:20:36 -0700224 some desktop systems support ACPI thermal zones. It is HIGHLY
225 recommended that this option be enabled, as your processor(s)
226 may be damaged without it.
227
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700228 To compile this driver as a module, choose M here:
229 the module will be called thermal.
230
Linus Torvalds1da177e2005-04-16 15:20:36 -0700231config ACPI_NUMA
232 bool "NUMA support"
233 depends on NUMA
Yasunori Goto762834e2006-06-23 02:03:19 -0700234 depends on (X86 || IA64)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700235 default y if IA64_GENERIC || IA64_SGI_SN2
236
Randy Dunlap7ce95732008-02-22 11:25:04 -0800237config ACPI_CUSTOM_DSDT_FILE
238 string "Custom DSDT Table file to include"
239 default ""
Linus Torvalds1da177e2005-04-16 15:20:36 -0700240 depends on !STANDALONE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700241 help
Len Brownd89e9d62008-02-06 19:28:02 -0500242 This option supports a custom DSDT by linking it into the kernel.
243 See Documentation/acpi/dsdt-override.txt
244
Uwe Zeisbergerc30fe7f2006-03-24 18:23:14 +0100245 Enter the full path name to the file which includes the AmlCode
246 declaration.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700247
Randy Dunlap7ce95732008-02-22 11:25:04 -0800248 If unsure, don't enter a file name.
249
250config ACPI_CUSTOM_DSDT
251 bool
252 default ACPI_CUSTOM_DSDT_FILE != ""
253
Linus Torvalds1da177e2005-04-16 15:20:36 -0700254config ACPI_BLACKLIST_YEAR
Andi Kleen2eb1bdb2006-02-26 04:18:43 +0100255 int "Disable ACPI for systems before Jan 1st this year" if X86_32
Linus Torvalds1da177e2005-04-16 15:20:36 -0700256 default 0
257 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700258 Enter a 4-digit year, e.g., 2001, to disable ACPI by default
Linus Torvalds1da177e2005-04-16 15:20:36 -0700259 on platforms with DMI BIOS date before January 1st that year.
260 "acpi=force" can be used to override this mechanism.
261
262 Enter 0 to disable this mechanism and allow ACPI to
263 run by default no matter what the year. (default)
264
265config ACPI_DEBUG
266 bool "Debug Statements"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700267 default n
268 help
Bjorn Helgaasa0d84a92008-11-07 16:58:05 -0700269 The ACPI subsystem can produce debug output. Saying Y enables this
270 output and increases the kernel size by around 50K.
271
272 Use the acpi.debug_layer and acpi.debug_level kernel command-line
273 parameters documented in Documentation/acpi/debug.txt and
274 Documentation/kernel-parameters.txt to control the type and
275 amount of debug output.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700276
Thomas Renninger798d91032007-05-31 17:20:39 +0200277config ACPI_DEBUG_FUNC_TRACE
278 bool "Additionally enable ACPI function tracing"
279 default n
280 depends on ACPI_DEBUG
281 help
282 ACPI Debug Statements slow down ACPI processing. Function trace
283 is about half of the penalty and is rarely useful.
284
Alex Chiang8344b562008-06-10 15:30:42 -0600285config ACPI_PCI_SLOT
286 tristate "PCI slot detection driver"
Alex Chiang268a03a2009-06-17 19:03:57 -0600287 depends on SYSFS
Alex Chiang8344b562008-06-10 15:30:42 -0600288 default n
289 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700290 This driver creates entries in /sys/bus/pci/slots/ for all PCI
291 slots in the system. This can help correlate PCI bus addresses,
292 i.e., segment/bus/device/function tuples, with physical slots in
293 the system. If you are unsure, say N.
294
295 To compile this driver as a module, choose M here:
296 the module will be called pci_slot.
Alex Chiang8344b562008-06-10 15:30:42 -0600297
Linus Torvalds1da177e2005-04-16 15:20:36 -0700298config X86_PM_TIMER
Andi Kleene78256b2006-02-26 04:18:37 +0100299 bool "Power Management Timer Support" if EMBEDDED
Linus Torvalds1da177e2005-04-16 15:20:36 -0700300 depends on X86
Len Brown07fefe42005-08-25 12:22:04 -0400301 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700302 help
303 The Power Management Timer is available on all ACPI-capable,
304 in most cases even if ACPI is unusable or blacklisted.
305
Matt LaPlantec73a6682006-10-03 22:24:43 +0200306 This timing source is not affected by power management features
Linus Torvalds1da177e2005-04-16 15:20:36 -0700307 like aggressive processor idling, throttling, frequency and/or
308 voltage scaling, unlike the commonly used Time Stamp Counter
309 (TSC) timing source.
310
Andi Kleene78256b2006-02-26 04:18:37 +0100311 You should nearly always say Y here because many modern
312 systems require this timer.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700313
314config ACPI_CONTAINER
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700315 tristate "Container and Module Devices (EXPERIMENTAL)"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700316 depends on EXPERIMENTAL
317 default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO)
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700318 help
319 This driver supports ACPI Container and Module devices (IDs
320 ACPI0004, PNP0A05, and PNP0A06).
Keiichiro Tokunaga45b1b192005-03-02 00:00:00 -0500321
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700322 This helps support hotplug of nodes, CPUs, and memory.
323
324 To compile this driver as a module, choose M here:
325 the module will be called container.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700326
327config ACPI_HOTPLUG_MEMORY
328 tristate "Memory Hotplug"
Yasunori Gotobc02af92006-06-27 02:53:30 -0700329 depends on MEMORY_HOTPLUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700330 default n
331 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700332 This driver supports ACPI memory hotplug. The driver
333 fields notifications on ACPI memory devices (PNP0C80),
334 which represent memory ranges that may be onlined or
335 offlined during runtime.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700336
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700337 If your hardware and firmware do not support adding or
338 removing memory devices at runtime, you need not enable
339 this driver.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700340
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700341 To compile this driver as a module, choose M here:
342 the module will be called acpi_memhotplug.
Rich Townsend3f86b832006-07-01 11:36:54 -0400343
344config ACPI_SBS
Alexey Starikovskiy94f6c082007-09-26 19:43:48 +0400345 tristate "Smart Battery System"
Vladimir Lebedevb4150fc2007-03-19 17:45:50 +0300346 depends on X86
Rich Townsend3f86b832006-07-01 11:36:54 -0400347 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700348 This driver supports the Smart Battery System, another
Alexey Starikovskiy94f6c082007-09-26 19:43:48 +0400349 type of access to battery information, found on some laptops.
Rich Townsend3f86b832006-07-01 11:36:54 -0400350
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700351 To compile this driver as a module, choose M here:
352 the modules will be called sbs and sbshc.
353
Huang Ying801eab82010-05-18 14:35:17 +0800354config ACPI_HED
355 tristate "Hardware Error Device"
356 help
357 This driver supports the Hardware Error Device (PNP0C33),
358 which is used to report some hardware errors notified via
359 SCI, mainly the corrected errors.
360
Huang Yinga643ce22010-05-18 14:35:12 +0800361source "drivers/acpi/apei/Kconfig"
362
Linus Torvalds1da177e2005-04-16 15:20:36 -0700363endif # ACPI