xref: /openbmc/linux/drivers/acpi/Kconfig (revision 5894cf57)
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
301da177e4SLinus Torvalds	  Linux support for ACPI is based on Intel Corporation's ACPI
311c48aa36SBjorn Helgaas	  Component Architecture (ACPI CA).  For more information on the
321c48aa36SBjorn Helgaas	  ACPI CA, see:
334ce77966SAlexander A. Klimov	  <https://acpica.org/>
341da177e4SLinus Torvalds
35c7f5220dSHanjun Guo	  ACPI is an open industry specification originally co-developed by
36c7f5220dSHanjun Guo	  Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
37c7f5220dSHanjun Guo	  it is developed by the ACPI Specification Working Group (ASWG) under
38c7f5220dSHanjun Guo	  the UEFI Forum and any UEFI member can join the ASWG and contribute
39c7f5220dSHanjun Guo	  to the ACPI specification.
401c48aa36SBjorn Helgaas	  The specification is available at:
410585c1c0STiezhu Yang	  <https://uefi.org/specifications>
421da177e4SLinus Torvalds
433e11c3ceSLen Brownif ACPI
443e11c3ceSLen Brown
458a1664beSGraeme Gregoryconfig ACPI_LEGACY_TABLES_LOOKUP
468a1664beSGraeme Gregory	bool
478a1664beSGraeme Gregory
4846ba51eaSHanjun Guoconfig ARCH_MIGHT_HAVE_ACPI_PDC
4946ba51eaSHanjun Guo	bool
5046ba51eaSHanjun Guo
51d8f4f161SLorenzo Pieralisiconfig ACPI_GENERIC_GSI
52d8f4f161SLorenzo Pieralisi	bool
53d8f4f161SLorenzo Pieralisi
546e0a0ea1SGraeme Gregoryconfig ACPI_SYSTEM_POWER_STATES_SUPPORT
556e0a0ea1SGraeme Gregory	bool
566e0a0ea1SGraeme Gregory
57d0562674SSuthikulpanit, Suraveeconfig ACPI_CCA_REQUIRED
58d0562674SSuthikulpanit, Suravee	bool
59d0562674SSuthikulpanit, Suravee
60f64bd790SDan Williamsconfig ACPI_TABLE_LIB
61f64bd790SDan Williams	bool
62f64bd790SDan Williams
634d946f79SLv Zhengconfig ACPI_DEBUGGER
648cfb0cdfSLv Zheng	bool "AML debugger interface"
654d946f79SLv Zheng	select ACPI_DEBUG
664d946f79SLv Zheng	help
67836d0830SLv Zheng	  Enable in-kernel debugging of AML facilities: statistics,
68836d0830SLv Zheng	  internal object dump, single step control method execution.
694d946f79SLv Zheng	  This is still under development, currently enabling this only
704d946f79SLv Zheng	  results in the compilation of the ACPICA debugger files.
714d946f79SLv Zheng
72836d0830SLv Zhengif ACPI_DEBUGGER
73836d0830SLv Zheng
74836d0830SLv Zhengconfig ACPI_DEBUGGER_USER
75c117dfffSMasanari Iida	tristate "Userspace debugger accessibility"
76836d0830SLv Zheng	depends on DEBUG_FS
77836d0830SLv Zheng	help
78836d0830SLv Zheng	  Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
79836d0830SLv Zheng	  to access the debugger functionalities.
80836d0830SLv Zheng
81836d0830SLv Zhengendif
82836d0830SLv Zheng
83ad1696f6SAleksey Makarovconfig ACPI_SPCR_TABLE
840231d000SPrarit Bhargava	bool "ACPI Serial Port Console Redirection Support"
850231d000SPrarit Bhargava	default y if X86
860231d000SPrarit Bhargava	help
870231d000SPrarit Bhargava	  Enable support for Serial Port Console Redirection (SPCR) Table.
880231d000SPrarit Bhargava	  This table provides information about the configuration of the
890231d000SPrarit Bhargava	  earlycon console.
90ad1696f6SAleksey Makarov
91d1eb86e5SZhang Ruiconfig ACPI_FPDT
92d1eb86e5SZhang Rui	bool "ACPI Firmware Performance Data Table (FPDT) support"
93c2465f95SJeremy Linton	depends on X86_64 || ARM64
94d1eb86e5SZhang Rui	help
95d1eb86e5SZhang Rui	  Enable support for the Firmware Performance Data Table (FPDT).
96d1eb86e5SZhang Rui	  This table provides information on the timing of the system
97d1eb86e5SZhang Rui	  boot, S3 suspend and S3 resume firmware code paths.
98d1eb86e5SZhang Rui
99eeb2d80dSSrinivas Pandruvadaconfig ACPI_LPIT
100eeb2d80dSSrinivas Pandruvada	bool
101eeb2d80dSSrinivas Pandruvada	depends on X86_64
102eeb2d80dSSrinivas Pandruvada	default y
103eeb2d80dSSrinivas Pandruvada
104673d5b43SLen Brownconfig ACPI_SLEEP
105673d5b43SLen Brown	bool
1065d1e072bSRafael J. Wysocki	depends on SUSPEND || HIBERNATION
1076e0a0ea1SGraeme Gregory	depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
108673d5b43SLen Brown	default y
109673d5b43SLen Brown
11018d78b64SRafael J. Wysockiconfig ACPI_REV_OVERRIDE_POSSIBLE
1119165dabbSMasanari Iida	bool "Allow supported ACPI revision to be overridden"
11218d78b64SRafael J. Wysocki	depends on X86
11318d78b64SRafael J. Wysocki	default y
11418d78b64SRafael J. Wysocki	help
11518d78b64SRafael J. Wysocki	  The platform firmware on some systems expects Linux to return "5" as
11618d78b64SRafael J. Wysocki	  the supported ACPI revision which makes it expose system configuration
11718d78b64SRafael J. Wysocki	  information in a special way.
11818d78b64SRafael J. Wysocki
11918d78b64SRafael J. Wysocki	  For example, based on what ACPI exports as the supported revision,
12018d78b64SRafael J. Wysocki	  Dell XPS 13 (2015) configures its audio device to either work in HDA
12118d78b64SRafael J. Wysocki	  mode or in I2S mode, where the former is supposed to be used on Linux
12218d78b64SRafael J. Wysocki	  until the latter is fully supported (in the kernel as well as in user
12318d78b64SRafael J. Wysocki	  space).
12418d78b64SRafael J. Wysocki
12518d78b64SRafael J. Wysocki	  This option enables a DMI-based quirk for the above Dell machine (so
12618d78b64SRafael J. Wysocki	  that HDA audio is exposed by the platform firmware to the kernel) and
12718d78b64SRafael J. Wysocki	  makes it possible to force the kernel to return "5" as the supported
12818d78b64SRafael J. Wysocki	  ACPI revision via the "acpi_rev_override" command line switch.
12918d78b64SRafael J. Wysocki
1301195a098SThomas Renningerconfig ACPI_EC_DEBUGFS
1311195a098SThomas Renninger	tristate "EC read/write access through /sys/kernel/debug/ec"
1321195a098SThomas Renninger	help
1331195a098SThomas Renninger	  Say N to disable Embedded Controller /sys/kernel/debug interface
1341195a098SThomas Renninger
135500de3ddSThomas Renninger	  Be aware that using this interface can confuse your Embedded
136500de3ddSThomas Renninger	  Controller in a way that a normal reboot is not enough. You then
13725cb1bfdSAndrea Gelmini	  have to power off your system, and remove the laptop battery for
138500de3ddSThomas Renninger	  some seconds.
1391195a098SThomas Renninger	  An Embedded Controller typically is available on laptops and reads
1401195a098SThomas Renninger	  sensor values like battery state and temperature.
141500de3ddSThomas Renninger	  The kernel accesses the EC through ACPI parsed code provided by BIOS
142500de3ddSThomas Renninger	  tables. This option allows to access the EC directly without ACPI
143500de3ddSThomas Renninger	  code being involved.
1441195a098SThomas Renninger	  Thus this option is a debug option that helps to write ACPI drivers
1451195a098SThomas Renninger	  and can be used to identify ACPI code or EC firmware bugs.
1461195a098SThomas Renninger
1471da177e4SLinus Torvaldsconfig ACPI_AC
1481da177e4SLinus Torvalds	tristate "AC Adapter"
1491b3d4c3bSZhang Rui	select POWER_SUPPLY
15007fefe4cSLen Brown	default y
1511da177e4SLinus Torvalds	help
1521c48aa36SBjorn Helgaas	  This driver supports the AC Adapter object, which indicates
1531c48aa36SBjorn Helgaas	  whether a system is on AC or not.  If you have a system that can
15407fefe4cSLen Brown	  switch between A/C and battery, say Y.
1551da177e4SLinus Torvalds
1561c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1571c48aa36SBjorn Helgaas	  the module will be called ac.
1581c48aa36SBjorn Helgaas
1591da177e4SLinus Torvaldsconfig ACPI_BATTERY
1601da177e4SLinus Torvalds	tristate "Battery"
1611b3d4c3bSZhang Rui	select POWER_SUPPLY
16207fefe4cSLen Brown	default y
1631da177e4SLinus Torvalds	help
1641da177e4SLinus Torvalds	  This driver adds support for battery information through
1651da177e4SLinus Torvalds	  /proc/acpi/battery. If you have a mobile system with a battery,
1661da177e4SLinus Torvalds	  say Y.
1671da177e4SLinus Torvalds
1681c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1691c48aa36SBjorn Helgaas	  the module will be called battery.
1701c48aa36SBjorn Helgaas
1711da177e4SLinus Torvaldsconfig ACPI_BUTTON
1721da177e4SLinus Torvalds	tristate "Button"
173c0968f0eSDmitry Torokhov	depends on INPUT
17407fefe4cSLen Brown	default y
1751da177e4SLinus Torvalds	help
1761c48aa36SBjorn Helgaas	  This driver handles events on the power, sleep, and lid buttons.
1777d13f94cSKrzysztof Mazur	  A daemon reads events from input devices or via netlink and
1787d13f94cSKrzysztof Mazur	  performs user-defined actions such as shutting down the system.
1797d13f94cSKrzysztof Mazur	  This is necessary for software-controlled poweroff.
1801c48aa36SBjorn Helgaas
1811c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1821c48aa36SBjorn Helgaas	  the module will be called button.
1831da177e4SLinus Torvalds
184a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON
185a1b93e89SJosh Triplett	tristate "Tiny Power Button Driver"
186a1b93e89SJosh Triplett	depends on !ACPI_BUTTON
187a1b93e89SJosh Triplett	help
188a1b93e89SJosh Triplett	  This driver provides a tiny alternative to the ACPI Button driver.
189a1b93e89SJosh Triplett	  The tiny power button driver only handles the power button. Rather
190a1b93e89SJosh Triplett	  than notifying userspace via the input layer or a netlink event, this
191a1b93e89SJosh Triplett	  driver directly signals the init process to shut down.
192a1b93e89SJosh Triplett
193a1b93e89SJosh Triplett	  This driver is particularly suitable for cloud and VM environments,
194a1b93e89SJosh Triplett	  which use a simulated power button to initiate a controlled poweroff,
195a1b93e89SJosh Triplett	  but which may not want to run a separate userspace daemon to process
196a1b93e89SJosh Triplett	  input events.
197a1b93e89SJosh Triplett
198a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON_SIGNAL
199a1b93e89SJosh Triplett	int "Tiny Power Button Signal"
200a1b93e89SJosh Triplett	depends on ACPI_TINY_POWER_BUTTON
201a1b93e89SJosh Triplett	default 38
202a1b93e89SJosh Triplett	help
203a1b93e89SJosh Triplett	  Default signal to send to init in response to the power button.
204a1b93e89SJosh Triplett
205a1b93e89SJosh Triplett	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
206a1b93e89SJosh Triplett	  (SIGINT) to simulate Ctrl+Alt+Del.
207a1b93e89SJosh Triplett
2081da177e4SLinus Torvaldsconfig ACPI_VIDEO
2091da177e4SLinus Torvalds	tristate "Video"
210038275d2SRiwen Lu	depends on BACKLIGHT_CLASS_DEVICE
21103e2bf26SAndreas Herrmann	depends on INPUT
212fe7aebb4SHans de Goede	depends on ACPI_WMI || !X86
21363c4ec90SZhang Rui	select THERMAL
2141da177e4SLinus Torvalds	help
2151c48aa36SBjorn Helgaas	  This driver implements the ACPI Extensions For Display Adapters
2161da177e4SLinus Torvalds	  for integrated graphics devices on motherboard, as specified in
2171c48aa36SBjorn Helgaas	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
2181c48aa36SBjorn Helgaas	  such as defining the video POST device, retrieving EDID information,
2191c48aa36SBjorn Helgaas	  and setting up a video output.
2201c48aa36SBjorn Helgaas
2211c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2221c48aa36SBjorn Helgaas	  the module will be called video.
2231da177e4SLinus Torvalds
2241da177e4SLinus Torvaldsconfig ACPI_FAN
2251da177e4SLinus Torvalds	tristate "Fan"
226d8054749SZhang Rui	depends on THERMAL
22707fefe4cSLen Brown	default y
2281da177e4SLinus Torvalds	help
2291c48aa36SBjorn Helgaas	  This driver supports ACPI fan devices, allowing user-mode
2301da177e4SLinus Torvalds	  applications to perform basic fan control (on, off, status).
2311da177e4SLinus Torvalds
2321c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2331c48aa36SBjorn Helgaas	  the module will be called fan.
2341c48aa36SBjorn Helgaas
23595c513ecSRafael J. Wysockiconfig ACPI_TAD
23695c513ecSRafael J. Wysocki	tristate "ACPI Time and Alarm (TAD) Device Support"
23795c513ecSRafael J. Wysocki	depends on SYSFS && PM_SLEEP
23895c513ecSRafael J. Wysocki	help
23995c513ecSRafael J. Wysocki	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
24095c513ecSRafael J. Wysocki	  Time Clock (RTC).  Its wake timers allow the system to transition from
24195c513ecSRafael J. Wysocki	  the S3 (or optionally S4/S5) state to S0 state after a time period
24295c513ecSRafael J. Wysocki	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
24395c513ecSRafael J. Wysocki	  scale of flexibility in the wake timers.  The time capabilities of the
24495c513ecSRafael J. Wysocki	  TAD maintain the time of day information across platform power
24595c513ecSRafael J. Wysocki	  transitions, and keep track of time even when the platform is turned
24695c513ecSRafael J. Wysocki	  off.
24795c513ecSRafael J. Wysocki
248c8f7a62cSLen Brownconfig ACPI_DOCK
249898b054fSShaohua Li	bool "Dock"
250c8f7a62cSLen Brown	help
2511c48aa36SBjorn Helgaas	  This driver supports ACPI-controlled docking stations and removable
2521c48aa36SBjorn Helgaas	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
25301b57e73SKristen Carlson Accardi
254239708a3SAshwin Chauguleconfig ACPI_CPU_FREQ_PSS
255239708a3SAshwin Chaugule	bool
256239708a3SAshwin Chaugule
25735ae7133SSudeep Hollaconfig ACPI_PROCESSOR_CSTATE
25835ae7133SSudeep Holla	def_bool y
259239ed06dSRafael J. Wysocki	depends on ACPI_PROCESSOR
26035ae7133SSudeep Holla	depends on IA64 || X86
26135ae7133SSudeep Holla
2625f05586cSAshwin Chauguleconfig ACPI_PROCESSOR_IDLE
2635f05586cSAshwin Chaugule	bool
2645f05586cSAshwin Chaugule	select CPU_IDLE
2655f05586cSAshwin Chaugule
266935c760eSTomasz Nowickiconfig ACPI_MCFG
267935c760eSTomasz Nowicki	bool
268935c760eSTomasz Nowicki
269337aadffSAshwin Chauguleconfig ACPI_CPPC_LIB
270337aadffSAshwin Chaugule	bool
271337aadffSAshwin Chaugule	depends on ACPI_PROCESSOR
272337aadffSAshwin Chaugule	select MAILBOX
273337aadffSAshwin Chaugule	select PCC
274337aadffSAshwin Chaugule	help
275337aadffSAshwin Chaugule	  If this option is enabled, this file implements common functionality
276337aadffSAshwin Chaugule	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
277337aadffSAshwin Chaugule	  routines implemented are meant to be used by other
278337aadffSAshwin Chaugule	  drivers to control CPU performance using CPPC semantics.
279337aadffSAshwin Chaugule	  If your platform does not support CPPC in firmware,
280337aadffSAshwin Chaugule	  leave this option disabled.
281337aadffSAshwin Chaugule
2821da177e4SLinus Torvaldsconfig ACPI_PROCESSOR
2831da177e4SLinus Torvalds	tristate "Processor"
284b1121e2aSHuacai Chen	depends on X86 || IA64 || ARM64 || LOONGARCH
2858fc85c6aSSudeep Holla	select ACPI_PROCESSOR_IDLE
286b1121e2aSHuacai Chen	select ACPI_CPU_FREQ_PSS if X86 || IA64 || LOONGARCH
2877fdc74daSRiwen Lu	select THERMAL
28807fefe4cSLen Brown	default y
2891da177e4SLinus Torvalds	help
290239708a3SAshwin Chaugule	  This driver adds support for the ACPI Processor package. It is required
291239708a3SAshwin Chaugule	  by several flavors of cpufreq performance-state, thermal, throttling and
292239708a3SAshwin Chaugule	  idle drivers.
2931c48aa36SBjorn Helgaas
2941c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2951c48aa36SBjorn Helgaas	  the module will be called processor.
2964b88e330SLv Zheng
297e92b297cSZhao Yakuiconfig ACPI_IPMI
298e92b297cSZhao Yakui	tristate "IPMI"
29950121bebSSinan Kaya	depends on IPMI_HANDLER
300e92b297cSZhao Yakui	help
301e92b297cSZhao Yakui	  This driver enables the ACPI to access the BMC controller. And it
302e92b297cSZhao Yakui	  uses the IPMI request/response message to communicate with BMC
303a8ab8ef4STom Rix	  controller, which can be found on the server.
304e92b297cSZhao Yakui
305e92b297cSZhao Yakui	  To compile this driver as a module, choose M here:
306e92b297cSZhao Yakui	  the module will be called as acpi_ipmi.
3071da177e4SLinus Torvalds
3081da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_CPU
309cbfc1baeSAdrian Bunk	bool
310f756f28bSKees Cook	depends on ACPI_PROCESSOR && HOTPLUG_CPU
3111da177e4SLinus Torvalds	select ACPI_CONTAINER
312cbfc1baeSAdrian Bunk	default y
3131da177e4SLinus Torvalds
3148e0af514SShaohua Liconfig ACPI_PROCESSOR_AGGREGATOR
3158e0af514SShaohua Li	tristate "Processor Aggregator"
3168e0af514SShaohua Li	depends on ACPI_PROCESSOR
317d91f79ebSLen Brown	depends on X86
3188e0af514SShaohua Li	help
3198e0af514SShaohua Li	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
320c4c4e2a5SJiri Slaby	  specific processor configuration and control that applies to all
3218e0af514SShaohua Li	  processors in the platform. Currently only logical processor idling
3228e0af514SShaohua Li	  is defined, which is to reduce power consumption. This driver
323c4c4e2a5SJiri Slaby	  supports the new device.
3248e0af514SShaohua Li
3251da177e4SLinus Torvaldsconfig ACPI_THERMAL
3261da177e4SLinus Torvalds	tristate "Thermal Zone"
3271da177e4SLinus Torvalds	depends on ACPI_PROCESSOR
3283f655ef8SZhang Rui	select THERMAL
32907fefe4cSLen Brown	default y
3301da177e4SLinus Torvalds	help
3311c48aa36SBjorn Helgaas	  This driver supports ACPI thermal zones.  Most mobile and
3321da177e4SLinus Torvalds	  some desktop systems support ACPI thermal zones.  It is HIGHLY
3331da177e4SLinus Torvalds	  recommended that this option be enabled, as your processor(s)
3341da177e4SLinus Torvalds	  may be damaged without it.
3351da177e4SLinus Torvalds
3361c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3371c48aa36SBjorn Helgaas	  the module will be called thermal.
3381c48aa36SBjorn Helgaas
339a2ff95e0SMark Pearsonconfig ACPI_PLATFORM_PROFILE
34021f05a43SMaximilian Luz	tristate
341a2ff95e0SMark Pearson
3427ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT_FILE
3437ce9573eSRandy Dunlap	string "Custom DSDT Table file to include"
3447ce9573eSRandy Dunlap	default ""
3451da177e4SLinus Torvalds	depends on !STANDALONE
3461da177e4SLinus Torvalds	help
347d89e9d6bSLen Brown	  This option supports a custom DSDT by linking it into the kernel.
348d89e9d6bSLen Brown
349c30fe7f7SUwe Zeisberger	  Enter the full path name to the file which includes the AmlCode
35082e4eb4eSWang Dongsheng	  or dsdt_aml_code declaration.
3511da177e4SLinus Torvalds
3527ce9573eSRandy Dunlap	  If unsure, don't enter a file name.
3537ce9573eSRandy Dunlap
3547ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT
3557ce9573eSRandy Dunlap	bool
3567ce9573eSRandy Dunlap	default ACPI_CUSTOM_DSDT_FILE != ""
3577ce9573eSRandy Dunlap
35891dda51aSAleksey Makarovconfig ARCH_HAS_ACPI_TABLE_UPGRADE
35991dda51aSAleksey Makarov	def_bool n
36091dda51aSAleksey Makarov
3615d881327SLv Zhengconfig ACPI_TABLE_UPGRADE
3625d881327SLv Zheng	bool "Allow upgrading ACPI tables via initrd"
36391dda51aSAleksey Makarov	depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
3645d881327SLv Zheng	default y
36553aac44cSThomas Renninger	help
3665d881327SLv Zheng	  This option provides functionality to upgrade arbitrary ACPI tables
36753aac44cSThomas Renninger	  via initrd. No functional change if no ACPI tables are passed via
36853aac44cSThomas Renninger	  initrd, therefore it's safe to say Y.
369cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
37053aac44cSThomas Renninger
37198a455d9SShunyong Yangconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
37298a455d9SShunyong Yang	bool "Override ACPI tables from built-in initrd"
37398a455d9SShunyong Yang	depends on ACPI_TABLE_UPGRADE
374d2cbbf1fSRobert Richter	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
37598a455d9SShunyong Yang	help
37698a455d9SShunyong Yang	  This option provides functionality to override arbitrary ACPI tables
37798a455d9SShunyong Yang	  from built-in uncompressed initrd.
37898a455d9SShunyong Yang
379cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
38098a455d9SShunyong Yang
3811da177e4SLinus Torvaldsconfig ACPI_DEBUG
3821da177e4SLinus Torvalds	bool "Debug Statements"
3831da177e4SLinus Torvalds	help
384a0d84a92SBjorn Helgaas	  The ACPI subsystem can produce debug output.  Saying Y enables this
385a0d84a92SBjorn Helgaas	  output and increases the kernel size by around 50K.
386a0d84a92SBjorn Helgaas
387a0d84a92SBjorn Helgaas	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
388cb1aaebeSMauro Carvalho Chehab	  parameters documented in Documentation/firmware-guide/acpi/debug.rst and
3898c27ceffSMauro Carvalho Chehab	  Documentation/admin-guide/kernel-parameters.rst to control the type and
390a0d84a92SBjorn Helgaas	  amount of debug output.
3911da177e4SLinus Torvalds
3928344b568SAlex Chiangconfig ACPI_PCI_SLOT
393ab1a2e03SJiang Liu	bool "PCI slot detection driver"
3945c6a1177SSinan Kaya	depends on SYSFS && PCI
3958344b568SAlex Chiang	help
3961c48aa36SBjorn Helgaas	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
3971c48aa36SBjorn Helgaas	  slots in the system.  This can help correlate PCI bus addresses,
3981c48aa36SBjorn Helgaas	  i.e., segment/bus/device/function tuples, with physical slots in
3991c48aa36SBjorn Helgaas	  the system.  If you are unsure, say N.
4001c48aa36SBjorn Helgaas
4011da177e4SLinus Torvaldsconfig ACPI_CONTAINER
40206991c28SLinus Torvalds	bool "Container and Module Devices"
403ea6a4581SPaul Bolle	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
4041c48aa36SBjorn Helgaas	help
4051c48aa36SBjorn Helgaas	  This driver supports ACPI Container and Module devices (IDs
4061c48aa36SBjorn Helgaas	  ACPI0004, PNP0A05, and PNP0A06).
40745b1b196SKeiichiro Tokunaga
4081c48aa36SBjorn Helgaas	  This helps support hotplug of nodes, CPUs, and memory.
4091c48aa36SBjorn Helgaas
4101da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_MEMORY
4110a347644SRafael J. Wysocki	bool "Memory Hotplug"
412bc02af93SYasunori Goto	depends on MEMORY_HOTPLUG
4131da177e4SLinus Torvalds	help
4141c48aa36SBjorn Helgaas	  This driver supports ACPI memory hotplug.  The driver
4151c48aa36SBjorn Helgaas	  fields notifications on ACPI memory devices (PNP0C80),
4161c48aa36SBjorn Helgaas	  which represent memory ranges that may be onlined or
4171c48aa36SBjorn Helgaas	  offlined during runtime.
4181da177e4SLinus Torvalds
4191c48aa36SBjorn Helgaas	  If your hardware and firmware do not support adding or
4201c48aa36SBjorn Helgaas	  removing memory devices at runtime, you need not enable
4211c48aa36SBjorn Helgaas	  this driver.
4221da177e4SLinus Torvalds
423c183619bSJiang Liuconfig ACPI_HOTPLUG_IOAPIC
424c183619bSJiang Liu	bool
425c183619bSJiang Liu	depends on PCI
426c183619bSJiang Liu	depends on X86_IO_APIC
427c183619bSJiang Liu	default y
428c183619bSJiang Liu
4293f86b832SRich Townsendconfig ACPI_SBS
43094f6c086SAlexey Starikovskiy	tristate "Smart Battery System"
431b4150fc4SVladimir Lebedev	depends on X86
4321b3d4c3bSZhang Rui	select POWER_SUPPLY
4333f86b832SRich Townsend	help
4341c48aa36SBjorn Helgaas	  This driver supports the Smart Battery System, another
43594f6c086SAlexey Starikovskiy	  type of access to battery information, found on some laptops.
4363f86b832SRich Townsend
4371c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4381c48aa36SBjorn Helgaas	  the modules will be called sbs and sbshc.
4391c48aa36SBjorn Helgaas
440801eab81SHuang Yingconfig ACPI_HED
441801eab81SHuang Ying	tristate "Hardware Error Device"
442801eab81SHuang Ying	help
443801eab81SHuang Ying	  This driver supports the Hardware Error Device (PNP0C33),
444801eab81SHuang Ying	  which is used to report some hardware errors notified via
445801eab81SHuang Ying	  SCI, mainly the corrected errors.
446801eab81SHuang Ying
447526b4af4SThomas Renningerconfig ACPI_CUSTOM_METHOD
448526b4af4SThomas Renninger	tristate "Allow ACPI methods to be inserted/replaced at run time"
449526b4af4SThomas Renninger	depends on DEBUG_FS
450526b4af4SThomas Renninger	help
451bd1b2a55SJustin P. Mattock	  This debug facility allows ACPI AML methods to be inserted and/or
452526b4af4SThomas Renninger	  replaced without rebooting the system. For details refer to:
453cb1aaebeSMauro Carvalho Chehab	  Documentation/firmware-guide/acpi/method-customizing.rst.
454526b4af4SThomas Renninger
455526b4af4SThomas Renninger	  NOTE: This option is security sensitive, because it allows arbitrary
456526b4af4SThomas Renninger	  kernel memory to be written to by root (uid=0) users, allowing them
457526b4af4SThomas Renninger	  to bypass certain security measures (e.g. if root is not allowed to
458526b4af4SThomas Renninger	  load additional kernel modules after boot, this feature may be used
459526b4af4SThomas Renninger	  to override that restriction).
460526b4af4SThomas Renninger
461d1ff4b1cSMatthew Garrettconfig ACPI_BGRT
4622223af38SJosh Triplett	bool "Boottime Graphics Resource Table support"
4636e7300cfSBhupesh Sharma	depends on EFI && (X86 || ARM64)
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	def_bool n
473af1ae78aSAl Stone	help
474af1ae78aSAl Stone	  This config item changes the way the ACPI code is built.  When this
475af1ae78aSAl Stone	  option is selected, the kernel will use a specialized version of
476af1ae78aSAl Stone	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
477af1ae78aSAl Stone	  resulting kernel will be smaller but it will also be restricted to
478af1ae78aSAl Stone	  running in ACPI reduced hardware mode ONLY.
479af1ae78aSAl Stone
480af1ae78aSAl Stone	  If you are unsure what to do, do not enable this option.
481af1ae78aSAl Stone
482bdf97013SDan Williamssource "drivers/acpi/nfit/Kconfig"
483c710fcc5SDan Williamssource "drivers/acpi/numa/Kconfig"
484a643ce20SHuang Yingsource "drivers/acpi/apei/Kconfig"
4856256ebd5SSrinivas Pandruvadasource "drivers/acpi/dptf/Kconfig"
486a643ce20SHuang Ying
487058dfc76SMika Westerbergconfig ACPI_WATCHDOG
488058dfc76SMika Westerberg	bool
489058dfc76SMika Westerberg
4904b3db708SChen, Gongconfig ACPI_EXTLOG
4914b3db708SChen, Gong	tristate "Extended Error Log support"
4929613916bSBorislav Petkov	depends on X86_MCE && X86_LOCAL_APIC && EDAC
4937ea6c6c1SLuck, Tony	select UEFI_CPER
4944b3db708SChen, Gong	help
4954b3db708SChen, Gong	  Certain usages such as Predictive Failure Analysis (PFA) require
4964b3db708SChen, Gong	  more information about the error than what can be described in
4974b3db708SChen, Gong	  processor machine check banks. Most server processors log
4984b3db708SChen, Gong	  additional information about the error in processor uncore
4994b3db708SChen, Gong	  registers. Since the addresses and layout of these registers vary
5004b3db708SChen, Gong	  widely from one processor to another, system software cannot
5014b3db708SChen, Gong	  readily make use of them. To complicate matters further, some of
5024b3db708SChen, Gong	  the additional error information cannot be constructed without
5034b3db708SChen, Gong	  detailed knowledge about platform topology.
5044b3db708SChen, Gong
5054b3db708SChen, Gong	  Enhanced MCA Logging allows firmware to provide additional error
5064b3db708SChen, Gong	  information to system software, synchronous with MCE or CMCI. This
5072dfb7d51SChen, Gong	  driver adds support for that functionality with corresponding
5082dfb7d51SChen, Gong	  tracepoint which carries that information to userspace.
5094b3db708SChen, Gong
5104cf841e3STony Luckconfig ACPI_ADXL
5114cf841e3STony Luck	bool
5124cf841e3STony Luck
5130bf54fcdSOctavian Purdilaconfig ACPI_CONFIGFS
5140bf54fcdSOctavian Purdila	tristate "ACPI configfs support"
5150bf54fcdSOctavian Purdila	select CONFIGFS_FS
5160bf54fcdSOctavian Purdila	help
5170bf54fcdSOctavian Purdila	  Select this option to enable support for ACPI configuration from
5180bf54fcdSOctavian Purdila	  userspace. The configurable ACPI groups will be visible under
5190bf54fcdSOctavian Purdila	  /config/acpi, assuming configfs is mounted under /config.
5200bf54fcdSOctavian Purdila
5210db89fa2SChen Yuconfig ACPI_PFRUT
5220db89fa2SChen Yu	tristate "ACPI Platform Firmware Runtime Update and Telemetry"
5230db89fa2SChen Yu	depends on 64BIT
5240db89fa2SChen Yu	help
5250db89fa2SChen Yu	  This mechanism allows certain pieces of the platform firmware
5260db89fa2SChen Yu	  to be updated on the fly while the system is running (runtime)
5270db89fa2SChen Yu	  without the need to restart it, which is key in the cases when
5280db89fa2SChen Yu	  the system needs to be available 100% of the time and it cannot
5290db89fa2SChen Yu	  afford the downtime related to restarting it, or when the work
5300db89fa2SChen Yu	  carried out by the system is particularly important, so it cannot
5310db89fa2SChen Yu	  be interrupted, and it is not practical to wait until it is complete.
5320db89fa2SChen Yu
5330db89fa2SChen Yu	  The existing firmware code can be modified (driver update) or
5340db89fa2SChen Yu	  extended by adding new code to the firmware (code injection).
5350db89fa2SChen Yu
536b0013e03SChen Yu	  Besides, the telemetry driver allows user space to fetch telemetry
537b0013e03SChen Yu	  data from the firmware with the help of the Platform Firmware Runtime
538b0013e03SChen Yu	  Telemetry interface.
539b0013e03SChen Yu
540b0013e03SChen Yu	  To compile the drivers as modules, choose M here:
541b0013e03SChen Yu	  the modules will be called pfr_update and pfr_telemetry.
5420db89fa2SChen Yu
54388ef16d8STomasz Nowickiif ARM64
54488ef16d8STomasz Nowickisource "drivers/acpi/arm64/Kconfig"
545f6f0c9a7SHuacai Chenendif
5460ce82232SJeremy Linton
5470ce82232SJeremy Lintonconfig ACPI_PPTT
5480ce82232SJeremy Linton	bool
54988ef16d8STomasz Nowicki
55077e2a047SSudeep Hollaconfig ACPI_PCC
55177e2a047SSudeep Holla	bool "ACPI PCC Address Space"
55277e2a047SSudeep Holla	depends on PCC
55377e2a047SSudeep Holla	default y
55477e2a047SSudeep Holla	help
55577e2a047SSudeep Holla	  The PCC Address Space also referred as PCC Operation Region pertains
55677e2a047SSudeep Holla	  to the region of PCC subspace that succeeds the PCC signature.
55777e2a047SSudeep Holla
55877e2a047SSudeep Holla	  The PCC Operation Region works in conjunction with the PCC Table
55977e2a047SSudeep Holla	  (Platform Communications Channel Table). PCC subspaces that are
56077e2a047SSudeep Holla	  marked for use as PCC Operation Regions must not be used as PCC
56177e2a047SSudeep Holla	  subspaces for the standard ACPI features such as CPPC, RASF, PDTT and
56277e2a047SSudeep Holla	  MPST. These standard features must always use the PCC Table instead.
56377e2a047SSudeep Holla
56477e2a047SSudeep Holla	  Enable this feature if you want to set up and install the PCC Address
56577e2a047SSudeep Holla	  Space handler to handle PCC OpRegion in the firmware.
56677e2a047SSudeep Holla
567e81c782cSSudeep Hollaconfig ACPI_FFH
568e81c782cSSudeep Holla	bool "ACPI FFH Address Space"
569e81c782cSSudeep Holla	default n
570e81c782cSSudeep Holla	help
571e81c782cSSudeep Holla	  The FFH(Fixed Function Hardware) Address Space also referred as FFH
572e81c782cSSudeep Holla	  Operation Region allows to define platform specific opregion.
573e81c782cSSudeep Holla
574e81c782cSSudeep Holla	  Enable this feature if you want to set up and install the FFH Address
575e81c782cSSudeep Holla	  Space handler to handle FFH OpRegion in the firmware.
576e81c782cSSudeep Holla
577fa870509SAndy Shevchenkosource "drivers/acpi/pmic/Kconfig"
578fa870509SAndy Shevchenko
5793cf48554SJean-Philippe Bruckerconfig ACPI_VIOT
5803cf48554SJean-Philippe Brucker	bool
5813cf48554SJean-Philippe Brucker
582e3435fffSSudeep Hollaconfig ACPI_PRMT
583e3435fffSSudeep Holla	bool "Platform Runtime Mechanism Support"
584*5894cf57SArd Biesheuvel	depends on EFI_RUNTIME_WRAPPERS && (X86_64 || ARM64)
585e3435fffSSudeep Holla	default y
586e3435fffSSudeep Holla	help
587e3435fffSSudeep Holla	  Platform Runtime Mechanism (PRM) is a firmware interface exposing a
588e3435fffSSudeep Holla	  set of binary executables that can be called from the AML interpreter
589e3435fffSSudeep Holla	  or directly from device drivers.
590e3435fffSSudeep Holla
591e3435fffSSudeep Holla	  Say Y to enable the AML interpreter to execute the PRM code.
592e3435fffSSudeep Holla
593e3435fffSSudeep Holla	  While this feature is optional in principle, leaving it out may
594e3435fffSSudeep Holla	  substantially increase computational overhead related to the
595e3435fffSSudeep Holla	  initialization of some server systems.
596e3435fffSSudeep Holla
5971da177e4SLinus Torvaldsendif	# ACPI
59887e65d05SJan Kiszka
59987e65d05SJan Kiszkaconfig X86_PM_TIMER
60087e65d05SJan Kiszka	bool "Power Management Timer Support" if EXPERT
60187e65d05SJan Kiszka	depends on X86 && (ACPI || JAILHOUSE_GUEST)
60287e65d05SJan Kiszka	default y
60387e65d05SJan Kiszka	help
60487e65d05SJan Kiszka	  The Power Management Timer is available on all ACPI-capable,
60587e65d05SJan Kiszka	  in most cases even if ACPI is unusable or blacklisted.
60687e65d05SJan Kiszka
60787e65d05SJan Kiszka	  This timing source is not affected by power management features
60887e65d05SJan Kiszka	  like aggressive processor idling, throttling, frequency and/or
60987e65d05SJan Kiszka	  voltage scaling, unlike the commonly used Time Stamp Counter
61087e65d05SJan Kiszka	  (TSC) timing source.
61187e65d05SJan Kiszka
61287e65d05SJan Kiszka	  You should nearly always say Y here because many modern
61387e65d05SJan Kiszka	  systems require this timer.
614