xref: /OK3568_Linux_fs/kernel/drivers/acpi/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# ACPI Configuration
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunconfig ARCH_SUPPORTS_ACPI
7*4882a593Smuzhiyun	bool
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmenuconfig ACPI
10*4882a593Smuzhiyun	bool "ACPI (Advanced Configuration and Power Interface) Support"
11*4882a593Smuzhiyun	depends on ARCH_SUPPORTS_ACPI
12*4882a593Smuzhiyun	select PNP
13*4882a593Smuzhiyun	select NLS
14*4882a593Smuzhiyun	default y if X86
15*4882a593Smuzhiyun	help
16*4882a593Smuzhiyun	  Advanced Configuration and Power Interface (ACPI) support for
17*4882a593Smuzhiyun	  Linux requires an ACPI-compliant platform (hardware/firmware),
18*4882a593Smuzhiyun	  and assumes the presence of OS-directed configuration and power
19*4882a593Smuzhiyun	  management (OSPM) software.  This option will enlarge your
20*4882a593Smuzhiyun	  kernel by about 70K.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun	  Linux ACPI provides a robust functional replacement for several
23*4882a593Smuzhiyun	  legacy configuration and power management interfaces, including
24*4882a593Smuzhiyun	  the Plug-and-Play BIOS specification (PnP BIOS), the
25*4882a593Smuzhiyun	  MultiProcessor Specification (MPS), and the Advanced Power
26*4882a593Smuzhiyun	  Management (APM) specification.  If both ACPI and APM support
27*4882a593Smuzhiyun	  are configured, ACPI is used.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun	  The project home page for the Linux ACPI subsystem is here:
30*4882a593Smuzhiyun	  <https://01.org/linux-acpi>
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	  Linux support for ACPI is based on Intel Corporation's ACPI
33*4882a593Smuzhiyun	  Component Architecture (ACPI CA).  For more information on the
34*4882a593Smuzhiyun	  ACPI CA, see:
35*4882a593Smuzhiyun	  <https://acpica.org/>
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	  ACPI is an open industry specification originally co-developed by
38*4882a593Smuzhiyun	  Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
39*4882a593Smuzhiyun	  it is developed by the ACPI Specification Working Group (ASWG) under
40*4882a593Smuzhiyun	  the UEFI Forum and any UEFI member can join the ASWG and contribute
41*4882a593Smuzhiyun	  to the ACPI specification.
42*4882a593Smuzhiyun	  The specification is available at:
43*4882a593Smuzhiyun	  <https://uefi.org/specifications>
44*4882a593Smuzhiyun
45*4882a593Smuzhiyunif ACPI
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconfig ACPI_LEGACY_TABLES_LOOKUP
48*4882a593Smuzhiyun	bool
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunconfig ARCH_MIGHT_HAVE_ACPI_PDC
51*4882a593Smuzhiyun	bool
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunconfig ACPI_GENERIC_GSI
54*4882a593Smuzhiyun	bool
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunconfig ACPI_SYSTEM_POWER_STATES_SUPPORT
57*4882a593Smuzhiyun	bool
58*4882a593Smuzhiyun
59*4882a593Smuzhiyunconfig ACPI_CCA_REQUIRED
60*4882a593Smuzhiyun	bool
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunconfig ACPI_DEBUGGER
63*4882a593Smuzhiyun	bool "AML debugger interface"
64*4882a593Smuzhiyun	select ACPI_DEBUG
65*4882a593Smuzhiyun	help
66*4882a593Smuzhiyun	  Enable in-kernel debugging of AML facilities: statistics,
67*4882a593Smuzhiyun	  internal object dump, single step control method execution.
68*4882a593Smuzhiyun	  This is still under development, currently enabling this only
69*4882a593Smuzhiyun	  results in the compilation of the ACPICA debugger files.
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunif ACPI_DEBUGGER
72*4882a593Smuzhiyun
73*4882a593Smuzhiyunconfig ACPI_DEBUGGER_USER
74*4882a593Smuzhiyun	tristate "Userspace debugger accessiblity"
75*4882a593Smuzhiyun	depends on DEBUG_FS
76*4882a593Smuzhiyun	help
77*4882a593Smuzhiyun	  Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
78*4882a593Smuzhiyun	  to access the debugger functionalities.
79*4882a593Smuzhiyun
80*4882a593Smuzhiyunendif
81*4882a593Smuzhiyun
82*4882a593Smuzhiyunconfig ACPI_SPCR_TABLE
83*4882a593Smuzhiyun	bool "ACPI Serial Port Console Redirection Support"
84*4882a593Smuzhiyun	default y if X86
85*4882a593Smuzhiyun	help
86*4882a593Smuzhiyun	  Enable support for Serial Port Console Redirection (SPCR) Table.
87*4882a593Smuzhiyun	  This table provides information about the configuration of the
88*4882a593Smuzhiyun	  earlycon console.
89*4882a593Smuzhiyun
90*4882a593Smuzhiyunconfig ACPI_LPIT
91*4882a593Smuzhiyun	bool
92*4882a593Smuzhiyun	depends on X86_64
93*4882a593Smuzhiyun	default y
94*4882a593Smuzhiyun
95*4882a593Smuzhiyunconfig ACPI_SLEEP
96*4882a593Smuzhiyun	bool
97*4882a593Smuzhiyun	depends on SUSPEND || HIBERNATION
98*4882a593Smuzhiyun	depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
99*4882a593Smuzhiyun	default y
100*4882a593Smuzhiyun
101*4882a593Smuzhiyunconfig ACPI_REV_OVERRIDE_POSSIBLE
102*4882a593Smuzhiyun	bool "Allow supported ACPI revision to be overridden"
103*4882a593Smuzhiyun	depends on X86
104*4882a593Smuzhiyun	default y
105*4882a593Smuzhiyun	help
106*4882a593Smuzhiyun	  The platform firmware on some systems expects Linux to return "5" as
107*4882a593Smuzhiyun	  the supported ACPI revision which makes it expose system configuration
108*4882a593Smuzhiyun	  information in a special way.
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun	  For example, based on what ACPI exports as the supported revision,
111*4882a593Smuzhiyun	  Dell XPS 13 (2015) configures its audio device to either work in HDA
112*4882a593Smuzhiyun	  mode or in I2S mode, where the former is supposed to be used on Linux
113*4882a593Smuzhiyun	  until the latter is fully supported (in the kernel as well as in user
114*4882a593Smuzhiyun	  space).
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun	  This option enables a DMI-based quirk for the above Dell machine (so
117*4882a593Smuzhiyun	  that HDA audio is exposed by the platform firmware to the kernel) and
118*4882a593Smuzhiyun	  makes it possible to force the kernel to return "5" as the supported
119*4882a593Smuzhiyun	  ACPI revision via the "acpi_rev_override" command line switch.
120*4882a593Smuzhiyun
121*4882a593Smuzhiyunconfig ACPI_EC_DEBUGFS
122*4882a593Smuzhiyun	tristate "EC read/write access through /sys/kernel/debug/ec"
123*4882a593Smuzhiyun	help
124*4882a593Smuzhiyun	  Say N to disable Embedded Controller /sys/kernel/debug interface
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun	  Be aware that using this interface can confuse your Embedded
127*4882a593Smuzhiyun	  Controller in a way that a normal reboot is not enough. You then
128*4882a593Smuzhiyun	  have to power off your system, and remove the laptop battery for
129*4882a593Smuzhiyun	  some seconds.
130*4882a593Smuzhiyun	  An Embedded Controller typically is available on laptops and reads
131*4882a593Smuzhiyun	  sensor values like battery state and temperature.
132*4882a593Smuzhiyun	  The kernel accesses the EC through ACPI parsed code provided by BIOS
133*4882a593Smuzhiyun	  tables. This option allows to access the EC directly without ACPI
134*4882a593Smuzhiyun	  code being involved.
135*4882a593Smuzhiyun	  Thus this option is a debug option that helps to write ACPI drivers
136*4882a593Smuzhiyun	  and can be used to identify ACPI code or EC firmware bugs.
137*4882a593Smuzhiyun
138*4882a593Smuzhiyunconfig ACPI_AC
139*4882a593Smuzhiyun	tristate "AC Adapter"
140*4882a593Smuzhiyun	select POWER_SUPPLY
141*4882a593Smuzhiyun	default y
142*4882a593Smuzhiyun	help
143*4882a593Smuzhiyun	  This driver supports the AC Adapter object, which indicates
144*4882a593Smuzhiyun	  whether a system is on AC or not.  If you have a system that can
145*4882a593Smuzhiyun	  switch between A/C and battery, say Y.
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
148*4882a593Smuzhiyun	  the module will be called ac.
149*4882a593Smuzhiyun
150*4882a593Smuzhiyunconfig ACPI_BATTERY
151*4882a593Smuzhiyun	tristate "Battery"
152*4882a593Smuzhiyun	select POWER_SUPPLY
153*4882a593Smuzhiyun	default y
154*4882a593Smuzhiyun	help
155*4882a593Smuzhiyun	  This driver adds support for battery information through
156*4882a593Smuzhiyun	  /proc/acpi/battery. If you have a mobile system with a battery,
157*4882a593Smuzhiyun	  say Y.
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
160*4882a593Smuzhiyun	  the module will be called battery.
161*4882a593Smuzhiyun
162*4882a593Smuzhiyunconfig ACPI_BUTTON
163*4882a593Smuzhiyun	tristate "Button"
164*4882a593Smuzhiyun	depends on INPUT
165*4882a593Smuzhiyun	default y
166*4882a593Smuzhiyun	help
167*4882a593Smuzhiyun	  This driver handles events on the power, sleep, and lid buttons.
168*4882a593Smuzhiyun	  A daemon reads events from input devices or via netlink and
169*4882a593Smuzhiyun	  performs user-defined actions such as shutting down the system.
170*4882a593Smuzhiyun	  This is necessary for software-controlled poweroff.
171*4882a593Smuzhiyun
172*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
173*4882a593Smuzhiyun	  the module will be called button.
174*4882a593Smuzhiyun
175*4882a593Smuzhiyunconfig ACPI_TINY_POWER_BUTTON
176*4882a593Smuzhiyun	tristate "Tiny Power Button Driver"
177*4882a593Smuzhiyun	depends on !ACPI_BUTTON
178*4882a593Smuzhiyun	help
179*4882a593Smuzhiyun	  This driver provides a tiny alternative to the ACPI Button driver.
180*4882a593Smuzhiyun	  The tiny power button driver only handles the power button. Rather
181*4882a593Smuzhiyun	  than notifying userspace via the input layer or a netlink event, this
182*4882a593Smuzhiyun	  driver directly signals the init process to shut down.
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun	  This driver is particularly suitable for cloud and VM environments,
185*4882a593Smuzhiyun	  which use a simulated power button to initiate a controlled poweroff,
186*4882a593Smuzhiyun	  but which may not want to run a separate userspace daemon to process
187*4882a593Smuzhiyun	  input events.
188*4882a593Smuzhiyun
189*4882a593Smuzhiyunconfig ACPI_TINY_POWER_BUTTON_SIGNAL
190*4882a593Smuzhiyun	int "Tiny Power Button Signal"
191*4882a593Smuzhiyun	depends on ACPI_TINY_POWER_BUTTON
192*4882a593Smuzhiyun	default 38
193*4882a593Smuzhiyun	help
194*4882a593Smuzhiyun	  Default signal to send to init in response to the power button.
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
197*4882a593Smuzhiyun	  (SIGINT) to simulate Ctrl+Alt+Del.
198*4882a593Smuzhiyun
199*4882a593Smuzhiyunconfig ACPI_VIDEO
200*4882a593Smuzhiyun	tristate "Video"
201*4882a593Smuzhiyun	depends on X86 && BACKLIGHT_CLASS_DEVICE
202*4882a593Smuzhiyun	depends on INPUT
203*4882a593Smuzhiyun	select THERMAL
204*4882a593Smuzhiyun	help
205*4882a593Smuzhiyun	  This driver implements the ACPI Extensions For Display Adapters
206*4882a593Smuzhiyun	  for integrated graphics devices on motherboard, as specified in
207*4882a593Smuzhiyun	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
208*4882a593Smuzhiyun	  such as defining the video POST device, retrieving EDID information,
209*4882a593Smuzhiyun	  and setting up a video output.
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
212*4882a593Smuzhiyun	  the module will be called video.
213*4882a593Smuzhiyun
214*4882a593Smuzhiyunconfig ACPI_FAN
215*4882a593Smuzhiyun	tristate "Fan"
216*4882a593Smuzhiyun	depends on THERMAL
217*4882a593Smuzhiyun	default y
218*4882a593Smuzhiyun	help
219*4882a593Smuzhiyun	  This driver supports ACPI fan devices, allowing user-mode
220*4882a593Smuzhiyun	  applications to perform basic fan control (on, off, status).
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
223*4882a593Smuzhiyun	  the module will be called fan.
224*4882a593Smuzhiyun
225*4882a593Smuzhiyunconfig ACPI_TAD
226*4882a593Smuzhiyun	tristate "ACPI Time and Alarm (TAD) Device Support"
227*4882a593Smuzhiyun	depends on SYSFS && PM_SLEEP
228*4882a593Smuzhiyun	help
229*4882a593Smuzhiyun	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
230*4882a593Smuzhiyun	  Time Clock (RTC).  Its wake timers allow the system to transition from
231*4882a593Smuzhiyun	  the S3 (or optionally S4/S5) state to S0 state after a time period
232*4882a593Smuzhiyun	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
233*4882a593Smuzhiyun	  scale of flexibility in the wake timers.  The time capabilities of the
234*4882a593Smuzhiyun	  TAD maintain the time of day information across platform power
235*4882a593Smuzhiyun	  transitions, and keep track of time even when the platform is turned
236*4882a593Smuzhiyun	  off.
237*4882a593Smuzhiyun
238*4882a593Smuzhiyunconfig ACPI_DOCK
239*4882a593Smuzhiyun	bool "Dock"
240*4882a593Smuzhiyun	help
241*4882a593Smuzhiyun	  This driver supports ACPI-controlled docking stations and removable
242*4882a593Smuzhiyun	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
243*4882a593Smuzhiyun
244*4882a593Smuzhiyunconfig ACPI_CPU_FREQ_PSS
245*4882a593Smuzhiyun	bool
246*4882a593Smuzhiyun	select THERMAL
247*4882a593Smuzhiyun
248*4882a593Smuzhiyunconfig ACPI_PROCESSOR_CSTATE
249*4882a593Smuzhiyun	def_bool y
250*4882a593Smuzhiyun	depends on ACPI_PROCESSOR
251*4882a593Smuzhiyun	depends on IA64 || X86
252*4882a593Smuzhiyun
253*4882a593Smuzhiyunconfig ACPI_PROCESSOR_IDLE
254*4882a593Smuzhiyun	bool
255*4882a593Smuzhiyun	select CPU_IDLE
256*4882a593Smuzhiyun
257*4882a593Smuzhiyunconfig ACPI_MCFG
258*4882a593Smuzhiyun	bool
259*4882a593Smuzhiyun
260*4882a593Smuzhiyunconfig ACPI_CPPC_LIB
261*4882a593Smuzhiyun	bool
262*4882a593Smuzhiyun	depends on ACPI_PROCESSOR
263*4882a593Smuzhiyun	select MAILBOX
264*4882a593Smuzhiyun	select PCC
265*4882a593Smuzhiyun	help
266*4882a593Smuzhiyun	  If this option is enabled, this file implements common functionality
267*4882a593Smuzhiyun	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
268*4882a593Smuzhiyun	  routines implemented are meant to be used by other
269*4882a593Smuzhiyun	  drivers to control CPU performance using CPPC semantics.
270*4882a593Smuzhiyun	  If your platform does not support CPPC in firmware,
271*4882a593Smuzhiyun	  leave this option disabled.
272*4882a593Smuzhiyun
273*4882a593Smuzhiyunconfig ACPI_PROCESSOR
274*4882a593Smuzhiyun	tristate "Processor"
275*4882a593Smuzhiyun	depends on X86 || IA64 || ARM64
276*4882a593Smuzhiyun	select ACPI_PROCESSOR_IDLE
277*4882a593Smuzhiyun	select ACPI_CPU_FREQ_PSS if X86 || IA64
278*4882a593Smuzhiyun	default y
279*4882a593Smuzhiyun	help
280*4882a593Smuzhiyun	  This driver adds support for the ACPI Processor package. It is required
281*4882a593Smuzhiyun	  by several flavors of cpufreq performance-state, thermal, throttling and
282*4882a593Smuzhiyun	  idle drivers.
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
285*4882a593Smuzhiyun	  the module will be called processor.
286*4882a593Smuzhiyun
287*4882a593Smuzhiyunconfig ACPI_IPMI
288*4882a593Smuzhiyun	tristate "IPMI"
289*4882a593Smuzhiyun	depends on IPMI_HANDLER
290*4882a593Smuzhiyun	help
291*4882a593Smuzhiyun	  This driver enables the ACPI to access the BMC controller. And it
292*4882a593Smuzhiyun	  uses the IPMI request/response message to communicate with BMC
293*4882a593Smuzhiyun	  controller, which can be found on on the server.
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
296*4882a593Smuzhiyun	  the module will be called as acpi_ipmi.
297*4882a593Smuzhiyun
298*4882a593Smuzhiyunconfig ACPI_HOTPLUG_CPU
299*4882a593Smuzhiyun	bool
300*4882a593Smuzhiyun	depends on ACPI_PROCESSOR && HOTPLUG_CPU
301*4882a593Smuzhiyun	select ACPI_CONTAINER
302*4882a593Smuzhiyun	default y
303*4882a593Smuzhiyun
304*4882a593Smuzhiyunconfig ACPI_PROCESSOR_AGGREGATOR
305*4882a593Smuzhiyun	tristate "Processor Aggregator"
306*4882a593Smuzhiyun	depends on ACPI_PROCESSOR
307*4882a593Smuzhiyun	depends on X86
308*4882a593Smuzhiyun	help
309*4882a593Smuzhiyun	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
310*4882a593Smuzhiyun	  specific processor configuration and control that applies to all
311*4882a593Smuzhiyun	  processors in the platform. Currently only logical processor idling
312*4882a593Smuzhiyun	  is defined, which is to reduce power consumption. This driver
313*4882a593Smuzhiyun	  supports the new device.
314*4882a593Smuzhiyun
315*4882a593Smuzhiyunconfig ACPI_THERMAL
316*4882a593Smuzhiyun	tristate "Thermal Zone"
317*4882a593Smuzhiyun	depends on ACPI_PROCESSOR
318*4882a593Smuzhiyun	select THERMAL
319*4882a593Smuzhiyun	default y
320*4882a593Smuzhiyun	help
321*4882a593Smuzhiyun	  This driver supports ACPI thermal zones.  Most mobile and
322*4882a593Smuzhiyun	  some desktop systems support ACPI thermal zones.  It is HIGHLY
323*4882a593Smuzhiyun	  recommended that this option be enabled, as your processor(s)
324*4882a593Smuzhiyun	  may be damaged without it.
325*4882a593Smuzhiyun
326*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
327*4882a593Smuzhiyun	  the module will be called thermal.
328*4882a593Smuzhiyun
329*4882a593Smuzhiyunconfig ACPI_CUSTOM_DSDT_FILE
330*4882a593Smuzhiyun	string "Custom DSDT Table file to include"
331*4882a593Smuzhiyun	default ""
332*4882a593Smuzhiyun	depends on !STANDALONE
333*4882a593Smuzhiyun	help
334*4882a593Smuzhiyun	  This option supports a custom DSDT by linking it into the kernel.
335*4882a593Smuzhiyun	  See Documentation/admin-guide/acpi/dsdt-override.rst
336*4882a593Smuzhiyun
337*4882a593Smuzhiyun	  Enter the full path name to the file which includes the AmlCode
338*4882a593Smuzhiyun	  or dsdt_aml_code declaration.
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun	  If unsure, don't enter a file name.
341*4882a593Smuzhiyun
342*4882a593Smuzhiyunconfig ACPI_CUSTOM_DSDT
343*4882a593Smuzhiyun	bool
344*4882a593Smuzhiyun	default ACPI_CUSTOM_DSDT_FILE != ""
345*4882a593Smuzhiyun
346*4882a593Smuzhiyunconfig ARCH_HAS_ACPI_TABLE_UPGRADE
347*4882a593Smuzhiyun	def_bool n
348*4882a593Smuzhiyun
349*4882a593Smuzhiyunconfig ACPI_TABLE_UPGRADE
350*4882a593Smuzhiyun	bool "Allow upgrading ACPI tables via initrd"
351*4882a593Smuzhiyun	depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
352*4882a593Smuzhiyun	default y
353*4882a593Smuzhiyun	help
354*4882a593Smuzhiyun	  This option provides functionality to upgrade arbitrary ACPI tables
355*4882a593Smuzhiyun	  via initrd. No functional change if no ACPI tables are passed via
356*4882a593Smuzhiyun	  initrd, therefore it's safe to say Y.
357*4882a593Smuzhiyun	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
358*4882a593Smuzhiyun
359*4882a593Smuzhiyunconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
360*4882a593Smuzhiyun	bool "Override ACPI tables from built-in initrd"
361*4882a593Smuzhiyun	depends on ACPI_TABLE_UPGRADE
362*4882a593Smuzhiyun	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
363*4882a593Smuzhiyun	help
364*4882a593Smuzhiyun	  This option provides functionality to override arbitrary ACPI tables
365*4882a593Smuzhiyun	  from built-in uncompressed initrd.
366*4882a593Smuzhiyun
367*4882a593Smuzhiyun	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
368*4882a593Smuzhiyun
369*4882a593Smuzhiyunconfig ACPI_DEBUG
370*4882a593Smuzhiyun	bool "Debug Statements"
371*4882a593Smuzhiyun	help
372*4882a593Smuzhiyun	  The ACPI subsystem can produce debug output.  Saying Y enables this
373*4882a593Smuzhiyun	  output and increases the kernel size by around 50K.
374*4882a593Smuzhiyun
375*4882a593Smuzhiyun	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
376*4882a593Smuzhiyun	  parameters documented in Documentation/firmware-guide/acpi/debug.rst and
377*4882a593Smuzhiyun	  Documentation/admin-guide/kernel-parameters.rst to control the type and
378*4882a593Smuzhiyun	  amount of debug output.
379*4882a593Smuzhiyun
380*4882a593Smuzhiyunconfig ACPI_PCI_SLOT
381*4882a593Smuzhiyun	bool "PCI slot detection driver"
382*4882a593Smuzhiyun	depends on SYSFS && PCI
383*4882a593Smuzhiyun	help
384*4882a593Smuzhiyun	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
385*4882a593Smuzhiyun	  slots in the system.  This can help correlate PCI bus addresses,
386*4882a593Smuzhiyun	  i.e., segment/bus/device/function tuples, with physical slots in
387*4882a593Smuzhiyun	  the system.  If you are unsure, say N.
388*4882a593Smuzhiyun
389*4882a593Smuzhiyunconfig ACPI_CONTAINER
390*4882a593Smuzhiyun	bool "Container and Module Devices"
391*4882a593Smuzhiyun	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
392*4882a593Smuzhiyun	help
393*4882a593Smuzhiyun	  This driver supports ACPI Container and Module devices (IDs
394*4882a593Smuzhiyun	  ACPI0004, PNP0A05, and PNP0A06).
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun	  This helps support hotplug of nodes, CPUs, and memory.
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
399*4882a593Smuzhiyun	  the module will be called container.
400*4882a593Smuzhiyun
401*4882a593Smuzhiyunconfig ACPI_HOTPLUG_MEMORY
402*4882a593Smuzhiyun	bool "Memory Hotplug"
403*4882a593Smuzhiyun	depends on MEMORY_HOTPLUG
404*4882a593Smuzhiyun	help
405*4882a593Smuzhiyun	  This driver supports ACPI memory hotplug.  The driver
406*4882a593Smuzhiyun	  fields notifications on ACPI memory devices (PNP0C80),
407*4882a593Smuzhiyun	  which represent memory ranges that may be onlined or
408*4882a593Smuzhiyun	  offlined during runtime.
409*4882a593Smuzhiyun
410*4882a593Smuzhiyun	  If your hardware and firmware do not support adding or
411*4882a593Smuzhiyun	  removing memory devices at runtime, you need not enable
412*4882a593Smuzhiyun	  this driver.
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
415*4882a593Smuzhiyun	  the module will be called acpi_memhotplug.
416*4882a593Smuzhiyun
417*4882a593Smuzhiyunconfig ACPI_HOTPLUG_IOAPIC
418*4882a593Smuzhiyun	bool
419*4882a593Smuzhiyun	depends on PCI
420*4882a593Smuzhiyun	depends on X86_IO_APIC
421*4882a593Smuzhiyun	default y
422*4882a593Smuzhiyun
423*4882a593Smuzhiyunconfig ACPI_SBS
424*4882a593Smuzhiyun	tristate "Smart Battery System"
425*4882a593Smuzhiyun	depends on X86
426*4882a593Smuzhiyun	select POWER_SUPPLY
427*4882a593Smuzhiyun	help
428*4882a593Smuzhiyun	  This driver supports the Smart Battery System, another
429*4882a593Smuzhiyun	  type of access to battery information, found on some laptops.
430*4882a593Smuzhiyun
431*4882a593Smuzhiyun	  To compile this driver as a module, choose M here:
432*4882a593Smuzhiyun	  the modules will be called sbs and sbshc.
433*4882a593Smuzhiyun
434*4882a593Smuzhiyunconfig ACPI_HED
435*4882a593Smuzhiyun	tristate "Hardware Error Device"
436*4882a593Smuzhiyun	help
437*4882a593Smuzhiyun	  This driver supports the Hardware Error Device (PNP0C33),
438*4882a593Smuzhiyun	  which is used to report some hardware errors notified via
439*4882a593Smuzhiyun	  SCI, mainly the corrected errors.
440*4882a593Smuzhiyun
441*4882a593Smuzhiyunconfig ACPI_CUSTOM_METHOD
442*4882a593Smuzhiyun	tristate "Allow ACPI methods to be inserted/replaced at run time"
443*4882a593Smuzhiyun	depends on DEBUG_FS
444*4882a593Smuzhiyun	help
445*4882a593Smuzhiyun	  This debug facility allows ACPI AML methods to be inserted and/or
446*4882a593Smuzhiyun	  replaced without rebooting the system. For details refer to:
447*4882a593Smuzhiyun	  Documentation/firmware-guide/acpi/method-customizing.rst.
448*4882a593Smuzhiyun
449*4882a593Smuzhiyun	  NOTE: This option is security sensitive, because it allows arbitrary
450*4882a593Smuzhiyun	  kernel memory to be written to by root (uid=0) users, allowing them
451*4882a593Smuzhiyun	  to bypass certain security measures (e.g. if root is not allowed to
452*4882a593Smuzhiyun	  load additional kernel modules after boot, this feature may be used
453*4882a593Smuzhiyun	  to override that restriction).
454*4882a593Smuzhiyun
455*4882a593Smuzhiyunconfig ACPI_BGRT
456*4882a593Smuzhiyun	bool "Boottime Graphics Resource Table support"
457*4882a593Smuzhiyun	depends on EFI && (X86 || ARM64)
458*4882a593Smuzhiyun	help
459*4882a593Smuzhiyun	  This driver adds support for exposing the ACPI Boottime Graphics
460*4882a593Smuzhiyun	  Resource Table, which allows the operating system to obtain
461*4882a593Smuzhiyun	  data from the firmware boot splash. It will appear under
462*4882a593Smuzhiyun	  /sys/firmware/acpi/bgrt/ .
463*4882a593Smuzhiyun
464*4882a593Smuzhiyunconfig ACPI_REDUCED_HARDWARE_ONLY
465*4882a593Smuzhiyun	bool "Hardware-reduced ACPI support only" if EXPERT
466*4882a593Smuzhiyun	def_bool n
467*4882a593Smuzhiyun	help
468*4882a593Smuzhiyun	  This config item changes the way the ACPI code is built.  When this
469*4882a593Smuzhiyun	  option is selected, the kernel will use a specialized version of
470*4882a593Smuzhiyun	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
471*4882a593Smuzhiyun	  resulting kernel will be smaller but it will also be restricted to
472*4882a593Smuzhiyun	  running in ACPI reduced hardware mode ONLY.
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun	  If you are unsure what to do, do not enable this option.
475*4882a593Smuzhiyun
476*4882a593Smuzhiyunsource "drivers/acpi/nfit/Kconfig"
477*4882a593Smuzhiyunsource "drivers/acpi/numa/Kconfig"
478*4882a593Smuzhiyunsource "drivers/acpi/apei/Kconfig"
479*4882a593Smuzhiyunsource "drivers/acpi/dptf/Kconfig"
480*4882a593Smuzhiyun
481*4882a593Smuzhiyunconfig ACPI_WATCHDOG
482*4882a593Smuzhiyun	bool
483*4882a593Smuzhiyun
484*4882a593Smuzhiyunconfig ACPI_EXTLOG
485*4882a593Smuzhiyun	tristate "Extended Error Log support"
486*4882a593Smuzhiyun	depends on X86_MCE && X86_LOCAL_APIC && EDAC
487*4882a593Smuzhiyun	select UEFI_CPER
488*4882a593Smuzhiyun	help
489*4882a593Smuzhiyun	  Certain usages such as Predictive Failure Analysis (PFA) require
490*4882a593Smuzhiyun	  more information about the error than what can be described in
491*4882a593Smuzhiyun	  processor machine check banks. Most server processors log
492*4882a593Smuzhiyun	  additional information about the error in processor uncore
493*4882a593Smuzhiyun	  registers. Since the addresses and layout of these registers vary
494*4882a593Smuzhiyun	  widely from one processor to another, system software cannot
495*4882a593Smuzhiyun	  readily make use of them. To complicate matters further, some of
496*4882a593Smuzhiyun	  the additional error information cannot be constructed without
497*4882a593Smuzhiyun	  detailed knowledge about platform topology.
498*4882a593Smuzhiyun
499*4882a593Smuzhiyun	  Enhanced MCA Logging allows firmware to provide additional error
500*4882a593Smuzhiyun	  information to system software, synchronous with MCE or CMCI. This
501*4882a593Smuzhiyun	  driver adds support for that functionality with corresponding
502*4882a593Smuzhiyun	  tracepoint which carries that information to userspace.
503*4882a593Smuzhiyun
504*4882a593Smuzhiyunconfig ACPI_ADXL
505*4882a593Smuzhiyun	bool
506*4882a593Smuzhiyun
507*4882a593Smuzhiyunconfig ACPI_CONFIGFS
508*4882a593Smuzhiyun	tristate "ACPI configfs support"
509*4882a593Smuzhiyun	select CONFIGFS_FS
510*4882a593Smuzhiyun	help
511*4882a593Smuzhiyun	  Select this option to enable support for ACPI configuration from
512*4882a593Smuzhiyun	  userspace. The configurable ACPI groups will be visible under
513*4882a593Smuzhiyun	  /config/acpi, assuming configfs is mounted under /config.
514*4882a593Smuzhiyun
515*4882a593Smuzhiyunif ARM64
516*4882a593Smuzhiyunsource "drivers/acpi/arm64/Kconfig"
517*4882a593Smuzhiyun
518*4882a593Smuzhiyunconfig ACPI_PPTT
519*4882a593Smuzhiyun	bool
520*4882a593Smuzhiyunendif
521*4882a593Smuzhiyun
522*4882a593Smuzhiyunsource "drivers/acpi/pmic/Kconfig"
523*4882a593Smuzhiyun
524*4882a593Smuzhiyunendif	# ACPI
525*4882a593Smuzhiyun
526*4882a593Smuzhiyunconfig X86_PM_TIMER
527*4882a593Smuzhiyun	bool "Power Management Timer Support" if EXPERT
528*4882a593Smuzhiyun	depends on X86 && (ACPI || JAILHOUSE_GUEST)
529*4882a593Smuzhiyun	default y
530*4882a593Smuzhiyun	help
531*4882a593Smuzhiyun	  The Power Management Timer is available on all ACPI-capable,
532*4882a593Smuzhiyun	  in most cases even if ACPI is unusable or blacklisted.
533*4882a593Smuzhiyun
534*4882a593Smuzhiyun	  This timing source is not affected by power management features
535*4882a593Smuzhiyun	  like aggressive processor idling, throttling, frequency and/or
536*4882a593Smuzhiyun	  voltage scaling, unlike the commonly used Time Stamp Counter
537*4882a593Smuzhiyun	  (TSC) timing source.
538*4882a593Smuzhiyun
539*4882a593Smuzhiyun	  You should nearly always say Y here because many modern
540*4882a593Smuzhiyun	  systems require this timer.
541