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