xref: /linux/drivers/acpi/Kconfig (revision 359df7c5be4ba5c57f641010be7237ad9f09ea53)
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
1351195a098SThomas Renningerconfig ACPI_EC_DEBUGFS
1361195a098SThomas Renninger	tristate "EC read/write access through /sys/kernel/debug/ec"
1371195a098SThomas Renninger	help
1381195a098SThomas Renninger	  Say N to disable Embedded Controller /sys/kernel/debug interface
1391195a098SThomas Renninger
140500de3ddSThomas Renninger	  Be aware that using this interface can confuse your Embedded
141500de3ddSThomas Renninger	  Controller in a way that a normal reboot is not enough. You then
14225cb1bfdSAndrea Gelmini	  have to power off your system, and remove the laptop battery for
143500de3ddSThomas Renninger	  some seconds.
1441195a098SThomas Renninger	  An Embedded Controller typically is available on laptops and reads
1451195a098SThomas Renninger	  sensor values like battery state and temperature.
146500de3ddSThomas Renninger	  The kernel accesses the EC through ACPI parsed code provided by BIOS
147500de3ddSThomas Renninger	  tables. This option allows to access the EC directly without ACPI
148500de3ddSThomas Renninger	  code being involved.
1491195a098SThomas Renninger	  Thus this option is a debug option that helps to write ACPI drivers
1501195a098SThomas Renninger	  and can be used to identify ACPI code or EC firmware bugs.
1511195a098SThomas Renninger
1521da177e4SLinus Torvaldsconfig ACPI_AC
1531da177e4SLinus Torvalds	tristate "AC Adapter"
1541b3d4c3bSZhang Rui	select POWER_SUPPLY
15507fefe4cSLen Brown	default y
1561da177e4SLinus Torvalds	help
1571c48aa36SBjorn Helgaas	  This driver supports the AC Adapter object, which indicates
1581c48aa36SBjorn Helgaas	  whether a system is on AC or not.  If you have a system that can
15907fefe4cSLen Brown	  switch between A/C and battery, say Y.
1601da177e4SLinus Torvalds
1611c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1621c48aa36SBjorn Helgaas	  the module will be called ac.
1631c48aa36SBjorn Helgaas
1641da177e4SLinus Torvaldsconfig ACPI_BATTERY
1651da177e4SLinus Torvalds	tristate "Battery"
1661b3d4c3bSZhang Rui	select POWER_SUPPLY
16707fefe4cSLen Brown	default y
1681da177e4SLinus Torvalds	help
1691da177e4SLinus Torvalds	  This driver adds support for battery information through
1701da177e4SLinus Torvalds	  /proc/acpi/battery. If you have a mobile system with a battery,
1711da177e4SLinus Torvalds	  say Y.
1721da177e4SLinus Torvalds
1731c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1741c48aa36SBjorn Helgaas	  the module will be called battery.
1751c48aa36SBjorn Helgaas
1761da177e4SLinus Torvaldsconfig ACPI_BUTTON
1771da177e4SLinus Torvalds	tristate "Button"
178c0968f0eSDmitry Torokhov	depends on INPUT
17907fefe4cSLen Brown	default y
1801da177e4SLinus Torvalds	help
1811c48aa36SBjorn Helgaas	  This driver handles events on the power, sleep, and lid buttons.
1827d13f94cSKrzysztof Mazur	  A daemon reads events from input devices or via netlink and
1837d13f94cSKrzysztof Mazur	  performs user-defined actions such as shutting down the system.
1847d13f94cSKrzysztof Mazur	  This is necessary for software-controlled poweroff.
1851c48aa36SBjorn Helgaas
1861c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1871c48aa36SBjorn Helgaas	  the module will be called button.
1881da177e4SLinus Torvalds
189a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON
190a1b93e89SJosh Triplett	tristate "Tiny Power Button Driver"
191a1b93e89SJosh Triplett	depends on !ACPI_BUTTON
192a1b93e89SJosh Triplett	help
193a1b93e89SJosh Triplett	  This driver provides a tiny alternative to the ACPI Button driver.
194a1b93e89SJosh Triplett	  The tiny power button driver only handles the power button. Rather
195a1b93e89SJosh Triplett	  than notifying userspace via the input layer or a netlink event, this
196a1b93e89SJosh Triplett	  driver directly signals the init process to shut down.
197a1b93e89SJosh Triplett
198a1b93e89SJosh Triplett	  This driver is particularly suitable for cloud and VM environments,
199a1b93e89SJosh Triplett	  which use a simulated power button to initiate a controlled poweroff,
200a1b93e89SJosh Triplett	  but which may not want to run a separate userspace daemon to process
201a1b93e89SJosh Triplett	  input events.
202a1b93e89SJosh Triplett
203a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON_SIGNAL
204a1b93e89SJosh Triplett	int "Tiny Power Button Signal"
205a1b93e89SJosh Triplett	depends on ACPI_TINY_POWER_BUTTON
206a1b93e89SJosh Triplett	default 38
207a1b93e89SJosh Triplett	help
208a1b93e89SJosh Triplett	  Default signal to send to init in response to the power button.
209a1b93e89SJosh Triplett
210a1b93e89SJosh Triplett	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
211a1b93e89SJosh Triplett	  (SIGINT) to simulate Ctrl+Alt+Del.
212a1b93e89SJosh Triplett
2131da177e4SLinus Torvaldsconfig ACPI_VIDEO
2141da177e4SLinus Torvalds	tristate "Video"
215038275d2SRiwen Lu	depends on BACKLIGHT_CLASS_DEVICE
21603e2bf26SAndreas Herrmann	depends on INPUT
217fe7aebb4SHans de Goede	depends on ACPI_WMI || !X86
21863c4ec90SZhang Rui	select THERMAL
2191da177e4SLinus Torvalds	help
2201c48aa36SBjorn Helgaas	  This driver implements the ACPI Extensions For Display Adapters
2211da177e4SLinus Torvalds	  for integrated graphics devices on motherboard, as specified in
2221c48aa36SBjorn Helgaas	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
2231c48aa36SBjorn Helgaas	  such as defining the video POST device, retrieving EDID information,
2241c48aa36SBjorn Helgaas	  and setting up a video output.
2251c48aa36SBjorn Helgaas
2261c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2271c48aa36SBjorn Helgaas	  the module will be called video.
2281da177e4SLinus Torvalds
2291da177e4SLinus Torvaldsconfig ACPI_FAN
2301da177e4SLinus Torvalds	tristate "Fan"
231d8054749SZhang Rui	depends on THERMAL
23207fefe4cSLen Brown	default y
2331da177e4SLinus Torvalds	help
2341c48aa36SBjorn Helgaas	  This driver supports ACPI fan devices, allowing user-mode
2351da177e4SLinus Torvalds	  applications to perform basic fan control (on, off, status).
2361da177e4SLinus Torvalds
2371c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2381c48aa36SBjorn Helgaas	  the module will be called fan.
2391c48aa36SBjorn Helgaas
24095c513ecSRafael J. Wysockiconfig ACPI_TAD
24195c513ecSRafael J. Wysocki	tristate "ACPI Time and Alarm (TAD) Device Support"
24295c513ecSRafael J. Wysocki	depends on SYSFS && PM_SLEEP
24395c513ecSRafael J. Wysocki	help
24495c513ecSRafael J. Wysocki	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
24595c513ecSRafael J. Wysocki	  Time Clock (RTC).  Its wake timers allow the system to transition from
24695c513ecSRafael J. Wysocki	  the S3 (or optionally S4/S5) state to S0 state after a time period
24795c513ecSRafael J. Wysocki	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
24895c513ecSRafael J. Wysocki	  scale of flexibility in the wake timers.  The time capabilities of the
24995c513ecSRafael J. Wysocki	  TAD maintain the time of day information across platform power
25095c513ecSRafael J. Wysocki	  transitions, and keep track of time even when the platform is turned
25195c513ecSRafael J. Wysocki	  off.
25295c513ecSRafael J. Wysocki
253c8f7a62cSLen Brownconfig ACPI_DOCK
254898b054fSShaohua Li	bool "Dock"
255c8f7a62cSLen Brown	help
2561c48aa36SBjorn Helgaas	  This driver supports ACPI-controlled docking stations and removable
2571c48aa36SBjorn Helgaas	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
25801b57e73SKristen Carlson Accardi
259239708a3SAshwin Chauguleconfig ACPI_CPU_FREQ_PSS
260239708a3SAshwin Chaugule	bool
261239708a3SAshwin Chaugule
26235ae7133SSudeep Hollaconfig ACPI_PROCESSOR_CSTATE
26335ae7133SSudeep Holla	def_bool y
264239ed06dSRafael J. Wysocki	depends on ACPI_PROCESSOR
265cf8e8658SArd Biesheuvel	depends on X86
26635ae7133SSudeep Holla
2675f05586cSAshwin Chauguleconfig ACPI_PROCESSOR_IDLE
2685f05586cSAshwin Chaugule	bool
2695f05586cSAshwin Chaugule	select CPU_IDLE
2705f05586cSAshwin Chaugule
271935c760eSTomasz Nowickiconfig ACPI_MCFG
272935c760eSTomasz Nowicki	bool
273935c760eSTomasz Nowicki
274337aadffSAshwin Chauguleconfig ACPI_CPPC_LIB
275337aadffSAshwin Chaugule	bool
276337aadffSAshwin Chaugule	depends on ACPI_PROCESSOR
277337aadffSAshwin Chaugule	select MAILBOX
278337aadffSAshwin Chaugule	select PCC
279337aadffSAshwin Chaugule	help
280337aadffSAshwin Chaugule	  If this option is enabled, this file implements common functionality
281337aadffSAshwin Chaugule	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
282337aadffSAshwin Chaugule	  routines implemented are meant to be used by other
283337aadffSAshwin Chaugule	  drivers to control CPU performance using CPPC semantics.
284337aadffSAshwin Chaugule	  If your platform does not support CPPC in firmware,
285337aadffSAshwin Chaugule	  leave this option disabled.
286337aadffSAshwin Chaugule
2871da177e4SLinus Torvaldsconfig ACPI_PROCESSOR
2881da177e4SLinus Torvalds	tristate "Processor"
289*359df7c5SSunil V L	depends on X86 || ARM64 || LOONGARCH || RISCV
2908fc85c6aSSudeep Holla	select ACPI_PROCESSOR_IDLE
291cf8e8658SArd Biesheuvel	select ACPI_CPU_FREQ_PSS if X86 || LOONGARCH
2927fdc74daSRiwen Lu	select THERMAL
29307fefe4cSLen Brown	default y
2941da177e4SLinus Torvalds	help
295239708a3SAshwin Chaugule	  This driver adds support for the ACPI Processor package. It is required
296239708a3SAshwin Chaugule	  by several flavors of cpufreq performance-state, thermal, throttling and
297239708a3SAshwin Chaugule	  idle drivers.
2981c48aa36SBjorn Helgaas
2991c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3001c48aa36SBjorn Helgaas	  the module will be called processor.
3014b88e330SLv Zheng
302e92b297cSZhao Yakuiconfig ACPI_IPMI
303e92b297cSZhao Yakui	tristate "IPMI"
30450121bebSSinan Kaya	depends on IPMI_HANDLER
305e92b297cSZhao Yakui	help
306e92b297cSZhao Yakui	  This driver enables the ACPI to access the BMC controller. And it
307e92b297cSZhao Yakui	  uses the IPMI request/response message to communicate with BMC
308a8ab8ef4STom Rix	  controller, which can be found on the server.
309e92b297cSZhao Yakui
310e92b297cSZhao Yakui	  To compile this driver as a module, choose M here:
311e92b297cSZhao Yakui	  the module will be called as acpi_ipmi.
3121da177e4SLinus Torvalds
3131da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_CPU
314cbfc1baeSAdrian Bunk	bool
315f756f28bSKees Cook	depends on ACPI_PROCESSOR && HOTPLUG_CPU
3161da177e4SLinus Torvalds	select ACPI_CONTAINER
3171da177e4SLinus Torvalds
3188e0af514SShaohua Liconfig ACPI_PROCESSOR_AGGREGATOR
3198e0af514SShaohua Li	tristate "Processor Aggregator"
3208e0af514SShaohua Li	depends on ACPI_PROCESSOR
321d91f79ebSLen Brown	depends on X86
3228e0af514SShaohua Li	help
3238e0af514SShaohua Li	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
324c4c4e2a5SJiri Slaby	  specific processor configuration and control that applies to all
3258e0af514SShaohua Li	  processors in the platform. Currently only logical processor idling
3268e0af514SShaohua Li	  is defined, which is to reduce power consumption. This driver
327c4c4e2a5SJiri Slaby	  supports the new device.
3288e0af514SShaohua Li
3291da177e4SLinus Torvaldsconfig ACPI_THERMAL
3301da177e4SLinus Torvalds	tristate "Thermal Zone"
3311da177e4SLinus Torvalds	depends on ACPI_PROCESSOR
3323f655ef8SZhang Rui	select THERMAL
333f4750798SRafael J. Wysocki	select ACPI_THERMAL_LIB
33407fefe4cSLen Brown	default y
3351da177e4SLinus Torvalds	help
3361c48aa36SBjorn Helgaas	  This driver supports ACPI thermal zones.  Most mobile and
3371da177e4SLinus Torvalds	  some desktop systems support ACPI thermal zones.  It is HIGHLY
3381da177e4SLinus Torvalds	  recommended that this option be enabled, as your processor(s)
3391da177e4SLinus Torvalds	  may be damaged without it.
3401da177e4SLinus Torvalds
3411c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3421c48aa36SBjorn Helgaas	  the module will be called thermal.
3431c48aa36SBjorn Helgaas
344a2ff95e0SMark Pearsonconfig ACPI_PLATFORM_PROFILE
34521f05a43SMaximilian Luz	tristate
346a2ff95e0SMark Pearson
3477ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT_FILE
3487ce9573eSRandy Dunlap	string "Custom DSDT Table file to include"
3497ce9573eSRandy Dunlap	default ""
3501da177e4SLinus Torvalds	depends on !STANDALONE
3511da177e4SLinus Torvalds	help
352d89e9d6bSLen Brown	  This option supports a custom DSDT by linking it into the kernel.
353d89e9d6bSLen Brown
354c30fe7f7SUwe Zeisberger	  Enter the full path name to the file which includes the AmlCode
35582e4eb4eSWang Dongsheng	  or dsdt_aml_code declaration.
3561da177e4SLinus Torvalds
3577ce9573eSRandy Dunlap	  If unsure, don't enter a file name.
3587ce9573eSRandy Dunlap
3597ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT
3607ce9573eSRandy Dunlap	bool
3617ce9573eSRandy Dunlap	default ACPI_CUSTOM_DSDT_FILE != ""
3627ce9573eSRandy Dunlap
36391dda51aSAleksey Makarovconfig ARCH_HAS_ACPI_TABLE_UPGRADE
36491dda51aSAleksey Makarov	def_bool n
36591dda51aSAleksey Makarov
3665d881327SLv Zhengconfig ACPI_TABLE_UPGRADE
3675d881327SLv Zheng	bool "Allow upgrading ACPI tables via initrd"
36891dda51aSAleksey Makarov	depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
3695d881327SLv Zheng	default y
37053aac44cSThomas Renninger	help
3715d881327SLv Zheng	  This option provides functionality to upgrade arbitrary ACPI tables
37253aac44cSThomas Renninger	  via initrd. No functional change if no ACPI tables are passed via
37353aac44cSThomas Renninger	  initrd, therefore it's safe to say Y.
374cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
37553aac44cSThomas Renninger
37698a455d9SShunyong Yangconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
37798a455d9SShunyong Yang	bool "Override ACPI tables from built-in initrd"
37898a455d9SShunyong Yang	depends on ACPI_TABLE_UPGRADE
379d2cbbf1fSRobert Richter	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
38098a455d9SShunyong Yang	help
38198a455d9SShunyong Yang	  This option provides functionality to override arbitrary ACPI tables
38298a455d9SShunyong Yang	  from built-in uncompressed initrd.
38398a455d9SShunyong Yang
384cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
38598a455d9SShunyong Yang
3861da177e4SLinus Torvaldsconfig ACPI_DEBUG
3871da177e4SLinus Torvalds	bool "Debug Statements"
3881da177e4SLinus Torvalds	help
389a0d84a92SBjorn Helgaas	  The ACPI subsystem can produce debug output.  Saying Y enables this
390a0d84a92SBjorn Helgaas	  output and increases the kernel size by around 50K.
391a0d84a92SBjorn Helgaas
392a0d84a92SBjorn Helgaas	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
393cb1aaebeSMauro Carvalho Chehab	  parameters documented in Documentation/firmware-guide/acpi/debug.rst and
3948c27ceffSMauro Carvalho Chehab	  Documentation/admin-guide/kernel-parameters.rst to control the type and
395a0d84a92SBjorn Helgaas	  amount of debug output.
3961da177e4SLinus Torvalds
3978344b568SAlex Chiangconfig ACPI_PCI_SLOT
398ab1a2e03SJiang Liu	bool "PCI slot detection driver"
3995c6a1177SSinan Kaya	depends on SYSFS && PCI
4008344b568SAlex Chiang	help
4011c48aa36SBjorn Helgaas	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
4021c48aa36SBjorn Helgaas	  slots in the system.  This can help correlate PCI bus addresses,
4031c48aa36SBjorn Helgaas	  i.e., segment/bus/device/function tuples, with physical slots in
4041c48aa36SBjorn Helgaas	  the system.  If you are unsure, say N.
4051c48aa36SBjorn Helgaas
4061da177e4SLinus Torvaldsconfig ACPI_CONTAINER
40706991c28SLinus Torvalds	bool "Container and Module Devices"
408ea6a4581SPaul Bolle	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
4091c48aa36SBjorn Helgaas	help
4101c48aa36SBjorn Helgaas	  This driver supports ACPI Container and Module devices (IDs
4111c48aa36SBjorn Helgaas	  ACPI0004, PNP0A05, and PNP0A06).
41245b1b196SKeiichiro Tokunaga
4131c48aa36SBjorn Helgaas	  This helps support hotplug of nodes, CPUs, and memory.
4141c48aa36SBjorn Helgaas
4151da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_MEMORY
4160a347644SRafael J. Wysocki	bool "Memory Hotplug"
417bc02af93SYasunori Goto	depends on MEMORY_HOTPLUG
4181da177e4SLinus Torvalds	help
4191c48aa36SBjorn Helgaas	  This driver supports ACPI memory hotplug.  The driver
4201c48aa36SBjorn Helgaas	  fields notifications on ACPI memory devices (PNP0C80),
4211c48aa36SBjorn Helgaas	  which represent memory ranges that may be onlined or
4221c48aa36SBjorn Helgaas	  offlined during runtime.
4231da177e4SLinus Torvalds
4241c48aa36SBjorn Helgaas	  If your hardware and firmware do not support adding or
4251c48aa36SBjorn Helgaas	  removing memory devices at runtime, you need not enable
4261c48aa36SBjorn Helgaas	  this driver.
4271da177e4SLinus Torvalds
428c183619bSJiang Liuconfig ACPI_HOTPLUG_IOAPIC
429c183619bSJiang Liu	bool
430c183619bSJiang Liu	depends on PCI
431c183619bSJiang Liu	depends on X86_IO_APIC
432c183619bSJiang Liu	default y
433c183619bSJiang Liu
4343f86b832SRich Townsendconfig ACPI_SBS
43594f6c086SAlexey Starikovskiy	tristate "Smart Battery System"
436b4150fc4SVladimir Lebedev	depends on X86
4371b3d4c3bSZhang Rui	select POWER_SUPPLY
4383f86b832SRich Townsend	help
4391c48aa36SBjorn Helgaas	  This driver supports the Smart Battery System, another
44094f6c086SAlexey Starikovskiy	  type of access to battery information, found on some laptops.
4413f86b832SRich Townsend
4421c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4431c48aa36SBjorn Helgaas	  the modules will be called sbs and sbshc.
4441c48aa36SBjorn Helgaas
445801eab81SHuang Yingconfig ACPI_HED
446801eab81SHuang Ying	tristate "Hardware Error Device"
447801eab81SHuang Ying	help
448801eab81SHuang Ying	  This driver supports the Hardware Error Device (PNP0C33),
449801eab81SHuang Ying	  which is used to report some hardware errors notified via
450801eab81SHuang Ying	  SCI, mainly the corrected errors.
451801eab81SHuang Ying
452526b4af4SThomas Renningerconfig ACPI_CUSTOM_METHOD
453526b4af4SThomas Renninger	tristate "Allow ACPI methods to be inserted/replaced at run time"
454526b4af4SThomas Renninger	depends on DEBUG_FS
455526b4af4SThomas Renninger	help
456bd1b2a55SJustin P. Mattock	  This debug facility allows ACPI AML methods to be inserted and/or
457526b4af4SThomas Renninger	  replaced without rebooting the system. For details refer to:
458cb1aaebeSMauro Carvalho Chehab	  Documentation/firmware-guide/acpi/method-customizing.rst.
459526b4af4SThomas Renninger
460526b4af4SThomas Renninger	  NOTE: This option is security sensitive, because it allows arbitrary
461526b4af4SThomas Renninger	  kernel memory to be written to by root (uid=0) users, allowing them
462526b4af4SThomas Renninger	  to bypass certain security measures (e.g. if root is not allowed to
463526b4af4SThomas Renninger	  load additional kernel modules after boot, this feature may be used
464526b4af4SThomas Renninger	  to override that restriction).
465526b4af4SThomas Renninger
466d1ff4b1cSMatthew Garrettconfig ACPI_BGRT
4672223af38SJosh Triplett	bool "Boottime Graphics Resource Table support"
4686e7300cfSBhupesh Sharma	depends on EFI && (X86 || ARM64)
469d1ff4b1cSMatthew Garrett	help
470d1ff4b1cSMatthew Garrett	  This driver adds support for exposing the ACPI Boottime Graphics
471d1ff4b1cSMatthew Garrett	  Resource Table, which allows the operating system to obtain
472d1ff4b1cSMatthew Garrett	  data from the firmware boot splash. It will appear under
473d1ff4b1cSMatthew Garrett	  /sys/firmware/acpi/bgrt/ .
474d1ff4b1cSMatthew Garrett
475af1ae78aSAl Stoneconfig ACPI_REDUCED_HARDWARE_ONLY
476af1ae78aSAl Stone	bool "Hardware-reduced ACPI support only" if EXPERT
477af1ae78aSAl Stone	def_bool n
478af1ae78aSAl Stone	help
479af1ae78aSAl Stone	  This config item changes the way the ACPI code is built.  When this
480af1ae78aSAl Stone	  option is selected, the kernel will use a specialized version of
481af1ae78aSAl Stone	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
482af1ae78aSAl Stone	  resulting kernel will be smaller but it will also be restricted to
483af1ae78aSAl Stone	  running in ACPI reduced hardware mode ONLY.
484af1ae78aSAl Stone
485af1ae78aSAl Stone	  If you are unsure what to do, do not enable this option.
486af1ae78aSAl Stone
487bdf97013SDan Williamssource "drivers/acpi/nfit/Kconfig"
488c710fcc5SDan Williamssource "drivers/acpi/numa/Kconfig"
489a643ce20SHuang Yingsource "drivers/acpi/apei/Kconfig"
4906256ebd5SSrinivas Pandruvadasource "drivers/acpi/dptf/Kconfig"
491a643ce20SHuang Ying
492058dfc76SMika Westerbergconfig ACPI_WATCHDOG
493058dfc76SMika Westerberg	bool
494058dfc76SMika Westerberg
4954b3db708SChen, Gongconfig ACPI_EXTLOG
4964b3db708SChen, Gong	tristate "Extended Error Log support"
4979613916bSBorislav Petkov	depends on X86_MCE && X86_LOCAL_APIC && EDAC
4987ea6c6c1SLuck, Tony	select UEFI_CPER
4994b3db708SChen, Gong	help
5004b3db708SChen, Gong	  Certain usages such as Predictive Failure Analysis (PFA) require
5014b3db708SChen, Gong	  more information about the error than what can be described in
5024b3db708SChen, Gong	  processor machine check banks. Most server processors log
5034b3db708SChen, Gong	  additional information about the error in processor uncore
5044b3db708SChen, Gong	  registers. Since the addresses and layout of these registers vary
5054b3db708SChen, Gong	  widely from one processor to another, system software cannot
5064b3db708SChen, Gong	  readily make use of them. To complicate matters further, some of
5074b3db708SChen, Gong	  the additional error information cannot be constructed without
5084b3db708SChen, Gong	  detailed knowledge about platform topology.
5094b3db708SChen, Gong
5104b3db708SChen, Gong	  Enhanced MCA Logging allows firmware to provide additional error
5114b3db708SChen, Gong	  information to system software, synchronous with MCE or CMCI. This
5122dfb7d51SChen, Gong	  driver adds support for that functionality with corresponding
5132dfb7d51SChen, Gong	  tracepoint which carries that information to userspace.
5144b3db708SChen, Gong
5154cf841e3STony Luckconfig ACPI_ADXL
5164cf841e3STony Luck	bool
5174cf841e3STony Luck
5180bf54fcdSOctavian Purdilaconfig ACPI_CONFIGFS
5190bf54fcdSOctavian Purdila	tristate "ACPI configfs support"
5200bf54fcdSOctavian Purdila	select CONFIGFS_FS
5210bf54fcdSOctavian Purdila	help
5220bf54fcdSOctavian Purdila	  Select this option to enable support for ACPI configuration from
5230bf54fcdSOctavian Purdila	  userspace. The configurable ACPI groups will be visible under
5240bf54fcdSOctavian Purdila	  /config/acpi, assuming configfs is mounted under /config.
5250bf54fcdSOctavian Purdila
5260db89fa2SChen Yuconfig ACPI_PFRUT
5270db89fa2SChen Yu	tristate "ACPI Platform Firmware Runtime Update and Telemetry"
5280db89fa2SChen Yu	depends on 64BIT
5290db89fa2SChen Yu	help
5300db89fa2SChen Yu	  This mechanism allows certain pieces of the platform firmware
5310db89fa2SChen Yu	  to be updated on the fly while the system is running (runtime)
5320db89fa2SChen Yu	  without the need to restart it, which is key in the cases when
5330db89fa2SChen Yu	  the system needs to be available 100% of the time and it cannot
5340db89fa2SChen Yu	  afford the downtime related to restarting it, or when the work
5350db89fa2SChen Yu	  carried out by the system is particularly important, so it cannot
5360db89fa2SChen Yu	  be interrupted, and it is not practical to wait until it is complete.
5370db89fa2SChen Yu
5380db89fa2SChen Yu	  The existing firmware code can be modified (driver update) or
5390db89fa2SChen Yu	  extended by adding new code to the firmware (code injection).
5400db89fa2SChen Yu
541b0013e03SChen Yu	  Besides, the telemetry driver allows user space to fetch telemetry
542b0013e03SChen Yu	  data from the firmware with the help of the Platform Firmware Runtime
543b0013e03SChen Yu	  Telemetry interface.
544b0013e03SChen Yu
545b0013e03SChen Yu	  To compile the drivers as modules, choose M here:
546b0013e03SChen Yu	  the modules will be called pfr_update and pfr_telemetry.
5470db89fa2SChen Yu
54888ef16d8STomasz Nowickiif ARM64
54988ef16d8STomasz Nowickisource "drivers/acpi/arm64/Kconfig"
550f6f0c9a7SHuacai Chenendif
5510ce82232SJeremy Linton
5520ce82232SJeremy Lintonconfig ACPI_PPTT
5530ce82232SJeremy Linton	bool
55488ef16d8STomasz Nowicki
55577e2a047SSudeep Hollaconfig ACPI_PCC
55677e2a047SSudeep Holla	bool "ACPI PCC Address Space"
55777e2a047SSudeep Holla	depends on PCC
55877e2a047SSudeep Holla	default y
55977e2a047SSudeep Holla	help
56077e2a047SSudeep Holla	  The PCC Address Space also referred as PCC Operation Region pertains
56177e2a047SSudeep Holla	  to the region of PCC subspace that succeeds the PCC signature.
56277e2a047SSudeep Holla
56377e2a047SSudeep Holla	  The PCC Operation Region works in conjunction with the PCC Table
56477e2a047SSudeep Holla	  (Platform Communications Channel Table). PCC subspaces that are
56577e2a047SSudeep Holla	  marked for use as PCC Operation Regions must not be used as PCC
56677e2a047SSudeep Holla	  subspaces for the standard ACPI features such as CPPC, RASF, PDTT and
56777e2a047SSudeep Holla	  MPST. These standard features must always use the PCC Table instead.
56877e2a047SSudeep Holla
56977e2a047SSudeep Holla	  Enable this feature if you want to set up and install the PCC Address
57077e2a047SSudeep Holla	  Space handler to handle PCC OpRegion in the firmware.
57177e2a047SSudeep Holla
572e81c782cSSudeep Hollaconfig ACPI_FFH
573e81c782cSSudeep Holla	bool "ACPI FFH Address Space"
574e81c782cSSudeep Holla	default n
575e81c782cSSudeep Holla	help
576e81c782cSSudeep Holla	  The FFH(Fixed Function Hardware) Address Space also referred as FFH
577e81c782cSSudeep Holla	  Operation Region allows to define platform specific opregion.
578e81c782cSSudeep Holla
579e81c782cSSudeep Holla	  Enable this feature if you want to set up and install the FFH Address
580e81c782cSSudeep Holla	  Space handler to handle FFH OpRegion in the firmware.
581e81c782cSSudeep Holla
582fa870509SAndy Shevchenkosource "drivers/acpi/pmic/Kconfig"
583fa870509SAndy Shevchenko
5843cf48554SJean-Philippe Bruckerconfig ACPI_VIOT
5853cf48554SJean-Philippe Brucker	bool
5863cf48554SJean-Philippe Brucker
587e3435fffSSudeep Hollaconfig ACPI_PRMT
588e3435fffSSudeep Holla	bool "Platform Runtime Mechanism Support"
5895894cf57SArd Biesheuvel	depends on EFI_RUNTIME_WRAPPERS && (X86_64 || ARM64)
590e3435fffSSudeep Holla	default y
591e3435fffSSudeep Holla	help
592e3435fffSSudeep Holla	  Platform Runtime Mechanism (PRM) is a firmware interface exposing a
593e3435fffSSudeep Holla	  set of binary executables that can be called from the AML interpreter
594e3435fffSSudeep Holla	  or directly from device drivers.
595e3435fffSSudeep Holla
596e3435fffSSudeep Holla	  Say Y to enable the AML interpreter to execute the PRM code.
597e3435fffSSudeep Holla
598e3435fffSSudeep Holla	  While this feature is optional in principle, leaving it out may
599e3435fffSSudeep Holla	  substantially increase computational overhead related to the
600e3435fffSSudeep Holla	  initialization of some server systems.
601e3435fffSSudeep Holla
6021da177e4SLinus Torvaldsendif	# ACPI
60387e65d05SJan Kiszka
60487e65d05SJan Kiszkaconfig X86_PM_TIMER
60587e65d05SJan Kiszka	bool "Power Management Timer Support" if EXPERT
60687e65d05SJan Kiszka	depends on X86 && (ACPI || JAILHOUSE_GUEST)
60787e65d05SJan Kiszka	default y
60887e65d05SJan Kiszka	help
60987e65d05SJan Kiszka	  The Power Management Timer is available on all ACPI-capable,
61087e65d05SJan Kiszka	  in most cases even if ACPI is unusable or blacklisted.
61187e65d05SJan Kiszka
61287e65d05SJan Kiszka	  This timing source is not affected by power management features
61387e65d05SJan Kiszka	  like aggressive processor idling, throttling, frequency and/or
61487e65d05SJan Kiszka	  voltage scaling, unlike the commonly used Time Stamp Counter
61587e65d05SJan Kiszka	  (TSC) timing source.
61687e65d05SJan Kiszka
61787e65d05SJan Kiszka	  You should nearly always say Y here because many modern
61887e65d05SJan Kiszka	  systems require this timer.
619