xref: /linux/drivers/acpi/Kconfig (revision 61c0b2ae734fc9d33ede9cbf7d3cad67a7b0ce28)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# ACPI Configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
6f5d707edSArnd Bergmannconfig ARCH_SUPPORTS_ACPI
7f5d707edSArnd Bergmann	bool
8f5d707edSArnd Bergmann
93f2c48c9SJan Engelhardtmenuconfig ACPI
10355ee5ebSFrans Pop	bool "ACPI (Advanced Configuration and Power Interface) Support"
112c870e61SArnd Bergmann	depends on ARCH_SUPPORTS_ACPI
12*6ab3532bSRafael J. Wysocki	select AUXILIARY_BUS
13243b66e7SLen Brown	select PNP
142e61069bSSinan Kaya	select NLS
1504662bacSRandy Dunlap	select CRC32
16a103f466SDave Jiang	select FIRMWARE_TABLE
172c870e61SArnd Bergmann	default y if X86
181c48aa36SBjorn Helgaas	help
191da177e4SLinus Torvalds	  Advanced Configuration and Power Interface (ACPI) support for
201c48aa36SBjorn Helgaas	  Linux requires an ACPI-compliant platform (hardware/firmware),
211da177e4SLinus Torvalds	  and assumes the presence of OS-directed configuration and power
221da177e4SLinus Torvalds	  management (OSPM) software.  This option will enlarge your
231da177e4SLinus Torvalds	  kernel by about 70K.
241da177e4SLinus Torvalds
251da177e4SLinus Torvalds	  Linux ACPI provides a robust functional replacement for several
261da177e4SLinus Torvalds	  legacy configuration and power management interfaces, including
271da177e4SLinus Torvalds	  the Plug-and-Play BIOS specification (PnP BIOS), the
281da177e4SLinus Torvalds	  MultiProcessor Specification (MPS), and the Advanced Power
291da177e4SLinus Torvalds	  Management (APM) specification.  If both ACPI and APM support
301c48aa36SBjorn Helgaas	  are configured, ACPI is used.
311da177e4SLinus Torvalds
321da177e4SLinus Torvalds	  Linux support for ACPI is based on Intel Corporation's ACPI
331c48aa36SBjorn Helgaas	  Component Architecture (ACPI CA).  For more information on the
341c48aa36SBjorn Helgaas	  ACPI CA, see:
354ce77966SAlexander A. Klimov	  <https://acpica.org/>
361da177e4SLinus Torvalds
37c7f5220dSHanjun Guo	  ACPI is an open industry specification originally co-developed by
38c7f5220dSHanjun Guo	  Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
39c7f5220dSHanjun Guo	  it is developed by the ACPI Specification Working Group (ASWG) under
40c7f5220dSHanjun Guo	  the UEFI Forum and any UEFI member can join the ASWG and contribute
41c7f5220dSHanjun Guo	  to the ACPI specification.
421c48aa36SBjorn Helgaas	  The specification is available at:
430585c1c0STiezhu Yang	  <https://uefi.org/specifications>
441da177e4SLinus Torvalds
453e11c3ceSLen Brownif ACPI
463e11c3ceSLen Brown
478a1664beSGraeme Gregoryconfig ACPI_LEGACY_TABLES_LOOKUP
488a1664beSGraeme Gregory	bool
498a1664beSGraeme Gregory
5046ba51eaSHanjun Guoconfig ARCH_MIGHT_HAVE_ACPI_PDC
5146ba51eaSHanjun Guo	bool
5246ba51eaSHanjun Guo
53d8f4f161SLorenzo Pieralisiconfig ACPI_GENERIC_GSI
54d8f4f161SLorenzo Pieralisi	bool
55d8f4f161SLorenzo Pieralisi
566e0a0ea1SGraeme Gregoryconfig ACPI_SYSTEM_POWER_STATES_SUPPORT
576e0a0ea1SGraeme Gregory	bool
586e0a0ea1SGraeme Gregory
59d0562674SSuthikulpanit, Suraveeconfig ACPI_CCA_REQUIRED
60d0562674SSuthikulpanit, Suravee	bool
61d0562674SSuthikulpanit, Suravee
62f64bd790SDan Williamsconfig ACPI_TABLE_LIB
63f64bd790SDan Williams	bool
64f64bd790SDan Williams
65f4750798SRafael J. Wysockiconfig ACPI_THERMAL_LIB
66f4750798SRafael J. Wysocki       depends on THERMAL
67f4750798SRafael J. Wysocki       bool
68f4750798SRafael J. Wysocki
694d946f79SLv Zhengconfig ACPI_DEBUGGER
708cfb0cdfSLv Zheng	bool "AML debugger interface"
714d946f79SLv Zheng	select ACPI_DEBUG
724d946f79SLv Zheng	help
73836d0830SLv Zheng	  Enable in-kernel debugging of AML facilities: statistics,
74836d0830SLv Zheng	  internal object dump, single step control method execution.
754d946f79SLv Zheng	  This is still under development, currently enabling this only
764d946f79SLv Zheng	  results in the compilation of the ACPICA debugger files.
774d946f79SLv Zheng
78836d0830SLv Zhengif ACPI_DEBUGGER
79836d0830SLv Zheng
80836d0830SLv Zhengconfig ACPI_DEBUGGER_USER
81c117dfffSMasanari Iida	tristate "Userspace debugger accessibility"
82836d0830SLv Zheng	depends on DEBUG_FS
83836d0830SLv Zheng	help
84836d0830SLv Zheng	  Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
85836d0830SLv Zheng	  to access the debugger functionalities.
86836d0830SLv Zheng
87836d0830SLv Zhengendif
88836d0830SLv Zheng
89ad1696f6SAleksey Makarovconfig ACPI_SPCR_TABLE
900231d000SPrarit Bhargava	bool "ACPI Serial Port Console Redirection Support"
910231d000SPrarit Bhargava	default y if X86
920231d000SPrarit Bhargava	help
930231d000SPrarit Bhargava	  Enable support for Serial Port Console Redirection (SPCR) Table.
940231d000SPrarit Bhargava	  This table provides information about the configuration of the
950231d000SPrarit Bhargava	  earlycon console.
96ad1696f6SAleksey Makarov
97d1eb86e5SZhang Ruiconfig ACPI_FPDT
98d1eb86e5SZhang Rui	bool "ACPI Firmware Performance Data Table (FPDT) support"
99c2465f95SJeremy Linton	depends on X86_64 || ARM64
100d1eb86e5SZhang Rui	help
101d1eb86e5SZhang Rui	  Enable support for the Firmware Performance Data Table (FPDT).
102d1eb86e5SZhang Rui	  This table provides information on the timing of the system
103d1eb86e5SZhang Rui	  boot, S3 suspend and S3 resume firmware code paths.
104d1eb86e5SZhang Rui
105eeb2d80dSSrinivas Pandruvadaconfig ACPI_LPIT
106eeb2d80dSSrinivas Pandruvada	bool
107eeb2d80dSSrinivas Pandruvada	depends on X86_64
108eeb2d80dSSrinivas Pandruvada	default y
109eeb2d80dSSrinivas Pandruvada
110673d5b43SLen Brownconfig ACPI_SLEEP
111673d5b43SLen Brown	bool
1125d1e072bSRafael J. Wysocki	depends on SUSPEND || HIBERNATION
1136e0a0ea1SGraeme Gregory	depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
114673d5b43SLen Brown	default y
115673d5b43SLen Brown
11618d78b64SRafael J. Wysockiconfig ACPI_REV_OVERRIDE_POSSIBLE
1179165dabbSMasanari Iida	bool "Allow supported ACPI revision to be overridden"
11818d78b64SRafael J. Wysocki	depends on X86
11918d78b64SRafael J. Wysocki	default y
12018d78b64SRafael J. Wysocki	help
12118d78b64SRafael J. Wysocki	  The platform firmware on some systems expects Linux to return "5" as
12218d78b64SRafael J. Wysocki	  the supported ACPI revision which makes it expose system configuration
12318d78b64SRafael J. Wysocki	  information in a special way.
12418d78b64SRafael J. Wysocki
12518d78b64SRafael J. Wysocki	  For example, based on what ACPI exports as the supported revision,
12618d78b64SRafael J. Wysocki	  Dell XPS 13 (2015) configures its audio device to either work in HDA
12718d78b64SRafael J. Wysocki	  mode or in I2S mode, where the former is supposed to be used on Linux
12818d78b64SRafael J. Wysocki	  until the latter is fully supported (in the kernel as well as in user
12918d78b64SRafael J. Wysocki	  space).
13018d78b64SRafael J. Wysocki
13118d78b64SRafael J. Wysocki	  This option enables a DMI-based quirk for the above Dell machine (so
13218d78b64SRafael J. Wysocki	  that HDA audio is exposed by the platform firmware to the kernel) and
13318d78b64SRafael J. Wysocki	  makes it possible to force the kernel to return "5" as the supported
13418d78b64SRafael J. Wysocki	  ACPI revision via the "acpi_rev_override" command line switch.
13518d78b64SRafael J. Wysocki
136a6021aa2SArnd Bergmannconfig ACPI_EC
137a6021aa2SArnd Bergmann	bool "Embedded Controller"
138a6021aa2SArnd Bergmann	depends on HAS_IOPORT
1390674188fSHuacai Chen	default X86 || LOONGARCH
140a6021aa2SArnd Bergmann	help
141a6021aa2SArnd Bergmann	  This driver handles communication with the microcontroller
1420674188fSHuacai Chen	  on many x86/LoongArch laptops and other machines.
143a6021aa2SArnd Bergmann
1441195a098SThomas Renningerconfig ACPI_EC_DEBUGFS
1451195a098SThomas Renninger	tristate "EC read/write access through /sys/kernel/debug/ec"
146a6021aa2SArnd Bergmann	depends on ACPI_EC
1471195a098SThomas Renninger	help
1481195a098SThomas Renninger	  Say N to disable Embedded Controller /sys/kernel/debug interface
1491195a098SThomas Renninger
150500de3ddSThomas Renninger	  Be aware that using this interface can confuse your Embedded
151500de3ddSThomas Renninger	  Controller in a way that a normal reboot is not enough. You then
15225cb1bfdSAndrea Gelmini	  have to power off your system, and remove the laptop battery for
153500de3ddSThomas Renninger	  some seconds.
1541195a098SThomas Renninger	  An Embedded Controller typically is available on laptops and reads
1551195a098SThomas Renninger	  sensor values like battery state and temperature.
156500de3ddSThomas Renninger	  The kernel accesses the EC through ACPI parsed code provided by BIOS
157500de3ddSThomas Renninger	  tables. This option allows to access the EC directly without ACPI
158500de3ddSThomas Renninger	  code being involved.
1591195a098SThomas Renninger	  Thus this option is a debug option that helps to write ACPI drivers
1601195a098SThomas Renninger	  and can be used to identify ACPI code or EC firmware bugs.
1611195a098SThomas Renninger
1621da177e4SLinus Torvaldsconfig ACPI_AC
1631da177e4SLinus Torvalds	tristate "AC Adapter"
1641b3d4c3bSZhang Rui	select POWER_SUPPLY
16507fefe4cSLen Brown	default y
1661da177e4SLinus Torvalds	help
1671c48aa36SBjorn Helgaas	  This driver supports the AC Adapter object, which indicates
1681c48aa36SBjorn Helgaas	  whether a system is on AC or not.  If you have a system that can
16907fefe4cSLen Brown	  switch between A/C and battery, say Y.
1701da177e4SLinus Torvalds
1711c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1721c48aa36SBjorn Helgaas	  the module will be called ac.
1731c48aa36SBjorn Helgaas
1741da177e4SLinus Torvaldsconfig ACPI_BATTERY
1751da177e4SLinus Torvalds	tristate "Battery"
1761b3d4c3bSZhang Rui	select POWER_SUPPLY
17707fefe4cSLen Brown	default y
1781da177e4SLinus Torvalds	help
1791da177e4SLinus Torvalds	  This driver adds support for battery information through
1801da177e4SLinus Torvalds	  /proc/acpi/battery. If you have a mobile system with a battery,
1811da177e4SLinus Torvalds	  say Y.
1821da177e4SLinus Torvalds
1831c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1841c48aa36SBjorn Helgaas	  the module will be called battery.
1851c48aa36SBjorn Helgaas
1861da177e4SLinus Torvaldsconfig ACPI_BUTTON
1871da177e4SLinus Torvalds	tristate "Button"
188c0968f0eSDmitry Torokhov	depends on INPUT
18907fefe4cSLen Brown	default y
1901da177e4SLinus Torvalds	help
1911c48aa36SBjorn Helgaas	  This driver handles events on the power, sleep, and lid buttons.
1927d13f94cSKrzysztof Mazur	  A daemon reads events from input devices or via netlink and
1937d13f94cSKrzysztof Mazur	  performs user-defined actions such as shutting down the system.
1947d13f94cSKrzysztof Mazur	  This is necessary for software-controlled poweroff.
1951c48aa36SBjorn Helgaas
1961c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1971c48aa36SBjorn Helgaas	  the module will be called button.
1981da177e4SLinus Torvalds
199a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON
200a1b93e89SJosh Triplett	tristate "Tiny Power Button Driver"
201a1b93e89SJosh Triplett	depends on !ACPI_BUTTON
202a1b93e89SJosh Triplett	help
203a1b93e89SJosh Triplett	  This driver provides a tiny alternative to the ACPI Button driver.
204a1b93e89SJosh Triplett	  The tiny power button driver only handles the power button. Rather
205a1b93e89SJosh Triplett	  than notifying userspace via the input layer or a netlink event, this
206a1b93e89SJosh Triplett	  driver directly signals the init process to shut down.
207a1b93e89SJosh Triplett
208a1b93e89SJosh Triplett	  This driver is particularly suitable for cloud and VM environments,
209a1b93e89SJosh Triplett	  which use a simulated power button to initiate a controlled poweroff,
210a1b93e89SJosh Triplett	  but which may not want to run a separate userspace daemon to process
211a1b93e89SJosh Triplett	  input events.
212a1b93e89SJosh Triplett
213a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON_SIGNAL
214a1b93e89SJosh Triplett	int "Tiny Power Button Signal"
215a1b93e89SJosh Triplett	depends on ACPI_TINY_POWER_BUTTON
216a1b93e89SJosh Triplett	default 38
217a1b93e89SJosh Triplett	help
218a1b93e89SJosh Triplett	  Default signal to send to init in response to the power button.
219a1b93e89SJosh Triplett
220a1b93e89SJosh Triplett	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
221a1b93e89SJosh Triplett	  (SIGINT) to simulate Ctrl+Alt+Del.
222a1b93e89SJosh Triplett
2231da177e4SLinus Torvaldsconfig ACPI_VIDEO
2241da177e4SLinus Torvalds	tristate "Video"
225038275d2SRiwen Lu	depends on BACKLIGHT_CLASS_DEVICE
22603e2bf26SAndreas Herrmann	depends on INPUT
227fe7aebb4SHans de Goede	depends on ACPI_WMI || !X86
22863c4ec90SZhang Rui	select THERMAL
2291da177e4SLinus Torvalds	help
2301c48aa36SBjorn Helgaas	  This driver implements the ACPI Extensions For Display Adapters
2311da177e4SLinus Torvalds	  for integrated graphics devices on motherboard, as specified in
2321c48aa36SBjorn Helgaas	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
2331c48aa36SBjorn Helgaas	  such as defining the video POST device, retrieving EDID information,
2341c48aa36SBjorn Helgaas	  and setting up a video output.
2351c48aa36SBjorn Helgaas
2361c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2371c48aa36SBjorn Helgaas	  the module will be called video.
2381da177e4SLinus Torvalds
2391da177e4SLinus Torvaldsconfig ACPI_FAN
2401da177e4SLinus Torvalds	tristate "Fan"
241d8054749SZhang Rui	depends on THERMAL
24207fefe4cSLen Brown	default y
2431da177e4SLinus Torvalds	help
2441c48aa36SBjorn Helgaas	  This driver supports ACPI fan devices, allowing user-mode
2451da177e4SLinus Torvalds	  applications to perform basic fan control (on, off, status).
2461da177e4SLinus Torvalds
2471c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2481c48aa36SBjorn Helgaas	  the module will be called fan.
2491c48aa36SBjorn Helgaas
25095c513ecSRafael J. Wysockiconfig ACPI_TAD
25195c513ecSRafael J. Wysocki	tristate "ACPI Time and Alarm (TAD) Device Support"
25295c513ecSRafael J. Wysocki	depends on SYSFS && PM_SLEEP
25395c513ecSRafael J. Wysocki	help
25495c513ecSRafael J. Wysocki	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
25595c513ecSRafael J. Wysocki	  Time Clock (RTC).  Its wake timers allow the system to transition from
25695c513ecSRafael J. Wysocki	  the S3 (or optionally S4/S5) state to S0 state after a time period
25795c513ecSRafael J. Wysocki	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
25895c513ecSRafael J. Wysocki	  scale of flexibility in the wake timers.  The time capabilities of the
25995c513ecSRafael J. Wysocki	  TAD maintain the time of day information across platform power
26095c513ecSRafael J. Wysocki	  transitions, and keep track of time even when the platform is turned
26195c513ecSRafael J. Wysocki	  off.
26295c513ecSRafael J. Wysocki
263c8f7a62cSLen Brownconfig ACPI_DOCK
264898b054fSShaohua Li	bool "Dock"
265c8f7a62cSLen Brown	help
2661c48aa36SBjorn Helgaas	  This driver supports ACPI-controlled docking stations and removable
2671c48aa36SBjorn Helgaas	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
26801b57e73SKristen Carlson Accardi
269239708a3SAshwin Chauguleconfig ACPI_CPU_FREQ_PSS
270239708a3SAshwin Chaugule	bool
271239708a3SAshwin Chaugule
27235ae7133SSudeep Hollaconfig ACPI_PROCESSOR_CSTATE
27335ae7133SSudeep Holla	def_bool y
274239ed06dSRafael J. Wysocki	depends on ACPI_PROCESSOR
275cf8e8658SArd Biesheuvel	depends on X86
27635ae7133SSudeep Holla
2775f05586cSAshwin Chauguleconfig ACPI_PROCESSOR_IDLE
2785f05586cSAshwin Chaugule	bool
2795f05586cSAshwin Chaugule	select CPU_IDLE
2805f05586cSAshwin Chaugule
281935c760eSTomasz Nowickiconfig ACPI_MCFG
282935c760eSTomasz Nowicki	bool
283935c760eSTomasz Nowicki
284337aadffSAshwin Chauguleconfig ACPI_CPPC_LIB
285337aadffSAshwin Chaugule	bool
286337aadffSAshwin Chaugule	depends on ACPI_PROCESSOR
287337aadffSAshwin Chaugule	select MAILBOX
288337aadffSAshwin Chaugule	select PCC
289337aadffSAshwin Chaugule	help
290337aadffSAshwin Chaugule	  If this option is enabled, this file implements common functionality
291337aadffSAshwin Chaugule	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
292337aadffSAshwin Chaugule	  routines implemented are meant to be used by other
293337aadffSAshwin Chaugule	  drivers to control CPU performance using CPPC semantics.
294337aadffSAshwin Chaugule	  If your platform does not support CPPC in firmware,
295337aadffSAshwin Chaugule	  leave this option disabled.
296337aadffSAshwin Chaugule
2971da177e4SLinus Torvaldsconfig ACPI_PROCESSOR
2981da177e4SLinus Torvalds	tristate "Processor"
299359df7c5SSunil V L	depends on X86 || ARM64 || LOONGARCH || RISCV
3008fc85c6aSSudeep Holla	select ACPI_PROCESSOR_IDLE
301cf8e8658SArd Biesheuvel	select ACPI_CPU_FREQ_PSS if X86 || LOONGARCH
3027fdc74daSRiwen Lu	select THERMAL
30307fefe4cSLen Brown	default y
3041da177e4SLinus Torvalds	help
305239708a3SAshwin Chaugule	  This driver adds support for the ACPI Processor package. It is required
306239708a3SAshwin Chaugule	  by several flavors of cpufreq performance-state, thermal, throttling and
307239708a3SAshwin Chaugule	  idle drivers.
3081c48aa36SBjorn Helgaas
3091c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3101c48aa36SBjorn Helgaas	  the module will be called processor.
3114b88e330SLv Zheng
312e92b297cSZhao Yakuiconfig ACPI_IPMI
313e92b297cSZhao Yakui	tristate "IPMI"
31450121bebSSinan Kaya	depends on IPMI_HANDLER
315e92b297cSZhao Yakui	help
316e92b297cSZhao Yakui	  This driver enables the ACPI to access the BMC controller. And it
317e92b297cSZhao Yakui	  uses the IPMI request/response message to communicate with BMC
318a8ab8ef4STom Rix	  controller, which can be found on the server.
319e92b297cSZhao Yakui
320e92b297cSZhao Yakui	  To compile this driver as a module, choose M here:
321e92b297cSZhao Yakui	  the module will be called as acpi_ipmi.
3221da177e4SLinus Torvalds
3231da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_CPU
324cbfc1baeSAdrian Bunk	bool
325f756f28bSKees Cook	depends on ACPI_PROCESSOR && HOTPLUG_CPU
3261da177e4SLinus Torvalds	select ACPI_CONTAINER
3271da177e4SLinus Torvalds
3288e0af514SShaohua Liconfig ACPI_PROCESSOR_AGGREGATOR
3298e0af514SShaohua Li	tristate "Processor Aggregator"
3308e0af514SShaohua Li	depends on ACPI_PROCESSOR
331d91f79ebSLen Brown	depends on X86
3328e0af514SShaohua Li	help
3338e0af514SShaohua Li	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
334c4c4e2a5SJiri Slaby	  specific processor configuration and control that applies to all
3358e0af514SShaohua Li	  processors in the platform. Currently only logical processor idling
3368e0af514SShaohua Li	  is defined, which is to reduce power consumption. This driver
337c4c4e2a5SJiri Slaby	  supports the new device.
3388e0af514SShaohua Li
3391da177e4SLinus Torvaldsconfig ACPI_THERMAL
3401da177e4SLinus Torvalds	tristate "Thermal Zone"
3411da177e4SLinus Torvalds	depends on ACPI_PROCESSOR
3423f655ef8SZhang Rui	select THERMAL
343f4750798SRafael J. Wysocki	select ACPI_THERMAL_LIB
34407fefe4cSLen Brown	default y
3451da177e4SLinus Torvalds	help
3461c48aa36SBjorn Helgaas	  This driver supports ACPI thermal zones.  Most mobile and
3471da177e4SLinus Torvalds	  some desktop systems support ACPI thermal zones.  It is HIGHLY
3481da177e4SLinus Torvalds	  recommended that this option be enabled, as your processor(s)
3491da177e4SLinus Torvalds	  may be damaged without it.
3501da177e4SLinus Torvalds
3511c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3521c48aa36SBjorn Helgaas	  the module will be called thermal.
3531c48aa36SBjorn Helgaas
354a2ff95e0SMark Pearsonconfig ACPI_PLATFORM_PROFILE
35521f05a43SMaximilian Luz	tristate
356a2ff95e0SMark Pearson
3577ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT_FILE
3587ce9573eSRandy Dunlap	string "Custom DSDT Table file to include"
3597ce9573eSRandy Dunlap	default ""
3601da177e4SLinus Torvalds	depends on !STANDALONE
3611da177e4SLinus Torvalds	help
362d89e9d6bSLen Brown	  This option supports a custom DSDT by linking it into the kernel.
363d89e9d6bSLen Brown
364c30fe7f7SUwe Zeisberger	  Enter the full path name to the file which includes the AmlCode
36582e4eb4eSWang Dongsheng	  or dsdt_aml_code declaration.
3661da177e4SLinus Torvalds
3677ce9573eSRandy Dunlap	  If unsure, don't enter a file name.
3687ce9573eSRandy Dunlap
3697ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT
3707ce9573eSRandy Dunlap	bool
3717ce9573eSRandy Dunlap	default ACPI_CUSTOM_DSDT_FILE != ""
3727ce9573eSRandy Dunlap
37391dda51aSAleksey Makarovconfig ARCH_HAS_ACPI_TABLE_UPGRADE
37491dda51aSAleksey Makarov	def_bool n
37591dda51aSAleksey Makarov
3765d881327SLv Zhengconfig ACPI_TABLE_UPGRADE
3775d881327SLv Zheng	bool "Allow upgrading ACPI tables via initrd"
37891dda51aSAleksey Makarov	depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
3795d881327SLv Zheng	default y
38053aac44cSThomas Renninger	help
3815d881327SLv Zheng	  This option provides functionality to upgrade arbitrary ACPI tables
38253aac44cSThomas Renninger	  via initrd. No functional change if no ACPI tables are passed via
38353aac44cSThomas Renninger	  initrd, therefore it's safe to say Y.
384cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
38553aac44cSThomas Renninger
38698a455d9SShunyong Yangconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
38798a455d9SShunyong Yang	bool "Override ACPI tables from built-in initrd"
38898a455d9SShunyong Yang	depends on ACPI_TABLE_UPGRADE
389d2cbbf1fSRobert Richter	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
39098a455d9SShunyong Yang	help
39198a455d9SShunyong Yang	  This option provides functionality to override arbitrary ACPI tables
39298a455d9SShunyong Yang	  from built-in uncompressed initrd.
39398a455d9SShunyong Yang
394cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
39598a455d9SShunyong Yang
3961da177e4SLinus Torvaldsconfig ACPI_DEBUG
3971da177e4SLinus Torvalds	bool "Debug Statements"
398814eca10SMario Limonciello	default y
3991da177e4SLinus Torvalds	help
400a0d84a92SBjorn Helgaas	  The ACPI subsystem can produce debug output.  Saying Y enables this
401a0d84a92SBjorn Helgaas	  output and increases the kernel size by around 50K.
402a0d84a92SBjorn Helgaas
403a0d84a92SBjorn Helgaas	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
404cb1aaebeSMauro Carvalho Chehab	  parameters documented in Documentation/firmware-guide/acpi/debug.rst and
4058c27ceffSMauro Carvalho Chehab	  Documentation/admin-guide/kernel-parameters.rst to control the type and
406a0d84a92SBjorn Helgaas	  amount of debug output.
4071da177e4SLinus Torvalds
4088344b568SAlex Chiangconfig ACPI_PCI_SLOT
409ab1a2e03SJiang Liu	bool "PCI slot detection driver"
4105c6a1177SSinan Kaya	depends on SYSFS && PCI
4118344b568SAlex Chiang	help
4121c48aa36SBjorn Helgaas	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
4131c48aa36SBjorn Helgaas	  slots in the system.  This can help correlate PCI bus addresses,
4141c48aa36SBjorn Helgaas	  i.e., segment/bus/device/function tuples, with physical slots in
4151c48aa36SBjorn Helgaas	  the system.  If you are unsure, say N.
4161c48aa36SBjorn Helgaas
4171da177e4SLinus Torvaldsconfig ACPI_CONTAINER
41806991c28SLinus Torvalds	bool "Container and Module Devices"
419ea6a4581SPaul Bolle	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
4201c48aa36SBjorn Helgaas	help
4211c48aa36SBjorn Helgaas	  This driver supports ACPI Container and Module devices (IDs
4221c48aa36SBjorn Helgaas	  ACPI0004, PNP0A05, and PNP0A06).
42345b1b196SKeiichiro Tokunaga
4241c48aa36SBjorn Helgaas	  This helps support hotplug of nodes, CPUs, and memory.
4251c48aa36SBjorn Helgaas
4261da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_MEMORY
4270a347644SRafael J. Wysocki	bool "Memory Hotplug"
428bc02af93SYasunori Goto	depends on MEMORY_HOTPLUG
4291da177e4SLinus Torvalds	help
4301c48aa36SBjorn Helgaas	  This driver supports ACPI memory hotplug.  The driver
4311c48aa36SBjorn Helgaas	  fields notifications on ACPI memory devices (PNP0C80),
4321c48aa36SBjorn Helgaas	  which represent memory ranges that may be onlined or
4331c48aa36SBjorn Helgaas	  offlined during runtime.
4341da177e4SLinus Torvalds
4351c48aa36SBjorn Helgaas	  If your hardware and firmware do not support adding or
4361c48aa36SBjorn Helgaas	  removing memory devices at runtime, you need not enable
4371c48aa36SBjorn Helgaas	  this driver.
4381da177e4SLinus Torvalds
439c183619bSJiang Liuconfig ACPI_HOTPLUG_IOAPIC
440c183619bSJiang Liu	bool
441c183619bSJiang Liu	depends on PCI
442c183619bSJiang Liu	depends on X86_IO_APIC
443c183619bSJiang Liu	default y
444c183619bSJiang Liu
4453f86b832SRich Townsendconfig ACPI_SBS
44694f6c086SAlexey Starikovskiy	tristate "Smart Battery System"
447a6021aa2SArnd Bergmann	depends on X86 && ACPI_EC
4481b3d4c3bSZhang Rui	select POWER_SUPPLY
4493f86b832SRich Townsend	help
4501c48aa36SBjorn Helgaas	  This driver supports the Smart Battery System, another
45194f6c086SAlexey Starikovskiy	  type of access to battery information, found on some laptops.
4523f86b832SRich Townsend
4531c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4541c48aa36SBjorn Helgaas	  the modules will be called sbs and sbshc.
4551c48aa36SBjorn Helgaas
456801eab81SHuang Yingconfig ACPI_HED
457cccf6ee0SXiaofei Tan	bool "Hardware Error Device"
458801eab81SHuang Ying	help
459801eab81SHuang Ying	  This driver supports the Hardware Error Device (PNP0C33),
460801eab81SHuang Ying	  which is used to report some hardware errors notified via
461801eab81SHuang Ying	  SCI, mainly the corrected errors.
462801eab81SHuang Ying
463d1ff4b1cSMatthew Garrettconfig ACPI_BGRT
4642223af38SJosh Triplett	bool "Boottime Graphics Resource Table support"
46521c3896bSHeinrich Schuchardt	depends on EFI
466d1ff4b1cSMatthew Garrett	help
467d1ff4b1cSMatthew Garrett	  This driver adds support for exposing the ACPI Boottime Graphics
468d1ff4b1cSMatthew Garrett	  Resource Table, which allows the operating system to obtain
469d1ff4b1cSMatthew Garrett	  data from the firmware boot splash. It will appear under
470d1ff4b1cSMatthew Garrett	  /sys/firmware/acpi/bgrt/ .
471d1ff4b1cSMatthew Garrett
472af1ae78aSAl Stoneconfig ACPI_REDUCED_HARDWARE_ONLY
473af1ae78aSAl Stone	bool "Hardware-reduced ACPI support only" if EXPERT
474af1ae78aSAl Stone	help
475af1ae78aSAl Stone	  This config item changes the way the ACPI code is built.  When this
476af1ae78aSAl Stone	  option is selected, the kernel will use a specialized version of
477af1ae78aSAl Stone	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
478af1ae78aSAl Stone	  resulting kernel will be smaller but it will also be restricted to
479af1ae78aSAl Stone	  running in ACPI reduced hardware mode ONLY.
480af1ae78aSAl Stone
481af1ae78aSAl Stone	  If you are unsure what to do, do not enable this option.
482af1ae78aSAl Stone
48382b8acc0SCezary Rojewskiconfig ACPI_NHLT
48482b8acc0SCezary Rojewski	bool
48582b8acc0SCezary Rojewski
486bdf97013SDan Williamssource "drivers/acpi/nfit/Kconfig"
487c710fcc5SDan Williamssource "drivers/acpi/numa/Kconfig"
488a643ce20SHuang Yingsource "drivers/acpi/apei/Kconfig"
4896256ebd5SSrinivas Pandruvadasource "drivers/acpi/dptf/Kconfig"
490a643ce20SHuang Ying
491058dfc76SMika Westerbergconfig ACPI_WATCHDOG
492058dfc76SMika Westerberg	bool
493058dfc76SMika Westerberg
4944b3db708SChen, Gongconfig ACPI_EXTLOG
4954b3db708SChen, Gong	tristate "Extended Error Log support"
4969613916bSBorislav Petkov	depends on X86_MCE && X86_LOCAL_APIC && EDAC
4977ea6c6c1SLuck, Tony	select UEFI_CPER
49895350effSFabio M. De Francesco	select ACPI_APEI
49995350effSFabio M. De Francesco	select ACPI_APEI_GHES
5004b3db708SChen, Gong	help
5014b3db708SChen, Gong	  Certain usages such as Predictive Failure Analysis (PFA) require
5024b3db708SChen, Gong	  more information about the error than what can be described in
5034b3db708SChen, Gong	  processor machine check banks. Most server processors log
5044b3db708SChen, Gong	  additional information about the error in processor uncore
5054b3db708SChen, Gong	  registers. Since the addresses and layout of these registers vary
5064b3db708SChen, Gong	  widely from one processor to another, system software cannot
5074b3db708SChen, Gong	  readily make use of them. To complicate matters further, some of
5084b3db708SChen, Gong	  the additional error information cannot be constructed without
5094b3db708SChen, Gong	  detailed knowledge about platform topology.
5104b3db708SChen, Gong
5114b3db708SChen, Gong	  Enhanced MCA Logging allows firmware to provide additional error
5124b3db708SChen, Gong	  information to system software, synchronous with MCE or CMCI. This
5132dfb7d51SChen, Gong	  driver adds support for that functionality with corresponding
5142dfb7d51SChen, Gong	  tracepoint which carries that information to userspace.
5154b3db708SChen, Gong
5164cf841e3STony Luckconfig ACPI_ADXL
5174cf841e3STony Luck	bool
5184cf841e3STony Luck
5190bf54fcdSOctavian Purdilaconfig ACPI_CONFIGFS
5200bf54fcdSOctavian Purdila	tristate "ACPI configfs support"
5210bf54fcdSOctavian Purdila	select CONFIGFS_FS
5220bf54fcdSOctavian Purdila	help
5230bf54fcdSOctavian Purdila	  Select this option to enable support for ACPI configuration from
5240bf54fcdSOctavian Purdila	  userspace. The configurable ACPI groups will be visible under
5250bf54fcdSOctavian Purdila	  /config/acpi, assuming configfs is mounted under /config.
5260bf54fcdSOctavian Purdila
5270db89fa2SChen Yuconfig ACPI_PFRUT
5280db89fa2SChen Yu	tristate "ACPI Platform Firmware Runtime Update and Telemetry"
5290db89fa2SChen Yu	depends on 64BIT
5300db89fa2SChen Yu	help
5310db89fa2SChen Yu	  This mechanism allows certain pieces of the platform firmware
5320db89fa2SChen Yu	  to be updated on the fly while the system is running (runtime)
5330db89fa2SChen Yu	  without the need to restart it, which is key in the cases when
5340db89fa2SChen Yu	  the system needs to be available 100% of the time and it cannot
5350db89fa2SChen Yu	  afford the downtime related to restarting it, or when the work
5360db89fa2SChen Yu	  carried out by the system is particularly important, so it cannot
5370db89fa2SChen Yu	  be interrupted, and it is not practical to wait until it is complete.
5380db89fa2SChen Yu
5390db89fa2SChen Yu	  The existing firmware code can be modified (driver update) or
5400db89fa2SChen Yu	  extended by adding new code to the firmware (code injection).
5410db89fa2SChen Yu
542b0013e03SChen Yu	  Besides, the telemetry driver allows user space to fetch telemetry
543b0013e03SChen Yu	  data from the firmware with the help of the Platform Firmware Runtime
544b0013e03SChen Yu	  Telemetry interface.
545b0013e03SChen Yu
546b0013e03SChen Yu	  To compile the drivers as modules, choose M here:
547b0013e03SChen Yu	  the modules will be called pfr_update and pfr_telemetry.
5480db89fa2SChen Yu
54988ef16d8STomasz Nowickiif ARM64
55088ef16d8STomasz Nowickisource "drivers/acpi/arm64/Kconfig"
551f6f0c9a7SHuacai Chenendif
5520ce82232SJeremy Linton
5538f772955SSunil V Lif RISCV
5548f772955SSunil V Lsource "drivers/acpi/riscv/Kconfig"
5558f772955SSunil V Lendif
5568f772955SSunil V L
5570ce82232SJeremy Lintonconfig ACPI_PPTT
5580ce82232SJeremy Linton	bool
55988ef16d8STomasz Nowicki
56077e2a047SSudeep Hollaconfig ACPI_PCC
56177e2a047SSudeep Holla	bool "ACPI PCC Address Space"
56277e2a047SSudeep Holla	depends on PCC
56377e2a047SSudeep Holla	default y
56477e2a047SSudeep Holla	help
56577e2a047SSudeep Holla	  The PCC Address Space also referred as PCC Operation Region pertains
56677e2a047SSudeep Holla	  to the region of PCC subspace that succeeds the PCC signature.
56777e2a047SSudeep Holla
56877e2a047SSudeep Holla	  The PCC Operation Region works in conjunction with the PCC Table
56977e2a047SSudeep Holla	  (Platform Communications Channel Table). PCC subspaces that are
57077e2a047SSudeep Holla	  marked for use as PCC Operation Regions must not be used as PCC
57177e2a047SSudeep Holla	  subspaces for the standard ACPI features such as CPPC, RASF, PDTT and
57277e2a047SSudeep Holla	  MPST. These standard features must always use the PCC Table instead.
57377e2a047SSudeep Holla
57477e2a047SSudeep Holla	  Enable this feature if you want to set up and install the PCC Address
57577e2a047SSudeep Holla	  Space handler to handle PCC OpRegion in the firmware.
57677e2a047SSudeep Holla
577e81c782cSSudeep Hollaconfig ACPI_FFH
578e81c782cSSudeep Holla	bool "ACPI FFH Address Space"
579e81c782cSSudeep Holla	default n
580e81c782cSSudeep Holla	help
581e81c782cSSudeep Holla	  The FFH(Fixed Function Hardware) Address Space also referred as FFH
582e81c782cSSudeep Holla	  Operation Region allows to define platform specific opregion.
583e81c782cSSudeep Holla
584e81c782cSSudeep Holla	  Enable this feature if you want to set up and install the FFH Address
585e81c782cSSudeep Holla	  Space handler to handle FFH OpRegion in the firmware.
586e81c782cSSudeep Holla
587b9020bdbSTony Luckconfig ACPI_MRRM
588b9020bdbSTony Luck	bool
589b9020bdbSTony Luck
590fa870509SAndy Shevchenkosource "drivers/acpi/pmic/Kconfig"
591fa870509SAndy Shevchenko
5923cf48554SJean-Philippe Bruckerconfig ACPI_VIOT
5933cf48554SJean-Philippe Brucker	bool
5943cf48554SJean-Philippe Brucker
595e3435fffSSudeep Hollaconfig ACPI_PRMT
596e3435fffSSudeep Holla	bool "Platform Runtime Mechanism Support"
5975894cf57SArd Biesheuvel	depends on EFI_RUNTIME_WRAPPERS && (X86_64 || ARM64)
598e3435fffSSudeep Holla	default y
599e3435fffSSudeep Holla	help
600e3435fffSSudeep Holla	  Platform Runtime Mechanism (PRM) is a firmware interface exposing a
601e3435fffSSudeep Holla	  set of binary executables that can be called from the AML interpreter
602e3435fffSSudeep Holla	  or directly from device drivers.
603e3435fffSSudeep Holla
604e3435fffSSudeep Holla	  Say Y to enable the AML interpreter to execute the PRM code.
605e3435fffSSudeep Holla
606e3435fffSSudeep Holla	  While this feature is optional in principle, leaving it out may
607e3435fffSSudeep Holla	  substantially increase computational overhead related to the
608e3435fffSSudeep Holla	  initialization of some server systems.
609e3435fffSSudeep Holla
6101da177e4SLinus Torvaldsendif	# ACPI
61187e65d05SJan Kiszka
61287e65d05SJan Kiszkaconfig X86_PM_TIMER
61387e65d05SJan Kiszka	bool "Power Management Timer Support" if EXPERT
61487e65d05SJan Kiszka	depends on X86 && (ACPI || JAILHOUSE_GUEST)
61587e65d05SJan Kiszka	default y
61687e65d05SJan Kiszka	help
61787e65d05SJan Kiszka	  The Power Management Timer is available on all ACPI-capable,
61887e65d05SJan Kiszka	  in most cases even if ACPI is unusable or blacklisted.
61987e65d05SJan Kiszka
62087e65d05SJan Kiszka	  This timing source is not affected by power management features
62187e65d05SJan Kiszka	  like aggressive processor idling, throttling, frequency and/or
62287e65d05SJan Kiszka	  voltage scaling, unlike the commonly used Time Stamp Counter
62387e65d05SJan Kiszka	  (TSC) timing source.
62487e65d05SJan Kiszka
62587e65d05SJan Kiszka	  You should nearly always say Y here because many modern
62687e65d05SJan Kiszka	  systems require this timer.
627