xref: /linux/drivers/acpi/Kconfig (revision a8ab8ef437d48173e166f1f44f202097e91bf81c)
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
152c870e61SArnd Bergmann	default y if X86
161c48aa36SBjorn Helgaas	help
171da177e4SLinus Torvalds	  Advanced Configuration and Power Interface (ACPI) support for
181c48aa36SBjorn Helgaas	  Linux requires an ACPI-compliant platform (hardware/firmware),
191da177e4SLinus Torvalds	  and assumes the presence of OS-directed configuration and power
201da177e4SLinus Torvalds	  management (OSPM) software.  This option will enlarge your
211da177e4SLinus Torvalds	  kernel by about 70K.
221da177e4SLinus Torvalds
231da177e4SLinus Torvalds	  Linux ACPI provides a robust functional replacement for several
241da177e4SLinus Torvalds	  legacy configuration and power management interfaces, including
251da177e4SLinus Torvalds	  the Plug-and-Play BIOS specification (PnP BIOS), the
261da177e4SLinus Torvalds	  MultiProcessor Specification (MPS), and the Advanced Power
271da177e4SLinus Torvalds	  Management (APM) specification.  If both ACPI and APM support
281c48aa36SBjorn Helgaas	  are configured, ACPI is used.
291da177e4SLinus Torvalds
301c48aa36SBjorn Helgaas	  The project home page for the Linux ACPI subsystem is here:
31aaf3d29fSRafael J. Wysocki	  <https://01.org/linux-acpi>
321da177e4SLinus Torvalds
331da177e4SLinus Torvalds	  Linux support for ACPI is based on Intel Corporation's ACPI
341c48aa36SBjorn Helgaas	  Component Architecture (ACPI CA).  For more information on the
351c48aa36SBjorn Helgaas	  ACPI CA, see:
364ce77966SAlexander A. Klimov	  <https://acpica.org/>
371da177e4SLinus Torvalds
38c7f5220dSHanjun Guo	  ACPI is an open industry specification originally co-developed by
39c7f5220dSHanjun Guo	  Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
40c7f5220dSHanjun Guo	  it is developed by the ACPI Specification Working Group (ASWG) under
41c7f5220dSHanjun Guo	  the UEFI Forum and any UEFI member can join the ASWG and contribute
42c7f5220dSHanjun Guo	  to the ACPI specification.
431c48aa36SBjorn Helgaas	  The specification is available at:
440585c1c0STiezhu Yang	  <https://uefi.org/specifications>
451da177e4SLinus Torvalds
463e11c3ceSLen Brownif ACPI
473e11c3ceSLen Brown
488a1664beSGraeme Gregoryconfig ACPI_LEGACY_TABLES_LOOKUP
498a1664beSGraeme Gregory	bool
508a1664beSGraeme Gregory
5146ba51eaSHanjun Guoconfig ARCH_MIGHT_HAVE_ACPI_PDC
5246ba51eaSHanjun Guo	bool
5346ba51eaSHanjun Guo
54d8f4f161SLorenzo Pieralisiconfig ACPI_GENERIC_GSI
55d8f4f161SLorenzo Pieralisi	bool
56d8f4f161SLorenzo Pieralisi
576e0a0ea1SGraeme Gregoryconfig ACPI_SYSTEM_POWER_STATES_SUPPORT
586e0a0ea1SGraeme Gregory	bool
596e0a0ea1SGraeme Gregory
60d0562674SSuthikulpanit, Suraveeconfig ACPI_CCA_REQUIRED
61d0562674SSuthikulpanit, Suravee	bool
62d0562674SSuthikulpanit, Suravee
63f64bd790SDan Williamsconfig ACPI_TABLE_LIB
64f64bd790SDan Williams	bool
65f64bd790SDan Williams
664d946f79SLv Zhengconfig ACPI_DEBUGGER
678cfb0cdfSLv Zheng	bool "AML debugger interface"
684d946f79SLv Zheng	select ACPI_DEBUG
694d946f79SLv Zheng	help
70836d0830SLv Zheng	  Enable in-kernel debugging of AML facilities: statistics,
71836d0830SLv Zheng	  internal object dump, single step control method execution.
724d946f79SLv Zheng	  This is still under development, currently enabling this only
734d946f79SLv Zheng	  results in the compilation of the ACPICA debugger files.
744d946f79SLv Zheng
75836d0830SLv Zhengif ACPI_DEBUGGER
76836d0830SLv Zheng
77836d0830SLv Zhengconfig ACPI_DEBUGGER_USER
78c117dfffSMasanari Iida	tristate "Userspace debugger accessibility"
79836d0830SLv Zheng	depends on DEBUG_FS
80836d0830SLv Zheng	help
81836d0830SLv Zheng	  Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
82836d0830SLv Zheng	  to access the debugger functionalities.
83836d0830SLv Zheng
84836d0830SLv Zhengendif
85836d0830SLv Zheng
86ad1696f6SAleksey Makarovconfig ACPI_SPCR_TABLE
870231d000SPrarit Bhargava	bool "ACPI Serial Port Console Redirection Support"
880231d000SPrarit Bhargava	default y if X86
890231d000SPrarit Bhargava	help
900231d000SPrarit Bhargava	  Enable support for Serial Port Console Redirection (SPCR) Table.
910231d000SPrarit Bhargava	  This table provides information about the configuration of the
920231d000SPrarit Bhargava	  earlycon console.
93ad1696f6SAleksey Makarov
94d1eb86e5SZhang Ruiconfig ACPI_FPDT
95d1eb86e5SZhang Rui	bool "ACPI Firmware Performance Data Table (FPDT) support"
96d1eb86e5SZhang Rui	depends on X86_64
97d1eb86e5SZhang Rui	help
98d1eb86e5SZhang Rui	  Enable support for the Firmware Performance Data Table (FPDT).
99d1eb86e5SZhang Rui	  This table provides information on the timing of the system
100d1eb86e5SZhang Rui	  boot, S3 suspend and S3 resume firmware code paths.
101d1eb86e5SZhang Rui
102eeb2d80dSSrinivas Pandruvadaconfig ACPI_LPIT
103eeb2d80dSSrinivas Pandruvada	bool
104eeb2d80dSSrinivas Pandruvada	depends on X86_64
105eeb2d80dSSrinivas Pandruvada	default y
106eeb2d80dSSrinivas Pandruvada
107673d5b43SLen Brownconfig ACPI_SLEEP
108673d5b43SLen Brown	bool
1095d1e072bSRafael J. Wysocki	depends on SUSPEND || HIBERNATION
1106e0a0ea1SGraeme Gregory	depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
111673d5b43SLen Brown	default y
112673d5b43SLen Brown
11318d78b64SRafael J. Wysockiconfig ACPI_REV_OVERRIDE_POSSIBLE
1149165dabbSMasanari Iida	bool "Allow supported ACPI revision to be overridden"
11518d78b64SRafael J. Wysocki	depends on X86
11618d78b64SRafael J. Wysocki	default y
11718d78b64SRafael J. Wysocki	help
11818d78b64SRafael J. Wysocki	  The platform firmware on some systems expects Linux to return "5" as
11918d78b64SRafael J. Wysocki	  the supported ACPI revision which makes it expose system configuration
12018d78b64SRafael J. Wysocki	  information in a special way.
12118d78b64SRafael J. Wysocki
12218d78b64SRafael J. Wysocki	  For example, based on what ACPI exports as the supported revision,
12318d78b64SRafael J. Wysocki	  Dell XPS 13 (2015) configures its audio device to either work in HDA
12418d78b64SRafael J. Wysocki	  mode or in I2S mode, where the former is supposed to be used on Linux
12518d78b64SRafael J. Wysocki	  until the latter is fully supported (in the kernel as well as in user
12618d78b64SRafael J. Wysocki	  space).
12718d78b64SRafael J. Wysocki
12818d78b64SRafael J. Wysocki	  This option enables a DMI-based quirk for the above Dell machine (so
12918d78b64SRafael J. Wysocki	  that HDA audio is exposed by the platform firmware to the kernel) and
13018d78b64SRafael J. Wysocki	  makes it possible to force the kernel to return "5" as the supported
13118d78b64SRafael J. Wysocki	  ACPI revision via the "acpi_rev_override" command line switch.
13218d78b64SRafael J. Wysocki
1331195a098SThomas Renningerconfig ACPI_EC_DEBUGFS
1341195a098SThomas Renninger	tristate "EC read/write access through /sys/kernel/debug/ec"
1351195a098SThomas Renninger	help
1361195a098SThomas Renninger	  Say N to disable Embedded Controller /sys/kernel/debug interface
1371195a098SThomas Renninger
138500de3ddSThomas Renninger	  Be aware that using this interface can confuse your Embedded
139500de3ddSThomas Renninger	  Controller in a way that a normal reboot is not enough. You then
14025cb1bfdSAndrea Gelmini	  have to power off your system, and remove the laptop battery for
141500de3ddSThomas Renninger	  some seconds.
1421195a098SThomas Renninger	  An Embedded Controller typically is available on laptops and reads
1431195a098SThomas Renninger	  sensor values like battery state and temperature.
144500de3ddSThomas Renninger	  The kernel accesses the EC through ACPI parsed code provided by BIOS
145500de3ddSThomas Renninger	  tables. This option allows to access the EC directly without ACPI
146500de3ddSThomas Renninger	  code being involved.
1471195a098SThomas Renninger	  Thus this option is a debug option that helps to write ACPI drivers
1481195a098SThomas Renninger	  and can be used to identify ACPI code or EC firmware bugs.
1491195a098SThomas Renninger
1501da177e4SLinus Torvaldsconfig ACPI_AC
1511da177e4SLinus Torvalds	tristate "AC Adapter"
1521b3d4c3bSZhang Rui	select POWER_SUPPLY
15307fefe4cSLen Brown	default y
1541da177e4SLinus Torvalds	help
1551c48aa36SBjorn Helgaas	  This driver supports the AC Adapter object, which indicates
1561c48aa36SBjorn Helgaas	  whether a system is on AC or not.  If you have a system that can
15707fefe4cSLen Brown	  switch between A/C and battery, say Y.
1581da177e4SLinus Torvalds
1591c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1601c48aa36SBjorn Helgaas	  the module will be called ac.
1611c48aa36SBjorn Helgaas
1621da177e4SLinus Torvaldsconfig ACPI_BATTERY
1631da177e4SLinus Torvalds	tristate "Battery"
1641b3d4c3bSZhang Rui	select POWER_SUPPLY
16507fefe4cSLen Brown	default y
1661da177e4SLinus Torvalds	help
1671da177e4SLinus Torvalds	  This driver adds support for battery information through
1681da177e4SLinus Torvalds	  /proc/acpi/battery. If you have a mobile system with a battery,
1691da177e4SLinus Torvalds	  say Y.
1701da177e4SLinus Torvalds
1711c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1721c48aa36SBjorn Helgaas	  the module will be called battery.
1731c48aa36SBjorn Helgaas
1741da177e4SLinus Torvaldsconfig ACPI_BUTTON
1751da177e4SLinus Torvalds	tristate "Button"
176c0968f0eSDmitry Torokhov	depends on INPUT
17707fefe4cSLen Brown	default y
1781da177e4SLinus Torvalds	help
1791c48aa36SBjorn Helgaas	  This driver handles events on the power, sleep, and lid buttons.
1807d13f94cSKrzysztof Mazur	  A daemon reads events from input devices or via netlink and
1817d13f94cSKrzysztof Mazur	  performs user-defined actions such as shutting down the system.
1827d13f94cSKrzysztof Mazur	  This is necessary for software-controlled poweroff.
1831c48aa36SBjorn Helgaas
1841c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1851c48aa36SBjorn Helgaas	  the module will be called button.
1861da177e4SLinus Torvalds
187a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON
188a1b93e89SJosh Triplett	tristate "Tiny Power Button Driver"
189a1b93e89SJosh Triplett	depends on !ACPI_BUTTON
190a1b93e89SJosh Triplett	help
191a1b93e89SJosh Triplett	  This driver provides a tiny alternative to the ACPI Button driver.
192a1b93e89SJosh Triplett	  The tiny power button driver only handles the power button. Rather
193a1b93e89SJosh Triplett	  than notifying userspace via the input layer or a netlink event, this
194a1b93e89SJosh Triplett	  driver directly signals the init process to shut down.
195a1b93e89SJosh Triplett
196a1b93e89SJosh Triplett	  This driver is particularly suitable for cloud and VM environments,
197a1b93e89SJosh Triplett	  which use a simulated power button to initiate a controlled poweroff,
198a1b93e89SJosh Triplett	  but which may not want to run a separate userspace daemon to process
199a1b93e89SJosh Triplett	  input events.
200a1b93e89SJosh Triplett
201a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON_SIGNAL
202a1b93e89SJosh Triplett	int "Tiny Power Button Signal"
203a1b93e89SJosh Triplett	depends on ACPI_TINY_POWER_BUTTON
204a1b93e89SJosh Triplett	default 38
205a1b93e89SJosh Triplett	help
206a1b93e89SJosh Triplett	  Default signal to send to init in response to the power button.
207a1b93e89SJosh Triplett
208a1b93e89SJosh Triplett	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
209a1b93e89SJosh Triplett	  (SIGINT) to simulate Ctrl+Alt+Del.
210a1b93e89SJosh Triplett
2111da177e4SLinus Torvaldsconfig ACPI_VIDEO
2121da177e4SLinus Torvalds	tristate "Video"
2139f380fc5SJean Delvare	depends on X86 && BACKLIGHT_CLASS_DEVICE
21403e2bf26SAndreas Herrmann	depends on INPUT
21563c4ec90SZhang Rui	select THERMAL
2161da177e4SLinus Torvalds	help
2171c48aa36SBjorn Helgaas	  This driver implements the ACPI Extensions For Display Adapters
2181da177e4SLinus Torvalds	  for integrated graphics devices on motherboard, as specified in
2191c48aa36SBjorn Helgaas	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
2201c48aa36SBjorn Helgaas	  such as defining the video POST device, retrieving EDID information,
2211c48aa36SBjorn Helgaas	  and setting up a video output.
2221c48aa36SBjorn Helgaas
2231c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2241c48aa36SBjorn Helgaas	  the module will be called video.
2251da177e4SLinus Torvalds
2261da177e4SLinus Torvaldsconfig ACPI_FAN
2271da177e4SLinus Torvalds	tristate "Fan"
228d8054749SZhang Rui	depends on THERMAL
22907fefe4cSLen Brown	default y
2301da177e4SLinus Torvalds	help
2311c48aa36SBjorn Helgaas	  This driver supports ACPI fan devices, allowing user-mode
2321da177e4SLinus Torvalds	  applications to perform basic fan control (on, off, status).
2331da177e4SLinus Torvalds
2341c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2351c48aa36SBjorn Helgaas	  the module will be called fan.
2361c48aa36SBjorn Helgaas
23795c513ecSRafael J. Wysockiconfig ACPI_TAD
23895c513ecSRafael J. Wysocki	tristate "ACPI Time and Alarm (TAD) Device Support"
23995c513ecSRafael J. Wysocki	depends on SYSFS && PM_SLEEP
24095c513ecSRafael J. Wysocki	help
24195c513ecSRafael J. Wysocki	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
24295c513ecSRafael J. Wysocki	  Time Clock (RTC).  Its wake timers allow the system to transition from
24395c513ecSRafael J. Wysocki	  the S3 (or optionally S4/S5) state to S0 state after a time period
24495c513ecSRafael J. Wysocki	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
24595c513ecSRafael J. Wysocki	  scale of flexibility in the wake timers.  The time capabilities of the
24695c513ecSRafael J. Wysocki	  TAD maintain the time of day information across platform power
24795c513ecSRafael J. Wysocki	  transitions, and keep track of time even when the platform is turned
24895c513ecSRafael J. Wysocki	  off.
24995c513ecSRafael J. Wysocki
250c8f7a62cSLen Brownconfig ACPI_DOCK
251898b054fSShaohua Li	bool "Dock"
252c8f7a62cSLen Brown	help
2531c48aa36SBjorn Helgaas	  This driver supports ACPI-controlled docking stations and removable
2541c48aa36SBjorn Helgaas	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
25501b57e73SKristen Carlson Accardi
256239708a3SAshwin Chauguleconfig ACPI_CPU_FREQ_PSS
257239708a3SAshwin Chaugule	bool
258239708a3SAshwin Chaugule	select THERMAL
259239708a3SAshwin Chaugule
26035ae7133SSudeep Hollaconfig ACPI_PROCESSOR_CSTATE
26135ae7133SSudeep Holla	def_bool y
262239ed06dSRafael J. Wysocki	depends on ACPI_PROCESSOR
26335ae7133SSudeep Holla	depends on IA64 || X86
26435ae7133SSudeep Holla
2655f05586cSAshwin Chauguleconfig ACPI_PROCESSOR_IDLE
2665f05586cSAshwin Chaugule	bool
2675f05586cSAshwin Chaugule	select CPU_IDLE
2685f05586cSAshwin Chaugule
269935c760eSTomasz Nowickiconfig ACPI_MCFG
270935c760eSTomasz Nowicki	bool
271935c760eSTomasz Nowicki
272337aadffSAshwin Chauguleconfig ACPI_CPPC_LIB
273337aadffSAshwin Chaugule	bool
274337aadffSAshwin Chaugule	depends on ACPI_PROCESSOR
275337aadffSAshwin Chaugule	select MAILBOX
276337aadffSAshwin Chaugule	select PCC
277337aadffSAshwin Chaugule	help
278337aadffSAshwin Chaugule	  If this option is enabled, this file implements common functionality
279337aadffSAshwin Chaugule	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
280337aadffSAshwin Chaugule	  routines implemented are meant to be used by other
281337aadffSAshwin Chaugule	  drivers to control CPU performance using CPPC semantics.
282337aadffSAshwin Chaugule	  If your platform does not support CPPC in firmware,
283337aadffSAshwin Chaugule	  leave this option disabled.
284337aadffSAshwin Chaugule
2851da177e4SLinus Torvaldsconfig ACPI_PROCESSOR
2861da177e4SLinus Torvalds	tristate "Processor"
287b1121e2aSHuacai Chen	depends on X86 || IA64 || ARM64 || LOONGARCH
2888fc85c6aSSudeep Holla	select ACPI_PROCESSOR_IDLE
289b1121e2aSHuacai Chen	select ACPI_CPU_FREQ_PSS if X86 || IA64 || LOONGARCH
29007fefe4cSLen Brown	default y
2911da177e4SLinus Torvalds	help
292239708a3SAshwin Chaugule	  This driver adds support for the ACPI Processor package. It is required
293239708a3SAshwin Chaugule	  by several flavors of cpufreq performance-state, thermal, throttling and
294239708a3SAshwin Chaugule	  idle drivers.
2951c48aa36SBjorn Helgaas
2961c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2971c48aa36SBjorn Helgaas	  the module will be called processor.
2984b88e330SLv Zheng
299e92b297cSZhao Yakuiconfig ACPI_IPMI
300e92b297cSZhao Yakui	tristate "IPMI"
30150121bebSSinan Kaya	depends on IPMI_HANDLER
302e92b297cSZhao Yakui	help
303e92b297cSZhao Yakui	  This driver enables the ACPI to access the BMC controller. And it
304e92b297cSZhao Yakui	  uses the IPMI request/response message to communicate with BMC
305*a8ab8ef4STom Rix	  controller, which can be found on the server.
306e92b297cSZhao Yakui
307e92b297cSZhao Yakui	  To compile this driver as a module, choose M here:
308e92b297cSZhao Yakui	  the module will be called as acpi_ipmi.
3091da177e4SLinus Torvalds
3101da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_CPU
311cbfc1baeSAdrian Bunk	bool
312f756f28bSKees Cook	depends on ACPI_PROCESSOR && HOTPLUG_CPU
3131da177e4SLinus Torvalds	select ACPI_CONTAINER
314cbfc1baeSAdrian Bunk	default y
3151da177e4SLinus Torvalds
3168e0af514SShaohua Liconfig ACPI_PROCESSOR_AGGREGATOR
3178e0af514SShaohua Li	tristate "Processor Aggregator"
3188e0af514SShaohua Li	depends on ACPI_PROCESSOR
319d91f79ebSLen Brown	depends on X86
3208e0af514SShaohua Li	help
3218e0af514SShaohua Li	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
322c4c4e2a5SJiri Slaby	  specific processor configuration and control that applies to all
3238e0af514SShaohua Li	  processors in the platform. Currently only logical processor idling
3248e0af514SShaohua Li	  is defined, which is to reduce power consumption. This driver
325c4c4e2a5SJiri Slaby	  supports the new device.
3268e0af514SShaohua Li
3271da177e4SLinus Torvaldsconfig ACPI_THERMAL
3281da177e4SLinus Torvalds	tristate "Thermal Zone"
3291da177e4SLinus Torvalds	depends on ACPI_PROCESSOR
3303f655ef8SZhang Rui	select THERMAL
33107fefe4cSLen Brown	default y
3321da177e4SLinus Torvalds	help
3331c48aa36SBjorn Helgaas	  This driver supports ACPI thermal zones.  Most mobile and
3341da177e4SLinus Torvalds	  some desktop systems support ACPI thermal zones.  It is HIGHLY
3351da177e4SLinus Torvalds	  recommended that this option be enabled, as your processor(s)
3361da177e4SLinus Torvalds	  may be damaged without it.
3371da177e4SLinus Torvalds
3381c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3391c48aa36SBjorn Helgaas	  the module will be called thermal.
3401c48aa36SBjorn Helgaas
341a2ff95e0SMark Pearsonconfig ACPI_PLATFORM_PROFILE
34221f05a43SMaximilian Luz	tristate
343a2ff95e0SMark Pearson
3447ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT_FILE
3457ce9573eSRandy Dunlap	string "Custom DSDT Table file to include"
3467ce9573eSRandy Dunlap	default ""
3471da177e4SLinus Torvalds	depends on !STANDALONE
3481da177e4SLinus Torvalds	help
349d89e9d6bSLen Brown	  This option supports a custom DSDT by linking it into the kernel.
350cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/dsdt-override.rst
351d89e9d6bSLen Brown
352c30fe7f7SUwe Zeisberger	  Enter the full path name to the file which includes the AmlCode
35382e4eb4eSWang Dongsheng	  or dsdt_aml_code declaration.
3541da177e4SLinus Torvalds
3557ce9573eSRandy Dunlap	  If unsure, don't enter a file name.
3567ce9573eSRandy Dunlap
3577ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT
3587ce9573eSRandy Dunlap	bool
3597ce9573eSRandy Dunlap	default ACPI_CUSTOM_DSDT_FILE != ""
3607ce9573eSRandy Dunlap
36191dda51aSAleksey Makarovconfig ARCH_HAS_ACPI_TABLE_UPGRADE
36291dda51aSAleksey Makarov	def_bool n
36391dda51aSAleksey Makarov
3645d881327SLv Zhengconfig ACPI_TABLE_UPGRADE
3655d881327SLv Zheng	bool "Allow upgrading ACPI tables via initrd"
36691dda51aSAleksey Makarov	depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
3675d881327SLv Zheng	default y
36853aac44cSThomas Renninger	help
3695d881327SLv Zheng	  This option provides functionality to upgrade arbitrary ACPI tables
37053aac44cSThomas Renninger	  via initrd. No functional change if no ACPI tables are passed via
37153aac44cSThomas Renninger	  initrd, therefore it's safe to say Y.
372cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
37353aac44cSThomas Renninger
37498a455d9SShunyong Yangconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
37598a455d9SShunyong Yang	bool "Override ACPI tables from built-in initrd"
37698a455d9SShunyong Yang	depends on ACPI_TABLE_UPGRADE
377d2cbbf1fSRobert Richter	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
37898a455d9SShunyong Yang	help
37998a455d9SShunyong Yang	  This option provides functionality to override arbitrary ACPI tables
38098a455d9SShunyong Yang	  from built-in uncompressed initrd.
38198a455d9SShunyong Yang
382cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
38398a455d9SShunyong Yang
3841da177e4SLinus Torvaldsconfig ACPI_DEBUG
3851da177e4SLinus Torvalds	bool "Debug Statements"
3861da177e4SLinus Torvalds	help
387a0d84a92SBjorn Helgaas	  The ACPI subsystem can produce debug output.  Saying Y enables this
388a0d84a92SBjorn Helgaas	  output and increases the kernel size by around 50K.
389a0d84a92SBjorn Helgaas
390a0d84a92SBjorn Helgaas	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
391cb1aaebeSMauro Carvalho Chehab	  parameters documented in Documentation/firmware-guide/acpi/debug.rst and
3928c27ceffSMauro Carvalho Chehab	  Documentation/admin-guide/kernel-parameters.rst to control the type and
393a0d84a92SBjorn Helgaas	  amount of debug output.
3941da177e4SLinus Torvalds
3958344b568SAlex Chiangconfig ACPI_PCI_SLOT
396ab1a2e03SJiang Liu	bool "PCI slot detection driver"
3975c6a1177SSinan Kaya	depends on SYSFS && PCI
3988344b568SAlex Chiang	help
3991c48aa36SBjorn Helgaas	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
4001c48aa36SBjorn Helgaas	  slots in the system.  This can help correlate PCI bus addresses,
4011c48aa36SBjorn Helgaas	  i.e., segment/bus/device/function tuples, with physical slots in
4021c48aa36SBjorn Helgaas	  the system.  If you are unsure, say N.
4031c48aa36SBjorn Helgaas
4041da177e4SLinus Torvaldsconfig ACPI_CONTAINER
40506991c28SLinus Torvalds	bool "Container and Module Devices"
406ea6a4581SPaul Bolle	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
4071c48aa36SBjorn Helgaas	help
4081c48aa36SBjorn Helgaas	  This driver supports ACPI Container and Module devices (IDs
4091c48aa36SBjorn Helgaas	  ACPI0004, PNP0A05, and PNP0A06).
41045b1b196SKeiichiro Tokunaga
4111c48aa36SBjorn Helgaas	  This helps support hotplug of nodes, CPUs, and memory.
4121c48aa36SBjorn Helgaas
4131da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_MEMORY
4140a347644SRafael J. Wysocki	bool "Memory Hotplug"
415bc02af93SYasunori Goto	depends on MEMORY_HOTPLUG
4161da177e4SLinus Torvalds	help
4171c48aa36SBjorn Helgaas	  This driver supports ACPI memory hotplug.  The driver
4181c48aa36SBjorn Helgaas	  fields notifications on ACPI memory devices (PNP0C80),
4191c48aa36SBjorn Helgaas	  which represent memory ranges that may be onlined or
4201c48aa36SBjorn Helgaas	  offlined during runtime.
4211da177e4SLinus Torvalds
4221c48aa36SBjorn Helgaas	  If your hardware and firmware do not support adding or
4231c48aa36SBjorn Helgaas	  removing memory devices at runtime, you need not enable
4241c48aa36SBjorn Helgaas	  this driver.
4251da177e4SLinus Torvalds
426c183619bSJiang Liuconfig ACPI_HOTPLUG_IOAPIC
427c183619bSJiang Liu	bool
428c183619bSJiang Liu	depends on PCI
429c183619bSJiang Liu	depends on X86_IO_APIC
430c183619bSJiang Liu	default y
431c183619bSJiang Liu
4323f86b832SRich Townsendconfig ACPI_SBS
43394f6c086SAlexey Starikovskiy	tristate "Smart Battery System"
434b4150fc4SVladimir Lebedev	depends on X86
4351b3d4c3bSZhang Rui	select POWER_SUPPLY
4363f86b832SRich Townsend	help
4371c48aa36SBjorn Helgaas	  This driver supports the Smart Battery System, another
43894f6c086SAlexey Starikovskiy	  type of access to battery information, found on some laptops.
4393f86b832SRich Townsend
4401c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4411c48aa36SBjorn Helgaas	  the modules will be called sbs and sbshc.
4421c48aa36SBjorn Helgaas
443801eab81SHuang Yingconfig ACPI_HED
444801eab81SHuang Ying	tristate "Hardware Error Device"
445801eab81SHuang Ying	help
446801eab81SHuang Ying	  This driver supports the Hardware Error Device (PNP0C33),
447801eab81SHuang Ying	  which is used to report some hardware errors notified via
448801eab81SHuang Ying	  SCI, mainly the corrected errors.
449801eab81SHuang Ying
450526b4af4SThomas Renningerconfig ACPI_CUSTOM_METHOD
451526b4af4SThomas Renninger	tristate "Allow ACPI methods to be inserted/replaced at run time"
452526b4af4SThomas Renninger	depends on DEBUG_FS
453526b4af4SThomas Renninger	help
454bd1b2a55SJustin P. Mattock	  This debug facility allows ACPI AML methods to be inserted and/or
455526b4af4SThomas Renninger	  replaced without rebooting the system. For details refer to:
456cb1aaebeSMauro Carvalho Chehab	  Documentation/firmware-guide/acpi/method-customizing.rst.
457526b4af4SThomas Renninger
458526b4af4SThomas Renninger	  NOTE: This option is security sensitive, because it allows arbitrary
459526b4af4SThomas Renninger	  kernel memory to be written to by root (uid=0) users, allowing them
460526b4af4SThomas Renninger	  to bypass certain security measures (e.g. if root is not allowed to
461526b4af4SThomas Renninger	  load additional kernel modules after boot, this feature may be used
462526b4af4SThomas Renninger	  to override that restriction).
463526b4af4SThomas Renninger
464d1ff4b1cSMatthew Garrettconfig ACPI_BGRT
4652223af38SJosh Triplett	bool "Boottime Graphics Resource Table support"
4666e7300cfSBhupesh Sharma	depends on EFI && (X86 || ARM64)
467d1ff4b1cSMatthew Garrett	help
468d1ff4b1cSMatthew Garrett	  This driver adds support for exposing the ACPI Boottime Graphics
469d1ff4b1cSMatthew Garrett	  Resource Table, which allows the operating system to obtain
470d1ff4b1cSMatthew Garrett	  data from the firmware boot splash. It will appear under
471d1ff4b1cSMatthew Garrett	  /sys/firmware/acpi/bgrt/ .
472d1ff4b1cSMatthew Garrett
473af1ae78aSAl Stoneconfig ACPI_REDUCED_HARDWARE_ONLY
474af1ae78aSAl Stone	bool "Hardware-reduced ACPI support only" if EXPERT
475af1ae78aSAl Stone	def_bool n
476af1ae78aSAl Stone	help
477af1ae78aSAl Stone	  This config item changes the way the ACPI code is built.  When this
478af1ae78aSAl Stone	  option is selected, the kernel will use a specialized version of
479af1ae78aSAl Stone	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
480af1ae78aSAl Stone	  resulting kernel will be smaller but it will also be restricted to
481af1ae78aSAl Stone	  running in ACPI reduced hardware mode ONLY.
482af1ae78aSAl Stone
483af1ae78aSAl Stone	  If you are unsure what to do, do not enable this option.
484af1ae78aSAl Stone
485bdf97013SDan Williamssource "drivers/acpi/nfit/Kconfig"
486c710fcc5SDan Williamssource "drivers/acpi/numa/Kconfig"
487a643ce20SHuang Yingsource "drivers/acpi/apei/Kconfig"
4886256ebd5SSrinivas Pandruvadasource "drivers/acpi/dptf/Kconfig"
489a643ce20SHuang Ying
490058dfc76SMika Westerbergconfig ACPI_WATCHDOG
491058dfc76SMika Westerberg	bool
492058dfc76SMika Westerberg
4934b3db708SChen, Gongconfig ACPI_EXTLOG
4944b3db708SChen, Gong	tristate "Extended Error Log support"
4959613916bSBorislav Petkov	depends on X86_MCE && X86_LOCAL_APIC && EDAC
4967ea6c6c1SLuck, Tony	select UEFI_CPER
4974b3db708SChen, Gong	help
4984b3db708SChen, Gong	  Certain usages such as Predictive Failure Analysis (PFA) require
4994b3db708SChen, Gong	  more information about the error than what can be described in
5004b3db708SChen, Gong	  processor machine check banks. Most server processors log
5014b3db708SChen, Gong	  additional information about the error in processor uncore
5024b3db708SChen, Gong	  registers. Since the addresses and layout of these registers vary
5034b3db708SChen, Gong	  widely from one processor to another, system software cannot
5044b3db708SChen, Gong	  readily make use of them. To complicate matters further, some of
5054b3db708SChen, Gong	  the additional error information cannot be constructed without
5064b3db708SChen, Gong	  detailed knowledge about platform topology.
5074b3db708SChen, Gong
5084b3db708SChen, Gong	  Enhanced MCA Logging allows firmware to provide additional error
5094b3db708SChen, Gong	  information to system software, synchronous with MCE or CMCI. This
5102dfb7d51SChen, Gong	  driver adds support for that functionality with corresponding
5112dfb7d51SChen, Gong	  tracepoint which carries that information to userspace.
5124b3db708SChen, Gong
5134cf841e3STony Luckconfig ACPI_ADXL
5144cf841e3STony Luck	bool
5154cf841e3STony Luck
5160bf54fcdSOctavian Purdilaconfig ACPI_CONFIGFS
5170bf54fcdSOctavian Purdila	tristate "ACPI configfs support"
5180bf54fcdSOctavian Purdila	select CONFIGFS_FS
5190bf54fcdSOctavian Purdila	help
5200bf54fcdSOctavian Purdila	  Select this option to enable support for ACPI configuration from
5210bf54fcdSOctavian Purdila	  userspace. The configurable ACPI groups will be visible under
5220bf54fcdSOctavian Purdila	  /config/acpi, assuming configfs is mounted under /config.
5230bf54fcdSOctavian Purdila
5240db89fa2SChen Yuconfig ACPI_PFRUT
5250db89fa2SChen Yu	tristate "ACPI Platform Firmware Runtime Update and Telemetry"
5260db89fa2SChen Yu	depends on 64BIT
5270db89fa2SChen Yu	help
5280db89fa2SChen Yu	  This mechanism allows certain pieces of the platform firmware
5290db89fa2SChen Yu	  to be updated on the fly while the system is running (runtime)
5300db89fa2SChen Yu	  without the need to restart it, which is key in the cases when
5310db89fa2SChen Yu	  the system needs to be available 100% of the time and it cannot
5320db89fa2SChen Yu	  afford the downtime related to restarting it, or when the work
5330db89fa2SChen Yu	  carried out by the system is particularly important, so it cannot
5340db89fa2SChen Yu	  be interrupted, and it is not practical to wait until it is complete.
5350db89fa2SChen Yu
5360db89fa2SChen Yu	  The existing firmware code can be modified (driver update) or
5370db89fa2SChen Yu	  extended by adding new code to the firmware (code injection).
5380db89fa2SChen Yu
539b0013e03SChen Yu	  Besides, the telemetry driver allows user space to fetch telemetry
540b0013e03SChen Yu	  data from the firmware with the help of the Platform Firmware Runtime
541b0013e03SChen Yu	  Telemetry interface.
542b0013e03SChen Yu
543b0013e03SChen Yu	  To compile the drivers as modules, choose M here:
544b0013e03SChen Yu	  the modules will be called pfr_update and pfr_telemetry.
5450db89fa2SChen Yu
54688ef16d8STomasz Nowickiif ARM64
54788ef16d8STomasz Nowickisource "drivers/acpi/arm64/Kconfig"
5480ce82232SJeremy Linton
5490ce82232SJeremy Lintonconfig ACPI_PPTT
5500ce82232SJeremy Linton	bool
55188ef16d8STomasz Nowickiendif
55288ef16d8STomasz Nowicki
55377e2a047SSudeep Hollaconfig ACPI_PCC
55477e2a047SSudeep Holla	bool "ACPI PCC Address Space"
55577e2a047SSudeep Holla	depends on PCC
55677e2a047SSudeep Holla	default y
55777e2a047SSudeep Holla	help
55877e2a047SSudeep Holla	  The PCC Address Space also referred as PCC Operation Region pertains
55977e2a047SSudeep Holla	  to the region of PCC subspace that succeeds the PCC signature.
56077e2a047SSudeep Holla
56177e2a047SSudeep Holla	  The PCC Operation Region works in conjunction with the PCC Table
56277e2a047SSudeep Holla	  (Platform Communications Channel Table). PCC subspaces that are
56377e2a047SSudeep Holla	  marked for use as PCC Operation Regions must not be used as PCC
56477e2a047SSudeep Holla	  subspaces for the standard ACPI features such as CPPC, RASF, PDTT and
56577e2a047SSudeep Holla	  MPST. These standard features must always use the PCC Table instead.
56677e2a047SSudeep Holla
56777e2a047SSudeep Holla	  Enable this feature if you want to set up and install the PCC Address
56877e2a047SSudeep Holla	  Space handler to handle PCC OpRegion in the firmware.
56977e2a047SSudeep Holla
570fa870509SAndy Shevchenkosource "drivers/acpi/pmic/Kconfig"
571fa870509SAndy Shevchenko
5723cf48554SJean-Philippe Bruckerconfig ACPI_VIOT
5733cf48554SJean-Philippe Brucker	bool
5743cf48554SJean-Philippe Brucker
5751da177e4SLinus Torvaldsendif	# ACPI
57687e65d05SJan Kiszka
57787e65d05SJan Kiszkaconfig X86_PM_TIMER
57887e65d05SJan Kiszka	bool "Power Management Timer Support" if EXPERT
57987e65d05SJan Kiszka	depends on X86 && (ACPI || JAILHOUSE_GUEST)
58087e65d05SJan Kiszka	default y
58187e65d05SJan Kiszka	help
58287e65d05SJan Kiszka	  The Power Management Timer is available on all ACPI-capable,
58387e65d05SJan Kiszka	  in most cases even if ACPI is unusable or blacklisted.
58487e65d05SJan Kiszka
58587e65d05SJan Kiszka	  This timing source is not affected by power management features
58687e65d05SJan Kiszka	  like aggressive processor idling, throttling, frequency and/or
58787e65d05SJan Kiszka	  voltage scaling, unlike the commonly used Time Stamp Counter
58887e65d05SJan Kiszka	  (TSC) timing source.
58987e65d05SJan Kiszka
59087e65d05SJan Kiszka	  You should nearly always say Y here because many modern
59187e65d05SJan Kiszka	  systems require this timer.
592cefc7ca4SErik Kaneda
593cefc7ca4SErik Kanedaconfig ACPI_PRMT
594cefc7ca4SErik Kaneda	bool "Platform Runtime Mechanism Support"
595cefc7ca4SErik Kaneda	depends on EFI && X86_64
596cefc7ca4SErik Kaneda	default y
5979b52363bSRafael J. Wysocki	help
5989b52363bSRafael J. Wysocki	  Platform Runtime Mechanism (PRM) is a firmware interface exposing a
5999b52363bSRafael J. Wysocki	  set of binary executables that can be called from the AML interpreter
6009b52363bSRafael J. Wysocki	  or directly from device drivers.
6019b52363bSRafael J. Wysocki
6029b52363bSRafael J. Wysocki	  Say Y to enable the AML interpreter to execute the PRM code.
6039b52363bSRafael J. Wysocki
6049b52363bSRafael J. Wysocki	  While this feature is optional in principle, leaving it out may
6059b52363bSRafael J. Wysocki	  substantially increase computational overhead related to the
6069b52363bSRafael J. Wysocki	  initialization of some server systems.
607