xref: /linux/drivers/acpi/Kconfig (revision 5100b6f9e7bfc520e8129a5042a4bdd7dd486df6)
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
12243b66e7SLen Brown	select PNP
132e61069bSSinan Kaya	select NLS
1404662bacSRandy Dunlap	select CRC32
15a103f466SDave Jiang	select FIRMWARE_TABLE
162c870e61SArnd Bergmann	default y if X86
171c48aa36SBjorn Helgaas	help
181da177e4SLinus Torvalds	  Advanced Configuration and Power Interface (ACPI) support for
191c48aa36SBjorn Helgaas	  Linux requires an ACPI-compliant platform (hardware/firmware),
201da177e4SLinus Torvalds	  and assumes the presence of OS-directed configuration and power
211da177e4SLinus Torvalds	  management (OSPM) software.  This option will enlarge your
221da177e4SLinus Torvalds	  kernel by about 70K.
231da177e4SLinus Torvalds
241da177e4SLinus Torvalds	  Linux ACPI provides a robust functional replacement for several
251da177e4SLinus Torvalds	  legacy configuration and power management interfaces, including
261da177e4SLinus Torvalds	  the Plug-and-Play BIOS specification (PnP BIOS), the
271da177e4SLinus Torvalds	  MultiProcessor Specification (MPS), and the Advanced Power
281da177e4SLinus Torvalds	  Management (APM) specification.  If both ACPI and APM support
291c48aa36SBjorn Helgaas	  are configured, ACPI is used.
301da177e4SLinus Torvalds
311da177e4SLinus Torvalds	  Linux support for ACPI is based on Intel Corporation's ACPI
321c48aa36SBjorn Helgaas	  Component Architecture (ACPI CA).  For more information on the
331c48aa36SBjorn Helgaas	  ACPI CA, see:
344ce77966SAlexander A. Klimov	  <https://acpica.org/>
351da177e4SLinus Torvalds
36c7f5220dSHanjun Guo	  ACPI is an open industry specification originally co-developed by
37c7f5220dSHanjun Guo	  Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
38c7f5220dSHanjun Guo	  it is developed by the ACPI Specification Working Group (ASWG) under
39c7f5220dSHanjun Guo	  the UEFI Forum and any UEFI member can join the ASWG and contribute
40c7f5220dSHanjun Guo	  to the ACPI specification.
411c48aa36SBjorn Helgaas	  The specification is available at:
420585c1c0STiezhu Yang	  <https://uefi.org/specifications>
431da177e4SLinus Torvalds
443e11c3ceSLen Brownif ACPI
453e11c3ceSLen Brown
468a1664beSGraeme Gregoryconfig ACPI_LEGACY_TABLES_LOOKUP
478a1664beSGraeme Gregory	bool
488a1664beSGraeme Gregory
4946ba51eaSHanjun Guoconfig ARCH_MIGHT_HAVE_ACPI_PDC
5046ba51eaSHanjun Guo	bool
5146ba51eaSHanjun Guo
52d8f4f161SLorenzo Pieralisiconfig ACPI_GENERIC_GSI
53d8f4f161SLorenzo Pieralisi	bool
54d8f4f161SLorenzo Pieralisi
556e0a0ea1SGraeme Gregoryconfig ACPI_SYSTEM_POWER_STATES_SUPPORT
566e0a0ea1SGraeme Gregory	bool
576e0a0ea1SGraeme Gregory
58d0562674SSuthikulpanit, Suraveeconfig ACPI_CCA_REQUIRED
59d0562674SSuthikulpanit, Suravee	bool
60d0562674SSuthikulpanit, Suravee
61f64bd790SDan Williamsconfig ACPI_TABLE_LIB
62f64bd790SDan Williams	bool
63f64bd790SDan Williams
64f4750798SRafael J. Wysockiconfig ACPI_THERMAL_LIB
65f4750798SRafael J. Wysocki       depends on THERMAL
66f4750798SRafael J. Wysocki       bool
67f4750798SRafael J. Wysocki
684d946f79SLv Zhengconfig ACPI_DEBUGGER
698cfb0cdfSLv Zheng	bool "AML debugger interface"
704d946f79SLv Zheng	select ACPI_DEBUG
714d946f79SLv Zheng	help
72836d0830SLv Zheng	  Enable in-kernel debugging of AML facilities: statistics,
73836d0830SLv Zheng	  internal object dump, single step control method execution.
744d946f79SLv Zheng	  This is still under development, currently enabling this only
754d946f79SLv Zheng	  results in the compilation of the ACPICA debugger files.
764d946f79SLv Zheng
77836d0830SLv Zhengif ACPI_DEBUGGER
78836d0830SLv Zheng
79836d0830SLv Zhengconfig ACPI_DEBUGGER_USER
80c117dfffSMasanari Iida	tristate "Userspace debugger accessibility"
81836d0830SLv Zheng	depends on DEBUG_FS
82836d0830SLv Zheng	help
83836d0830SLv Zheng	  Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
84836d0830SLv Zheng	  to access the debugger functionalities.
85836d0830SLv Zheng
86836d0830SLv Zhengendif
87836d0830SLv Zheng
88ad1696f6SAleksey Makarovconfig ACPI_SPCR_TABLE
890231d000SPrarit Bhargava	bool "ACPI Serial Port Console Redirection Support"
900231d000SPrarit Bhargava	default y if X86
910231d000SPrarit Bhargava	help
920231d000SPrarit Bhargava	  Enable support for Serial Port Console Redirection (SPCR) Table.
930231d000SPrarit Bhargava	  This table provides information about the configuration of the
940231d000SPrarit Bhargava	  earlycon console.
95ad1696f6SAleksey Makarov
96d1eb86e5SZhang Ruiconfig ACPI_FPDT
97d1eb86e5SZhang Rui	bool "ACPI Firmware Performance Data Table (FPDT) support"
98c2465f95SJeremy Linton	depends on X86_64 || ARM64
99d1eb86e5SZhang Rui	help
100d1eb86e5SZhang Rui	  Enable support for the Firmware Performance Data Table (FPDT).
101d1eb86e5SZhang Rui	  This table provides information on the timing of the system
102d1eb86e5SZhang Rui	  boot, S3 suspend and S3 resume firmware code paths.
103d1eb86e5SZhang Rui
104eeb2d80dSSrinivas Pandruvadaconfig ACPI_LPIT
105eeb2d80dSSrinivas Pandruvada	bool
106eeb2d80dSSrinivas Pandruvada	depends on X86_64
107eeb2d80dSSrinivas Pandruvada	default y
108eeb2d80dSSrinivas Pandruvada
109673d5b43SLen Brownconfig ACPI_SLEEP
110673d5b43SLen Brown	bool
1115d1e072bSRafael J. Wysocki	depends on SUSPEND || HIBERNATION
1126e0a0ea1SGraeme Gregory	depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
113673d5b43SLen Brown	default y
114673d5b43SLen Brown
11518d78b64SRafael J. Wysockiconfig ACPI_REV_OVERRIDE_POSSIBLE
1169165dabbSMasanari Iida	bool "Allow supported ACPI revision to be overridden"
11718d78b64SRafael J. Wysocki	depends on X86
11818d78b64SRafael J. Wysocki	default y
11918d78b64SRafael J. Wysocki	help
12018d78b64SRafael J. Wysocki	  The platform firmware on some systems expects Linux to return "5" as
12118d78b64SRafael J. Wysocki	  the supported ACPI revision which makes it expose system configuration
12218d78b64SRafael J. Wysocki	  information in a special way.
12318d78b64SRafael J. Wysocki
12418d78b64SRafael J. Wysocki	  For example, based on what ACPI exports as the supported revision,
12518d78b64SRafael J. Wysocki	  Dell XPS 13 (2015) configures its audio device to either work in HDA
12618d78b64SRafael J. Wysocki	  mode or in I2S mode, where the former is supposed to be used on Linux
12718d78b64SRafael J. Wysocki	  until the latter is fully supported (in the kernel as well as in user
12818d78b64SRafael J. Wysocki	  space).
12918d78b64SRafael J. Wysocki
13018d78b64SRafael J. Wysocki	  This option enables a DMI-based quirk for the above Dell machine (so
13118d78b64SRafael J. Wysocki	  that HDA audio is exposed by the platform firmware to the kernel) and
13218d78b64SRafael J. Wysocki	  makes it possible to force the kernel to return "5" as the supported
13318d78b64SRafael J. Wysocki	  ACPI revision via the "acpi_rev_override" command line switch.
13418d78b64SRafael J. Wysocki
135a6021aa2SArnd Bergmannconfig ACPI_EC
136a6021aa2SArnd Bergmann	bool "Embedded Controller"
137a6021aa2SArnd Bergmann	depends on HAS_IOPORT
138*0674188fSHuacai Chen	default X86 || LOONGARCH
139a6021aa2SArnd Bergmann	help
140a6021aa2SArnd Bergmann	  This driver handles communication with the microcontroller
141*0674188fSHuacai Chen	  on many x86/LoongArch laptops and other machines.
142a6021aa2SArnd Bergmann
1431195a098SThomas Renningerconfig ACPI_EC_DEBUGFS
1441195a098SThomas Renninger	tristate "EC read/write access through /sys/kernel/debug/ec"
145a6021aa2SArnd Bergmann	depends on ACPI_EC
1461195a098SThomas Renninger	help
1471195a098SThomas Renninger	  Say N to disable Embedded Controller /sys/kernel/debug interface
1481195a098SThomas Renninger
149500de3ddSThomas Renninger	  Be aware that using this interface can confuse your Embedded
150500de3ddSThomas Renninger	  Controller in a way that a normal reboot is not enough. You then
15125cb1bfdSAndrea Gelmini	  have to power off your system, and remove the laptop battery for
152500de3ddSThomas Renninger	  some seconds.
1531195a098SThomas Renninger	  An Embedded Controller typically is available on laptops and reads
1541195a098SThomas Renninger	  sensor values like battery state and temperature.
155500de3ddSThomas Renninger	  The kernel accesses the EC through ACPI parsed code provided by BIOS
156500de3ddSThomas Renninger	  tables. This option allows to access the EC directly without ACPI
157500de3ddSThomas Renninger	  code being involved.
1581195a098SThomas Renninger	  Thus this option is a debug option that helps to write ACPI drivers
1591195a098SThomas Renninger	  and can be used to identify ACPI code or EC firmware bugs.
1601195a098SThomas Renninger
1611da177e4SLinus Torvaldsconfig ACPI_AC
1621da177e4SLinus Torvalds	tristate "AC Adapter"
1631b3d4c3bSZhang Rui	select POWER_SUPPLY
16407fefe4cSLen Brown	default y
1651da177e4SLinus Torvalds	help
1661c48aa36SBjorn Helgaas	  This driver supports the AC Adapter object, which indicates
1671c48aa36SBjorn Helgaas	  whether a system is on AC or not.  If you have a system that can
16807fefe4cSLen Brown	  switch between A/C and battery, say Y.
1691da177e4SLinus Torvalds
1701c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1711c48aa36SBjorn Helgaas	  the module will be called ac.
1721c48aa36SBjorn Helgaas
1731da177e4SLinus Torvaldsconfig ACPI_BATTERY
1741da177e4SLinus Torvalds	tristate "Battery"
1751b3d4c3bSZhang Rui	select POWER_SUPPLY
17607fefe4cSLen Brown	default y
1771da177e4SLinus Torvalds	help
1781da177e4SLinus Torvalds	  This driver adds support for battery information through
1791da177e4SLinus Torvalds	  /proc/acpi/battery. If you have a mobile system with a battery,
1801da177e4SLinus Torvalds	  say Y.
1811da177e4SLinus Torvalds
1821c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1831c48aa36SBjorn Helgaas	  the module will be called battery.
1841c48aa36SBjorn Helgaas
1851da177e4SLinus Torvaldsconfig ACPI_BUTTON
1861da177e4SLinus Torvalds	tristate "Button"
187c0968f0eSDmitry Torokhov	depends on INPUT
18807fefe4cSLen Brown	default y
1891da177e4SLinus Torvalds	help
1901c48aa36SBjorn Helgaas	  This driver handles events on the power, sleep, and lid buttons.
1917d13f94cSKrzysztof Mazur	  A daemon reads events from input devices or via netlink and
1927d13f94cSKrzysztof Mazur	  performs user-defined actions such as shutting down the system.
1937d13f94cSKrzysztof Mazur	  This is necessary for software-controlled poweroff.
1941c48aa36SBjorn Helgaas
1951c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1961c48aa36SBjorn Helgaas	  the module will be called button.
1971da177e4SLinus Torvalds
198a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON
199a1b93e89SJosh Triplett	tristate "Tiny Power Button Driver"
200a1b93e89SJosh Triplett	depends on !ACPI_BUTTON
201a1b93e89SJosh Triplett	help
202a1b93e89SJosh Triplett	  This driver provides a tiny alternative to the ACPI Button driver.
203a1b93e89SJosh Triplett	  The tiny power button driver only handles the power button. Rather
204a1b93e89SJosh Triplett	  than notifying userspace via the input layer or a netlink event, this
205a1b93e89SJosh Triplett	  driver directly signals the init process to shut down.
206a1b93e89SJosh Triplett
207a1b93e89SJosh Triplett	  This driver is particularly suitable for cloud and VM environments,
208a1b93e89SJosh Triplett	  which use a simulated power button to initiate a controlled poweroff,
209a1b93e89SJosh Triplett	  but which may not want to run a separate userspace daemon to process
210a1b93e89SJosh Triplett	  input events.
211a1b93e89SJosh Triplett
212a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON_SIGNAL
213a1b93e89SJosh Triplett	int "Tiny Power Button Signal"
214a1b93e89SJosh Triplett	depends on ACPI_TINY_POWER_BUTTON
215a1b93e89SJosh Triplett	default 38
216a1b93e89SJosh Triplett	help
217a1b93e89SJosh Triplett	  Default signal to send to init in response to the power button.
218a1b93e89SJosh Triplett
219a1b93e89SJosh Triplett	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
220a1b93e89SJosh Triplett	  (SIGINT) to simulate Ctrl+Alt+Del.
221a1b93e89SJosh Triplett
2221da177e4SLinus Torvaldsconfig ACPI_VIDEO
2231da177e4SLinus Torvalds	tristate "Video"
224038275d2SRiwen Lu	depends on BACKLIGHT_CLASS_DEVICE
22503e2bf26SAndreas Herrmann	depends on INPUT
226fe7aebb4SHans de Goede	depends on ACPI_WMI || !X86
22763c4ec90SZhang Rui	select THERMAL
2281da177e4SLinus Torvalds	help
2291c48aa36SBjorn Helgaas	  This driver implements the ACPI Extensions For Display Adapters
2301da177e4SLinus Torvalds	  for integrated graphics devices on motherboard, as specified in
2311c48aa36SBjorn Helgaas	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
2321c48aa36SBjorn Helgaas	  such as defining the video POST device, retrieving EDID information,
2331c48aa36SBjorn Helgaas	  and setting up a video output.
2341c48aa36SBjorn Helgaas
2351c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2361c48aa36SBjorn Helgaas	  the module will be called video.
2371da177e4SLinus Torvalds
2381da177e4SLinus Torvaldsconfig ACPI_FAN
2391da177e4SLinus Torvalds	tristate "Fan"
240d8054749SZhang Rui	depends on THERMAL
24107fefe4cSLen Brown	default y
2421da177e4SLinus Torvalds	help
2431c48aa36SBjorn Helgaas	  This driver supports ACPI fan devices, allowing user-mode
2441da177e4SLinus Torvalds	  applications to perform basic fan control (on, off, status).
2451da177e4SLinus Torvalds
2461c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2471c48aa36SBjorn Helgaas	  the module will be called fan.
2481c48aa36SBjorn Helgaas
24995c513ecSRafael J. Wysockiconfig ACPI_TAD
25095c513ecSRafael J. Wysocki	tristate "ACPI Time and Alarm (TAD) Device Support"
25195c513ecSRafael J. Wysocki	depends on SYSFS && PM_SLEEP
25295c513ecSRafael J. Wysocki	help
25395c513ecSRafael J. Wysocki	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
25495c513ecSRafael J. Wysocki	  Time Clock (RTC).  Its wake timers allow the system to transition from
25595c513ecSRafael J. Wysocki	  the S3 (or optionally S4/S5) state to S0 state after a time period
25695c513ecSRafael J. Wysocki	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
25795c513ecSRafael J. Wysocki	  scale of flexibility in the wake timers.  The time capabilities of the
25895c513ecSRafael J. Wysocki	  TAD maintain the time of day information across platform power
25995c513ecSRafael J. Wysocki	  transitions, and keep track of time even when the platform is turned
26095c513ecSRafael J. Wysocki	  off.
26195c513ecSRafael J. Wysocki
262c8f7a62cSLen Brownconfig ACPI_DOCK
263898b054fSShaohua Li	bool "Dock"
264c8f7a62cSLen Brown	help
2651c48aa36SBjorn Helgaas	  This driver supports ACPI-controlled docking stations and removable
2661c48aa36SBjorn Helgaas	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
26701b57e73SKristen Carlson Accardi
268239708a3SAshwin Chauguleconfig ACPI_CPU_FREQ_PSS
269239708a3SAshwin Chaugule	bool
270239708a3SAshwin Chaugule
27135ae7133SSudeep Hollaconfig ACPI_PROCESSOR_CSTATE
27235ae7133SSudeep Holla	def_bool y
273239ed06dSRafael J. Wysocki	depends on ACPI_PROCESSOR
274cf8e8658SArd Biesheuvel	depends on X86
27535ae7133SSudeep Holla
2765f05586cSAshwin Chauguleconfig ACPI_PROCESSOR_IDLE
2775f05586cSAshwin Chaugule	bool
2785f05586cSAshwin Chaugule	select CPU_IDLE
2795f05586cSAshwin Chaugule
280935c760eSTomasz Nowickiconfig ACPI_MCFG
281935c760eSTomasz Nowicki	bool
282935c760eSTomasz Nowicki
283337aadffSAshwin Chauguleconfig ACPI_CPPC_LIB
284337aadffSAshwin Chaugule	bool
285337aadffSAshwin Chaugule	depends on ACPI_PROCESSOR
286337aadffSAshwin Chaugule	select MAILBOX
287337aadffSAshwin Chaugule	select PCC
288337aadffSAshwin Chaugule	help
289337aadffSAshwin Chaugule	  If this option is enabled, this file implements common functionality
290337aadffSAshwin Chaugule	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
291337aadffSAshwin Chaugule	  routines implemented are meant to be used by other
292337aadffSAshwin Chaugule	  drivers to control CPU performance using CPPC semantics.
293337aadffSAshwin Chaugule	  If your platform does not support CPPC in firmware,
294337aadffSAshwin Chaugule	  leave this option disabled.
295337aadffSAshwin Chaugule
2961da177e4SLinus Torvaldsconfig ACPI_PROCESSOR
2971da177e4SLinus Torvalds	tristate "Processor"
298359df7c5SSunil V L	depends on X86 || ARM64 || LOONGARCH || RISCV
2998fc85c6aSSudeep Holla	select ACPI_PROCESSOR_IDLE
300cf8e8658SArd Biesheuvel	select ACPI_CPU_FREQ_PSS if X86 || LOONGARCH
3017fdc74daSRiwen Lu	select THERMAL
30207fefe4cSLen Brown	default y
3031da177e4SLinus Torvalds	help
304239708a3SAshwin Chaugule	  This driver adds support for the ACPI Processor package. It is required
305239708a3SAshwin Chaugule	  by several flavors of cpufreq performance-state, thermal, throttling and
306239708a3SAshwin Chaugule	  idle drivers.
3071c48aa36SBjorn Helgaas
3081c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3091c48aa36SBjorn Helgaas	  the module will be called processor.
3104b88e330SLv Zheng
311e92b297cSZhao Yakuiconfig ACPI_IPMI
312e92b297cSZhao Yakui	tristate "IPMI"
31350121bebSSinan Kaya	depends on IPMI_HANDLER
314e92b297cSZhao Yakui	help
315e92b297cSZhao Yakui	  This driver enables the ACPI to access the BMC controller. And it
316e92b297cSZhao Yakui	  uses the IPMI request/response message to communicate with BMC
317a8ab8ef4STom Rix	  controller, which can be found on the server.
318e92b297cSZhao Yakui
319e92b297cSZhao Yakui	  To compile this driver as a module, choose M here:
320e92b297cSZhao Yakui	  the module will be called as acpi_ipmi.
3211da177e4SLinus Torvalds
3221da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_CPU
323cbfc1baeSAdrian Bunk	bool
324f756f28bSKees Cook	depends on ACPI_PROCESSOR && HOTPLUG_CPU
3251da177e4SLinus Torvalds	select ACPI_CONTAINER
3261da177e4SLinus Torvalds
3278e0af514SShaohua Liconfig ACPI_PROCESSOR_AGGREGATOR
3288e0af514SShaohua Li	tristate "Processor Aggregator"
3298e0af514SShaohua Li	depends on ACPI_PROCESSOR
330d91f79ebSLen Brown	depends on X86
3318e0af514SShaohua Li	help
3328e0af514SShaohua Li	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
333c4c4e2a5SJiri Slaby	  specific processor configuration and control that applies to all
3348e0af514SShaohua Li	  processors in the platform. Currently only logical processor idling
3358e0af514SShaohua Li	  is defined, which is to reduce power consumption. This driver
336c4c4e2a5SJiri Slaby	  supports the new device.
3378e0af514SShaohua Li
3381da177e4SLinus Torvaldsconfig ACPI_THERMAL
3391da177e4SLinus Torvalds	tristate "Thermal Zone"
3401da177e4SLinus Torvalds	depends on ACPI_PROCESSOR
3413f655ef8SZhang Rui	select THERMAL
342f4750798SRafael J. Wysocki	select ACPI_THERMAL_LIB
34307fefe4cSLen Brown	default y
3441da177e4SLinus Torvalds	help
3451c48aa36SBjorn Helgaas	  This driver supports ACPI thermal zones.  Most mobile and
3461da177e4SLinus Torvalds	  some desktop systems support ACPI thermal zones.  It is HIGHLY
3471da177e4SLinus Torvalds	  recommended that this option be enabled, as your processor(s)
3481da177e4SLinus Torvalds	  may be damaged without it.
3491da177e4SLinus Torvalds
3501c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3511c48aa36SBjorn Helgaas	  the module will be called thermal.
3521c48aa36SBjorn Helgaas
353a2ff95e0SMark Pearsonconfig ACPI_PLATFORM_PROFILE
35421f05a43SMaximilian Luz	tristate
355a2ff95e0SMark Pearson
3567ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT_FILE
3577ce9573eSRandy Dunlap	string "Custom DSDT Table file to include"
3587ce9573eSRandy Dunlap	default ""
3591da177e4SLinus Torvalds	depends on !STANDALONE
3601da177e4SLinus Torvalds	help
361d89e9d6bSLen Brown	  This option supports a custom DSDT by linking it into the kernel.
362d89e9d6bSLen Brown
363c30fe7f7SUwe Zeisberger	  Enter the full path name to the file which includes the AmlCode
36482e4eb4eSWang Dongsheng	  or dsdt_aml_code declaration.
3651da177e4SLinus Torvalds
3667ce9573eSRandy Dunlap	  If unsure, don't enter a file name.
3677ce9573eSRandy Dunlap
3687ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT
3697ce9573eSRandy Dunlap	bool
3707ce9573eSRandy Dunlap	default ACPI_CUSTOM_DSDT_FILE != ""
3717ce9573eSRandy Dunlap
37291dda51aSAleksey Makarovconfig ARCH_HAS_ACPI_TABLE_UPGRADE
37391dda51aSAleksey Makarov	def_bool n
37491dda51aSAleksey Makarov
3755d881327SLv Zhengconfig ACPI_TABLE_UPGRADE
3765d881327SLv Zheng	bool "Allow upgrading ACPI tables via initrd"
37791dda51aSAleksey Makarov	depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
3785d881327SLv Zheng	default y
37953aac44cSThomas Renninger	help
3805d881327SLv Zheng	  This option provides functionality to upgrade arbitrary ACPI tables
38153aac44cSThomas Renninger	  via initrd. No functional change if no ACPI tables are passed via
38253aac44cSThomas Renninger	  initrd, therefore it's safe to say Y.
383cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
38453aac44cSThomas Renninger
38598a455d9SShunyong Yangconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
38698a455d9SShunyong Yang	bool "Override ACPI tables from built-in initrd"
38798a455d9SShunyong Yang	depends on ACPI_TABLE_UPGRADE
388d2cbbf1fSRobert Richter	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
38998a455d9SShunyong Yang	help
39098a455d9SShunyong Yang	  This option provides functionality to override arbitrary ACPI tables
39198a455d9SShunyong Yang	  from built-in uncompressed initrd.
39298a455d9SShunyong Yang
393cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
39498a455d9SShunyong Yang
3951da177e4SLinus Torvaldsconfig ACPI_DEBUG
3961da177e4SLinus Torvalds	bool "Debug Statements"
3971da177e4SLinus Torvalds	help
398a0d84a92SBjorn Helgaas	  The ACPI subsystem can produce debug output.  Saying Y enables this
399a0d84a92SBjorn Helgaas	  output and increases the kernel size by around 50K.
400a0d84a92SBjorn Helgaas
401a0d84a92SBjorn Helgaas	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
402cb1aaebeSMauro Carvalho Chehab	  parameters documented in Documentation/firmware-guide/acpi/debug.rst and
4038c27ceffSMauro Carvalho Chehab	  Documentation/admin-guide/kernel-parameters.rst to control the type and
404a0d84a92SBjorn Helgaas	  amount of debug output.
4051da177e4SLinus Torvalds
4068344b568SAlex Chiangconfig ACPI_PCI_SLOT
407ab1a2e03SJiang Liu	bool "PCI slot detection driver"
4085c6a1177SSinan Kaya	depends on SYSFS && PCI
4098344b568SAlex Chiang	help
4101c48aa36SBjorn Helgaas	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
4111c48aa36SBjorn Helgaas	  slots in the system.  This can help correlate PCI bus addresses,
4121c48aa36SBjorn Helgaas	  i.e., segment/bus/device/function tuples, with physical slots in
4131c48aa36SBjorn Helgaas	  the system.  If you are unsure, say N.
4141c48aa36SBjorn Helgaas
4151da177e4SLinus Torvaldsconfig ACPI_CONTAINER
41606991c28SLinus Torvalds	bool "Container and Module Devices"
417ea6a4581SPaul Bolle	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
4181c48aa36SBjorn Helgaas	help
4191c48aa36SBjorn Helgaas	  This driver supports ACPI Container and Module devices (IDs
4201c48aa36SBjorn Helgaas	  ACPI0004, PNP0A05, and PNP0A06).
42145b1b196SKeiichiro Tokunaga
4221c48aa36SBjorn Helgaas	  This helps support hotplug of nodes, CPUs, and memory.
4231c48aa36SBjorn Helgaas
4241da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_MEMORY
4250a347644SRafael J. Wysocki	bool "Memory Hotplug"
426bc02af93SYasunori Goto	depends on MEMORY_HOTPLUG
4271da177e4SLinus Torvalds	help
4281c48aa36SBjorn Helgaas	  This driver supports ACPI memory hotplug.  The driver
4291c48aa36SBjorn Helgaas	  fields notifications on ACPI memory devices (PNP0C80),
4301c48aa36SBjorn Helgaas	  which represent memory ranges that may be onlined or
4311c48aa36SBjorn Helgaas	  offlined during runtime.
4321da177e4SLinus Torvalds
4331c48aa36SBjorn Helgaas	  If your hardware and firmware do not support adding or
4341c48aa36SBjorn Helgaas	  removing memory devices at runtime, you need not enable
4351c48aa36SBjorn Helgaas	  this driver.
4361da177e4SLinus Torvalds
437c183619bSJiang Liuconfig ACPI_HOTPLUG_IOAPIC
438c183619bSJiang Liu	bool
439c183619bSJiang Liu	depends on PCI
440c183619bSJiang Liu	depends on X86_IO_APIC
441c183619bSJiang Liu	default y
442c183619bSJiang Liu
4433f86b832SRich Townsendconfig ACPI_SBS
44494f6c086SAlexey Starikovskiy	tristate "Smart Battery System"
445a6021aa2SArnd Bergmann	depends on X86 && ACPI_EC
4461b3d4c3bSZhang Rui	select POWER_SUPPLY
4473f86b832SRich Townsend	help
4481c48aa36SBjorn Helgaas	  This driver supports the Smart Battery System, another
44994f6c086SAlexey Starikovskiy	  type of access to battery information, found on some laptops.
4503f86b832SRich Townsend
4511c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4521c48aa36SBjorn Helgaas	  the modules will be called sbs and sbshc.
4531c48aa36SBjorn Helgaas
454801eab81SHuang Yingconfig ACPI_HED
455801eab81SHuang Ying	tristate "Hardware Error Device"
456801eab81SHuang Ying	help
457801eab81SHuang Ying	  This driver supports the Hardware Error Device (PNP0C33),
458801eab81SHuang Ying	  which is used to report some hardware errors notified via
459801eab81SHuang Ying	  SCI, mainly the corrected errors.
460801eab81SHuang Ying
461d1ff4b1cSMatthew Garrettconfig ACPI_BGRT
4622223af38SJosh Triplett	bool "Boottime Graphics Resource Table support"
463d0bb0b60SBibo Mao	depends on EFI && (X86 || ARM64 || LOONGARCH)
464d1ff4b1cSMatthew Garrett	help
465d1ff4b1cSMatthew Garrett	  This driver adds support for exposing the ACPI Boottime Graphics
466d1ff4b1cSMatthew Garrett	  Resource Table, which allows the operating system to obtain
467d1ff4b1cSMatthew Garrett	  data from the firmware boot splash. It will appear under
468d1ff4b1cSMatthew Garrett	  /sys/firmware/acpi/bgrt/ .
469d1ff4b1cSMatthew Garrett
470af1ae78aSAl Stoneconfig ACPI_REDUCED_HARDWARE_ONLY
471af1ae78aSAl Stone	bool "Hardware-reduced ACPI support only" if EXPERT
472af1ae78aSAl Stone	help
473af1ae78aSAl Stone	  This config item changes the way the ACPI code is built.  When this
474af1ae78aSAl Stone	  option is selected, the kernel will use a specialized version of
475af1ae78aSAl Stone	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
476af1ae78aSAl Stone	  resulting kernel will be smaller but it will also be restricted to
477af1ae78aSAl Stone	  running in ACPI reduced hardware mode ONLY.
478af1ae78aSAl Stone
479af1ae78aSAl Stone	  If you are unsure what to do, do not enable this option.
480af1ae78aSAl Stone
48182b8acc0SCezary Rojewskiconfig ACPI_NHLT
48282b8acc0SCezary Rojewski	bool
48382b8acc0SCezary Rojewski
484bdf97013SDan Williamssource "drivers/acpi/nfit/Kconfig"
485c710fcc5SDan Williamssource "drivers/acpi/numa/Kconfig"
486a643ce20SHuang Yingsource "drivers/acpi/apei/Kconfig"
4876256ebd5SSrinivas Pandruvadasource "drivers/acpi/dptf/Kconfig"
488a643ce20SHuang Ying
489058dfc76SMika Westerbergconfig ACPI_WATCHDOG
490058dfc76SMika Westerberg	bool
491058dfc76SMika Westerberg
4924b3db708SChen, Gongconfig ACPI_EXTLOG
4934b3db708SChen, Gong	tristate "Extended Error Log support"
4949613916bSBorislav Petkov	depends on X86_MCE && X86_LOCAL_APIC && EDAC
4957ea6c6c1SLuck, Tony	select UEFI_CPER
4964b3db708SChen, Gong	help
4974b3db708SChen, Gong	  Certain usages such as Predictive Failure Analysis (PFA) require
4984b3db708SChen, Gong	  more information about the error than what can be described in
4994b3db708SChen, Gong	  processor machine check banks. Most server processors log
5004b3db708SChen, Gong	  additional information about the error in processor uncore
5014b3db708SChen, Gong	  registers. Since the addresses and layout of these registers vary
5024b3db708SChen, Gong	  widely from one processor to another, system software cannot
5034b3db708SChen, Gong	  readily make use of them. To complicate matters further, some of
5044b3db708SChen, Gong	  the additional error information cannot be constructed without
5054b3db708SChen, Gong	  detailed knowledge about platform topology.
5064b3db708SChen, Gong
5074b3db708SChen, Gong	  Enhanced MCA Logging allows firmware to provide additional error
5084b3db708SChen, Gong	  information to system software, synchronous with MCE or CMCI. This
5092dfb7d51SChen, Gong	  driver adds support for that functionality with corresponding
5102dfb7d51SChen, Gong	  tracepoint which carries that information to userspace.
5114b3db708SChen, Gong
5124cf841e3STony Luckconfig ACPI_ADXL
5134cf841e3STony Luck	bool
5144cf841e3STony Luck
5150bf54fcdSOctavian Purdilaconfig ACPI_CONFIGFS
5160bf54fcdSOctavian Purdila	tristate "ACPI configfs support"
5170bf54fcdSOctavian Purdila	select CONFIGFS_FS
5180bf54fcdSOctavian Purdila	help
5190bf54fcdSOctavian Purdila	  Select this option to enable support for ACPI configuration from
5200bf54fcdSOctavian Purdila	  userspace. The configurable ACPI groups will be visible under
5210bf54fcdSOctavian Purdila	  /config/acpi, assuming configfs is mounted under /config.
5220bf54fcdSOctavian Purdila
5230db89fa2SChen Yuconfig ACPI_PFRUT
5240db89fa2SChen Yu	tristate "ACPI Platform Firmware Runtime Update and Telemetry"
5250db89fa2SChen Yu	depends on 64BIT
5260db89fa2SChen Yu	help
5270db89fa2SChen Yu	  This mechanism allows certain pieces of the platform firmware
5280db89fa2SChen Yu	  to be updated on the fly while the system is running (runtime)
5290db89fa2SChen Yu	  without the need to restart it, which is key in the cases when
5300db89fa2SChen Yu	  the system needs to be available 100% of the time and it cannot
5310db89fa2SChen Yu	  afford the downtime related to restarting it, or when the work
5320db89fa2SChen Yu	  carried out by the system is particularly important, so it cannot
5330db89fa2SChen Yu	  be interrupted, and it is not practical to wait until it is complete.
5340db89fa2SChen Yu
5350db89fa2SChen Yu	  The existing firmware code can be modified (driver update) or
5360db89fa2SChen Yu	  extended by adding new code to the firmware (code injection).
5370db89fa2SChen Yu
538b0013e03SChen Yu	  Besides, the telemetry driver allows user space to fetch telemetry
539b0013e03SChen Yu	  data from the firmware with the help of the Platform Firmware Runtime
540b0013e03SChen Yu	  Telemetry interface.
541b0013e03SChen Yu
542b0013e03SChen Yu	  To compile the drivers as modules, choose M here:
543b0013e03SChen Yu	  the modules will be called pfr_update and pfr_telemetry.
5440db89fa2SChen Yu
54588ef16d8STomasz Nowickiif ARM64
54688ef16d8STomasz Nowickisource "drivers/acpi/arm64/Kconfig"
547f6f0c9a7SHuacai Chenendif
5480ce82232SJeremy Linton
5490ce82232SJeremy Lintonconfig ACPI_PPTT
5500ce82232SJeremy Linton	bool
55188ef16d8STomasz Nowicki
55277e2a047SSudeep Hollaconfig ACPI_PCC
55377e2a047SSudeep Holla	bool "ACPI PCC Address Space"
55477e2a047SSudeep Holla	depends on PCC
55577e2a047SSudeep Holla	default y
55677e2a047SSudeep Holla	help
55777e2a047SSudeep Holla	  The PCC Address Space also referred as PCC Operation Region pertains
55877e2a047SSudeep Holla	  to the region of PCC subspace that succeeds the PCC signature.
55977e2a047SSudeep Holla
56077e2a047SSudeep Holla	  The PCC Operation Region works in conjunction with the PCC Table
56177e2a047SSudeep Holla	  (Platform Communications Channel Table). PCC subspaces that are
56277e2a047SSudeep Holla	  marked for use as PCC Operation Regions must not be used as PCC
56377e2a047SSudeep Holla	  subspaces for the standard ACPI features such as CPPC, RASF, PDTT and
56477e2a047SSudeep Holla	  MPST. These standard features must always use the PCC Table instead.
56577e2a047SSudeep Holla
56677e2a047SSudeep Holla	  Enable this feature if you want to set up and install the PCC Address
56777e2a047SSudeep Holla	  Space handler to handle PCC OpRegion in the firmware.
56877e2a047SSudeep Holla
569e81c782cSSudeep Hollaconfig ACPI_FFH
570e81c782cSSudeep Holla	bool "ACPI FFH Address Space"
571e81c782cSSudeep Holla	default n
572e81c782cSSudeep Holla	help
573e81c782cSSudeep Holla	  The FFH(Fixed Function Hardware) Address Space also referred as FFH
574e81c782cSSudeep Holla	  Operation Region allows to define platform specific opregion.
575e81c782cSSudeep Holla
576e81c782cSSudeep Holla	  Enable this feature if you want to set up and install the FFH Address
577e81c782cSSudeep Holla	  Space handler to handle FFH OpRegion in the firmware.
578e81c782cSSudeep Holla
579fa870509SAndy Shevchenkosource "drivers/acpi/pmic/Kconfig"
580fa870509SAndy Shevchenko
5813cf48554SJean-Philippe Bruckerconfig ACPI_VIOT
5823cf48554SJean-Philippe Brucker	bool
5833cf48554SJean-Philippe Brucker
584e3435fffSSudeep Hollaconfig ACPI_PRMT
585e3435fffSSudeep Holla	bool "Platform Runtime Mechanism Support"
5865894cf57SArd Biesheuvel	depends on EFI_RUNTIME_WRAPPERS && (X86_64 || ARM64)
587e3435fffSSudeep Holla	default y
588e3435fffSSudeep Holla	help
589e3435fffSSudeep Holla	  Platform Runtime Mechanism (PRM) is a firmware interface exposing a
590e3435fffSSudeep Holla	  set of binary executables that can be called from the AML interpreter
591e3435fffSSudeep Holla	  or directly from device drivers.
592e3435fffSSudeep Holla
593e3435fffSSudeep Holla	  Say Y to enable the AML interpreter to execute the PRM code.
594e3435fffSSudeep Holla
595e3435fffSSudeep Holla	  While this feature is optional in principle, leaving it out may
596e3435fffSSudeep Holla	  substantially increase computational overhead related to the
597e3435fffSSudeep Holla	  initialization of some server systems.
598e3435fffSSudeep Holla
5991da177e4SLinus Torvaldsendif	# ACPI
60087e65d05SJan Kiszka
60187e65d05SJan Kiszkaconfig X86_PM_TIMER
60287e65d05SJan Kiszka	bool "Power Management Timer Support" if EXPERT
60387e65d05SJan Kiszka	depends on X86 && (ACPI || JAILHOUSE_GUEST)
60487e65d05SJan Kiszka	default y
60587e65d05SJan Kiszka	help
60687e65d05SJan Kiszka	  The Power Management Timer is available on all ACPI-capable,
60787e65d05SJan Kiszka	  in most cases even if ACPI is unusable or blacklisted.
60887e65d05SJan Kiszka
60987e65d05SJan Kiszka	  This timing source is not affected by power management features
61087e65d05SJan Kiszka	  like aggressive processor idling, throttling, frequency and/or
61187e65d05SJan Kiszka	  voltage scaling, unlike the commonly used Time Stamp Counter
61287e65d05SJan Kiszka	  (TSC) timing source.
61387e65d05SJan Kiszka
61487e65d05SJan Kiszka	  You should nearly always say Y here because many modern
61587e65d05SJan Kiszka	  systems require this timer.
616