xref: /linux/drivers/acpi/Kconfig (revision 0db89fa243e5edc5de38c88b369e4c3755c5fb74)
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
142c870e61SArnd Bergmann	default y if X86
151c48aa36SBjorn Helgaas	help
161da177e4SLinus Torvalds	  Advanced Configuration and Power Interface (ACPI) support for
171c48aa36SBjorn Helgaas	  Linux requires an ACPI-compliant platform (hardware/firmware),
181da177e4SLinus Torvalds	  and assumes the presence of OS-directed configuration and power
191da177e4SLinus Torvalds	  management (OSPM) software.  This option will enlarge your
201da177e4SLinus Torvalds	  kernel by about 70K.
211da177e4SLinus Torvalds
221da177e4SLinus Torvalds	  Linux ACPI provides a robust functional replacement for several
231da177e4SLinus Torvalds	  legacy configuration and power management interfaces, including
241da177e4SLinus Torvalds	  the Plug-and-Play BIOS specification (PnP BIOS), the
251da177e4SLinus Torvalds	  MultiProcessor Specification (MPS), and the Advanced Power
261da177e4SLinus Torvalds	  Management (APM) specification.  If both ACPI and APM support
271c48aa36SBjorn Helgaas	  are configured, ACPI is used.
281da177e4SLinus Torvalds
291c48aa36SBjorn Helgaas	  The project home page for the Linux ACPI subsystem is here:
30aaf3d29fSRafael J. Wysocki	  <https://01.org/linux-acpi>
311da177e4SLinus Torvalds
321da177e4SLinus Torvalds	  Linux support for ACPI is based on Intel Corporation's ACPI
331c48aa36SBjorn Helgaas	  Component Architecture (ACPI CA).  For more information on the
341c48aa36SBjorn Helgaas	  ACPI CA, see:
354ce77966SAlexander A. Klimov	  <https://acpica.org/>
361da177e4SLinus Torvalds
37c7f5220dSHanjun Guo	  ACPI is an open industry specification originally co-developed by
38c7f5220dSHanjun Guo	  Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
39c7f5220dSHanjun Guo	  it is developed by the ACPI Specification Working Group (ASWG) under
40c7f5220dSHanjun Guo	  the UEFI Forum and any UEFI member can join the ASWG and contribute
41c7f5220dSHanjun Guo	  to the ACPI specification.
421c48aa36SBjorn Helgaas	  The specification is available at:
430585c1c0STiezhu Yang	  <https://uefi.org/specifications>
441da177e4SLinus Torvalds
453e11c3ceSLen Brownif ACPI
463e11c3ceSLen Brown
478a1664beSGraeme Gregoryconfig ACPI_LEGACY_TABLES_LOOKUP
488a1664beSGraeme Gregory	bool
498a1664beSGraeme Gregory
5046ba51eaSHanjun Guoconfig ARCH_MIGHT_HAVE_ACPI_PDC
5146ba51eaSHanjun Guo	bool
5246ba51eaSHanjun Guo
53d8f4f161SLorenzo Pieralisiconfig ACPI_GENERIC_GSI
54d8f4f161SLorenzo Pieralisi	bool
55d8f4f161SLorenzo Pieralisi
566e0a0ea1SGraeme Gregoryconfig ACPI_SYSTEM_POWER_STATES_SUPPORT
576e0a0ea1SGraeme Gregory	bool
586e0a0ea1SGraeme Gregory
59d0562674SSuthikulpanit, Suraveeconfig ACPI_CCA_REQUIRED
60d0562674SSuthikulpanit, Suravee	bool
61d0562674SSuthikulpanit, Suravee
624d946f79SLv Zhengconfig ACPI_DEBUGGER
638cfb0cdfSLv Zheng	bool "AML debugger interface"
644d946f79SLv Zheng	select ACPI_DEBUG
654d946f79SLv Zheng	help
66836d0830SLv Zheng	  Enable in-kernel debugging of AML facilities: statistics,
67836d0830SLv Zheng	  internal object dump, single step control method execution.
684d946f79SLv Zheng	  This is still under development, currently enabling this only
694d946f79SLv Zheng	  results in the compilation of the ACPICA debugger files.
704d946f79SLv Zheng
71836d0830SLv Zhengif ACPI_DEBUGGER
72836d0830SLv Zheng
73836d0830SLv Zhengconfig ACPI_DEBUGGER_USER
74c117dfffSMasanari Iida	tristate "Userspace debugger accessibility"
75836d0830SLv Zheng	depends on DEBUG_FS
76836d0830SLv Zheng	help
77836d0830SLv Zheng	  Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
78836d0830SLv Zheng	  to access the debugger functionalities.
79836d0830SLv Zheng
80836d0830SLv Zhengendif
81836d0830SLv Zheng
82ad1696f6SAleksey Makarovconfig ACPI_SPCR_TABLE
830231d000SPrarit Bhargava	bool "ACPI Serial Port Console Redirection Support"
840231d000SPrarit Bhargava	default y if X86
850231d000SPrarit Bhargava	help
860231d000SPrarit Bhargava	  Enable support for Serial Port Console Redirection (SPCR) Table.
870231d000SPrarit Bhargava	  This table provides information about the configuration of the
880231d000SPrarit Bhargava	  earlycon console.
89ad1696f6SAleksey Makarov
90d1eb86e5SZhang Ruiconfig ACPI_FPDT
91d1eb86e5SZhang Rui	bool "ACPI Firmware Performance Data Table (FPDT) support"
92d1eb86e5SZhang Rui	depends on X86_64
93d1eb86e5SZhang Rui	help
94d1eb86e5SZhang Rui	  Enable support for the Firmware Performance Data Table (FPDT).
95d1eb86e5SZhang Rui	  This table provides information on the timing of the system
96d1eb86e5SZhang Rui	  boot, S3 suspend and S3 resume firmware code paths.
97d1eb86e5SZhang Rui
98eeb2d80dSSrinivas Pandruvadaconfig ACPI_LPIT
99eeb2d80dSSrinivas Pandruvada	bool
100eeb2d80dSSrinivas Pandruvada	depends on X86_64
101eeb2d80dSSrinivas Pandruvada	default y
102eeb2d80dSSrinivas Pandruvada
103673d5b43SLen Brownconfig ACPI_SLEEP
104673d5b43SLen Brown	bool
1055d1e072bSRafael J. Wysocki	depends on SUSPEND || HIBERNATION
1066e0a0ea1SGraeme Gregory	depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
107673d5b43SLen Brown	default y
108673d5b43SLen Brown
10918d78b64SRafael J. Wysockiconfig ACPI_REV_OVERRIDE_POSSIBLE
1109165dabbSMasanari Iida	bool "Allow supported ACPI revision to be overridden"
11118d78b64SRafael J. Wysocki	depends on X86
11218d78b64SRafael J. Wysocki	default y
11318d78b64SRafael J. Wysocki	help
11418d78b64SRafael J. Wysocki	  The platform firmware on some systems expects Linux to return "5" as
11518d78b64SRafael J. Wysocki	  the supported ACPI revision which makes it expose system configuration
11618d78b64SRafael J. Wysocki	  information in a special way.
11718d78b64SRafael J. Wysocki
11818d78b64SRafael J. Wysocki	  For example, based on what ACPI exports as the supported revision,
11918d78b64SRafael J. Wysocki	  Dell XPS 13 (2015) configures its audio device to either work in HDA
12018d78b64SRafael J. Wysocki	  mode or in I2S mode, where the former is supposed to be used on Linux
12118d78b64SRafael J. Wysocki	  until the latter is fully supported (in the kernel as well as in user
12218d78b64SRafael J. Wysocki	  space).
12318d78b64SRafael J. Wysocki
12418d78b64SRafael J. Wysocki	  This option enables a DMI-based quirk for the above Dell machine (so
12518d78b64SRafael J. Wysocki	  that HDA audio is exposed by the platform firmware to the kernel) and
12618d78b64SRafael J. Wysocki	  makes it possible to force the kernel to return "5" as the supported
12718d78b64SRafael J. Wysocki	  ACPI revision via the "acpi_rev_override" command line switch.
12818d78b64SRafael J. Wysocki
1291195a098SThomas Renningerconfig ACPI_EC_DEBUGFS
1301195a098SThomas Renninger	tristate "EC read/write access through /sys/kernel/debug/ec"
1311195a098SThomas Renninger	help
1321195a098SThomas Renninger	  Say N to disable Embedded Controller /sys/kernel/debug interface
1331195a098SThomas Renninger
134500de3ddSThomas Renninger	  Be aware that using this interface can confuse your Embedded
135500de3ddSThomas Renninger	  Controller in a way that a normal reboot is not enough. You then
13625cb1bfdSAndrea Gelmini	  have to power off your system, and remove the laptop battery for
137500de3ddSThomas Renninger	  some seconds.
1381195a098SThomas Renninger	  An Embedded Controller typically is available on laptops and reads
1391195a098SThomas Renninger	  sensor values like battery state and temperature.
140500de3ddSThomas Renninger	  The kernel accesses the EC through ACPI parsed code provided by BIOS
141500de3ddSThomas Renninger	  tables. This option allows to access the EC directly without ACPI
142500de3ddSThomas Renninger	  code being involved.
1431195a098SThomas Renninger	  Thus this option is a debug option that helps to write ACPI drivers
1441195a098SThomas Renninger	  and can be used to identify ACPI code or EC firmware bugs.
1451195a098SThomas Renninger
1461da177e4SLinus Torvaldsconfig ACPI_AC
1471da177e4SLinus Torvalds	tristate "AC Adapter"
1481b3d4c3bSZhang Rui	select POWER_SUPPLY
14907fefe4cSLen Brown	default y
1501da177e4SLinus Torvalds	help
1511c48aa36SBjorn Helgaas	  This driver supports the AC Adapter object, which indicates
1521c48aa36SBjorn Helgaas	  whether a system is on AC or not.  If you have a system that can
15307fefe4cSLen Brown	  switch between A/C and battery, say Y.
1541da177e4SLinus Torvalds
1551c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1561c48aa36SBjorn Helgaas	  the module will be called ac.
1571c48aa36SBjorn Helgaas
1581da177e4SLinus Torvaldsconfig ACPI_BATTERY
1591da177e4SLinus Torvalds	tristate "Battery"
1601b3d4c3bSZhang Rui	select POWER_SUPPLY
16107fefe4cSLen Brown	default y
1621da177e4SLinus Torvalds	help
1631da177e4SLinus Torvalds	  This driver adds support for battery information through
1641da177e4SLinus Torvalds	  /proc/acpi/battery. If you have a mobile system with a battery,
1651da177e4SLinus Torvalds	  say Y.
1661da177e4SLinus Torvalds
1671c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1681c48aa36SBjorn Helgaas	  the module will be called battery.
1691c48aa36SBjorn Helgaas
1701da177e4SLinus Torvaldsconfig ACPI_BUTTON
1711da177e4SLinus Torvalds	tristate "Button"
172c0968f0eSDmitry Torokhov	depends on INPUT
17307fefe4cSLen Brown	default y
1741da177e4SLinus Torvalds	help
1751c48aa36SBjorn Helgaas	  This driver handles events on the power, sleep, and lid buttons.
1767d13f94cSKrzysztof Mazur	  A daemon reads events from input devices or via netlink and
1777d13f94cSKrzysztof Mazur	  performs user-defined actions such as shutting down the system.
1787d13f94cSKrzysztof Mazur	  This is necessary for software-controlled poweroff.
1791c48aa36SBjorn Helgaas
1801c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1811c48aa36SBjorn Helgaas	  the module will be called button.
1821da177e4SLinus Torvalds
183a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON
184a1b93e89SJosh Triplett	tristate "Tiny Power Button Driver"
185a1b93e89SJosh Triplett	depends on !ACPI_BUTTON
186a1b93e89SJosh Triplett	help
187a1b93e89SJosh Triplett	  This driver provides a tiny alternative to the ACPI Button driver.
188a1b93e89SJosh Triplett	  The tiny power button driver only handles the power button. Rather
189a1b93e89SJosh Triplett	  than notifying userspace via the input layer or a netlink event, this
190a1b93e89SJosh Triplett	  driver directly signals the init process to shut down.
191a1b93e89SJosh Triplett
192a1b93e89SJosh Triplett	  This driver is particularly suitable for cloud and VM environments,
193a1b93e89SJosh Triplett	  which use a simulated power button to initiate a controlled poweroff,
194a1b93e89SJosh Triplett	  but which may not want to run a separate userspace daemon to process
195a1b93e89SJosh Triplett	  input events.
196a1b93e89SJosh Triplett
197a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON_SIGNAL
198a1b93e89SJosh Triplett	int "Tiny Power Button Signal"
199a1b93e89SJosh Triplett	depends on ACPI_TINY_POWER_BUTTON
200a1b93e89SJosh Triplett	default 38
201a1b93e89SJosh Triplett	help
202a1b93e89SJosh Triplett	  Default signal to send to init in response to the power button.
203a1b93e89SJosh Triplett
204a1b93e89SJosh Triplett	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
205a1b93e89SJosh Triplett	  (SIGINT) to simulate Ctrl+Alt+Del.
206a1b93e89SJosh Triplett
2071da177e4SLinus Torvaldsconfig ACPI_VIDEO
2081da177e4SLinus Torvalds	tristate "Video"
2099f380fc5SJean Delvare	depends on X86 && BACKLIGHT_CLASS_DEVICE
21003e2bf26SAndreas Herrmann	depends on INPUT
21163c4ec90SZhang Rui	select THERMAL
2121da177e4SLinus Torvalds	help
2131c48aa36SBjorn Helgaas	  This driver implements the ACPI Extensions For Display Adapters
2141da177e4SLinus Torvalds	  for integrated graphics devices on motherboard, as specified in
2151c48aa36SBjorn Helgaas	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
2161c48aa36SBjorn Helgaas	  such as defining the video POST device, retrieving EDID information,
2171c48aa36SBjorn Helgaas	  and setting up a video output.
2181c48aa36SBjorn Helgaas
2191c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2201c48aa36SBjorn Helgaas	  the module will be called video.
2211da177e4SLinus Torvalds
2221da177e4SLinus Torvaldsconfig ACPI_FAN
2231da177e4SLinus Torvalds	tristate "Fan"
224d8054749SZhang Rui	depends on THERMAL
22507fefe4cSLen Brown	default y
2261da177e4SLinus Torvalds	help
2271c48aa36SBjorn Helgaas	  This driver supports ACPI fan devices, allowing user-mode
2281da177e4SLinus Torvalds	  applications to perform basic fan control (on, off, status).
2291da177e4SLinus Torvalds
2301c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2311c48aa36SBjorn Helgaas	  the module will be called fan.
2321c48aa36SBjorn Helgaas
23395c513ecSRafael J. Wysockiconfig ACPI_TAD
23495c513ecSRafael J. Wysocki	tristate "ACPI Time and Alarm (TAD) Device Support"
23595c513ecSRafael J. Wysocki	depends on SYSFS && PM_SLEEP
23695c513ecSRafael J. Wysocki	help
23795c513ecSRafael J. Wysocki	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
23895c513ecSRafael J. Wysocki	  Time Clock (RTC).  Its wake timers allow the system to transition from
23995c513ecSRafael J. Wysocki	  the S3 (or optionally S4/S5) state to S0 state after a time period
24095c513ecSRafael J. Wysocki	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
24195c513ecSRafael J. Wysocki	  scale of flexibility in the wake timers.  The time capabilities of the
24295c513ecSRafael J. Wysocki	  TAD maintain the time of day information across platform power
24395c513ecSRafael J. Wysocki	  transitions, and keep track of time even when the platform is turned
24495c513ecSRafael J. Wysocki	  off.
24595c513ecSRafael J. Wysocki
246c8f7a62cSLen Brownconfig ACPI_DOCK
247898b054fSShaohua Li	bool "Dock"
248c8f7a62cSLen Brown	help
2491c48aa36SBjorn Helgaas	  This driver supports ACPI-controlled docking stations and removable
2501c48aa36SBjorn Helgaas	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
25101b57e73SKristen Carlson Accardi
252239708a3SAshwin Chauguleconfig ACPI_CPU_FREQ_PSS
253239708a3SAshwin Chaugule	bool
254239708a3SAshwin Chaugule	select THERMAL
255239708a3SAshwin Chaugule
25635ae7133SSudeep Hollaconfig ACPI_PROCESSOR_CSTATE
25735ae7133SSudeep Holla	def_bool y
258239ed06dSRafael J. Wysocki	depends on ACPI_PROCESSOR
25935ae7133SSudeep Holla	depends on IA64 || X86
26035ae7133SSudeep Holla
2615f05586cSAshwin Chauguleconfig ACPI_PROCESSOR_IDLE
2625f05586cSAshwin Chaugule	bool
2635f05586cSAshwin Chaugule	select CPU_IDLE
2645f05586cSAshwin Chaugule
265935c760eSTomasz Nowickiconfig ACPI_MCFG
266935c760eSTomasz Nowicki	bool
267935c760eSTomasz Nowicki
268337aadffSAshwin Chauguleconfig ACPI_CPPC_LIB
269337aadffSAshwin Chaugule	bool
270337aadffSAshwin Chaugule	depends on ACPI_PROCESSOR
271337aadffSAshwin Chaugule	select MAILBOX
272337aadffSAshwin Chaugule	select PCC
273337aadffSAshwin Chaugule	help
274337aadffSAshwin Chaugule	  If this option is enabled, this file implements common functionality
275337aadffSAshwin Chaugule	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
276337aadffSAshwin Chaugule	  routines implemented are meant to be used by other
277337aadffSAshwin Chaugule	  drivers to control CPU performance using CPPC semantics.
278337aadffSAshwin Chaugule	  If your platform does not support CPPC in firmware,
279337aadffSAshwin Chaugule	  leave this option disabled.
280337aadffSAshwin Chaugule
2811da177e4SLinus Torvaldsconfig ACPI_PROCESSOR
2821da177e4SLinus Torvalds	tristate "Processor"
283b1121e2aSHuacai Chen	depends on X86 || IA64 || ARM64 || LOONGARCH
2848fc85c6aSSudeep Holla	select ACPI_PROCESSOR_IDLE
285b1121e2aSHuacai Chen	select ACPI_CPU_FREQ_PSS if X86 || IA64 || LOONGARCH
28607fefe4cSLen Brown	default y
2871da177e4SLinus Torvalds	help
288239708a3SAshwin Chaugule	  This driver adds support for the ACPI Processor package. It is required
289239708a3SAshwin Chaugule	  by several flavors of cpufreq performance-state, thermal, throttling and
290239708a3SAshwin Chaugule	  idle drivers.
2911c48aa36SBjorn Helgaas
2921c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2931c48aa36SBjorn Helgaas	  the module will be called processor.
2944b88e330SLv Zheng
295e92b297cSZhao Yakuiconfig ACPI_IPMI
296e92b297cSZhao Yakui	tristate "IPMI"
29750121bebSSinan Kaya	depends on IPMI_HANDLER
298e92b297cSZhao Yakui	help
299e92b297cSZhao Yakui	  This driver enables the ACPI to access the BMC controller. And it
300e92b297cSZhao Yakui	  uses the IPMI request/response message to communicate with BMC
301e92b297cSZhao Yakui	  controller, which can be found on on the server.
302e92b297cSZhao Yakui
303e92b297cSZhao Yakui	  To compile this driver as a module, choose M here:
304e92b297cSZhao Yakui	  the module will be called as acpi_ipmi.
3051da177e4SLinus Torvalds
3061da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_CPU
307cbfc1baeSAdrian Bunk	bool
308f756f28bSKees Cook	depends on ACPI_PROCESSOR && HOTPLUG_CPU
3091da177e4SLinus Torvalds	select ACPI_CONTAINER
310cbfc1baeSAdrian Bunk	default y
3111da177e4SLinus Torvalds
3128e0af514SShaohua Liconfig ACPI_PROCESSOR_AGGREGATOR
3138e0af514SShaohua Li	tristate "Processor Aggregator"
3148e0af514SShaohua Li	depends on ACPI_PROCESSOR
315d91f79ebSLen Brown	depends on X86
3168e0af514SShaohua Li	help
3178e0af514SShaohua Li	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
318c4c4e2a5SJiri Slaby	  specific processor configuration and control that applies to all
3198e0af514SShaohua Li	  processors in the platform. Currently only logical processor idling
3208e0af514SShaohua Li	  is defined, which is to reduce power consumption. This driver
321c4c4e2a5SJiri Slaby	  supports the new device.
3228e0af514SShaohua Li
3231da177e4SLinus Torvaldsconfig ACPI_THERMAL
3241da177e4SLinus Torvalds	tristate "Thermal Zone"
3251da177e4SLinus Torvalds	depends on ACPI_PROCESSOR
3263f655ef8SZhang Rui	select THERMAL
32707fefe4cSLen Brown	default y
3281da177e4SLinus Torvalds	help
3291c48aa36SBjorn Helgaas	  This driver supports ACPI thermal zones.  Most mobile and
3301da177e4SLinus Torvalds	  some desktop systems support ACPI thermal zones.  It is HIGHLY
3311da177e4SLinus Torvalds	  recommended that this option be enabled, as your processor(s)
3321da177e4SLinus Torvalds	  may be damaged without it.
3331da177e4SLinus Torvalds
3341c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3351c48aa36SBjorn Helgaas	  the module will be called thermal.
3361c48aa36SBjorn Helgaas
337a2ff95e0SMark Pearsonconfig ACPI_PLATFORM_PROFILE
33821f05a43SMaximilian Luz	tristate
339a2ff95e0SMark Pearson
3407ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT_FILE
3417ce9573eSRandy Dunlap	string "Custom DSDT Table file to include"
3427ce9573eSRandy Dunlap	default ""
3431da177e4SLinus Torvalds	depends on !STANDALONE
3441da177e4SLinus Torvalds	help
345d89e9d6bSLen Brown	  This option supports a custom DSDT by linking it into the kernel.
346cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/dsdt-override.rst
347d89e9d6bSLen Brown
348c30fe7f7SUwe Zeisberger	  Enter the full path name to the file which includes the AmlCode
34982e4eb4eSWang Dongsheng	  or dsdt_aml_code declaration.
3501da177e4SLinus Torvalds
3517ce9573eSRandy Dunlap	  If unsure, don't enter a file name.
3527ce9573eSRandy Dunlap
3537ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT
3547ce9573eSRandy Dunlap	bool
3557ce9573eSRandy Dunlap	default ACPI_CUSTOM_DSDT_FILE != ""
3567ce9573eSRandy Dunlap
35791dda51aSAleksey Makarovconfig ARCH_HAS_ACPI_TABLE_UPGRADE
35891dda51aSAleksey Makarov	def_bool n
35991dda51aSAleksey Makarov
3605d881327SLv Zhengconfig ACPI_TABLE_UPGRADE
3615d881327SLv Zheng	bool "Allow upgrading ACPI tables via initrd"
36291dda51aSAleksey Makarov	depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
3635d881327SLv Zheng	default y
36453aac44cSThomas Renninger	help
3655d881327SLv Zheng	  This option provides functionality to upgrade arbitrary ACPI tables
36653aac44cSThomas Renninger	  via initrd. No functional change if no ACPI tables are passed via
36753aac44cSThomas Renninger	  initrd, therefore it's safe to say Y.
368cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
36953aac44cSThomas Renninger
37098a455d9SShunyong Yangconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
37198a455d9SShunyong Yang	bool "Override ACPI tables from built-in initrd"
37298a455d9SShunyong Yang	depends on ACPI_TABLE_UPGRADE
373d2cbbf1fSRobert Richter	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
37498a455d9SShunyong Yang	help
37598a455d9SShunyong Yang	  This option provides functionality to override arbitrary ACPI tables
37698a455d9SShunyong Yang	  from built-in uncompressed initrd.
37798a455d9SShunyong Yang
378cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
37998a455d9SShunyong Yang
3801da177e4SLinus Torvaldsconfig ACPI_DEBUG
3811da177e4SLinus Torvalds	bool "Debug Statements"
3821da177e4SLinus Torvalds	help
383a0d84a92SBjorn Helgaas	  The ACPI subsystem can produce debug output.  Saying Y enables this
384a0d84a92SBjorn Helgaas	  output and increases the kernel size by around 50K.
385a0d84a92SBjorn Helgaas
386a0d84a92SBjorn Helgaas	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
387cb1aaebeSMauro Carvalho Chehab	  parameters documented in Documentation/firmware-guide/acpi/debug.rst and
3888c27ceffSMauro Carvalho Chehab	  Documentation/admin-guide/kernel-parameters.rst to control the type and
389a0d84a92SBjorn Helgaas	  amount of debug output.
3901da177e4SLinus Torvalds
3918344b568SAlex Chiangconfig ACPI_PCI_SLOT
392ab1a2e03SJiang Liu	bool "PCI slot detection driver"
3935c6a1177SSinan Kaya	depends on SYSFS && PCI
3948344b568SAlex Chiang	help
3951c48aa36SBjorn Helgaas	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
3961c48aa36SBjorn Helgaas	  slots in the system.  This can help correlate PCI bus addresses,
3971c48aa36SBjorn Helgaas	  i.e., segment/bus/device/function tuples, with physical slots in
3981c48aa36SBjorn Helgaas	  the system.  If you are unsure, say N.
3991c48aa36SBjorn Helgaas
4001da177e4SLinus Torvaldsconfig ACPI_CONTAINER
40106991c28SLinus Torvalds	bool "Container and Module Devices"
402ea6a4581SPaul Bolle	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
4031c48aa36SBjorn Helgaas	help
4041c48aa36SBjorn Helgaas	  This driver supports ACPI Container and Module devices (IDs
4051c48aa36SBjorn Helgaas	  ACPI0004, PNP0A05, and PNP0A06).
40645b1b196SKeiichiro Tokunaga
4071c48aa36SBjorn Helgaas	  This helps support hotplug of nodes, CPUs, and memory.
4081c48aa36SBjorn Helgaas
4091da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_MEMORY
4100a347644SRafael J. Wysocki	bool "Memory Hotplug"
411bc02af93SYasunori Goto	depends on MEMORY_HOTPLUG
4121da177e4SLinus Torvalds	help
4131c48aa36SBjorn Helgaas	  This driver supports ACPI memory hotplug.  The driver
4141c48aa36SBjorn Helgaas	  fields notifications on ACPI memory devices (PNP0C80),
4151c48aa36SBjorn Helgaas	  which represent memory ranges that may be onlined or
4161c48aa36SBjorn Helgaas	  offlined during runtime.
4171da177e4SLinus Torvalds
4181c48aa36SBjorn Helgaas	  If your hardware and firmware do not support adding or
4191c48aa36SBjorn Helgaas	  removing memory devices at runtime, you need not enable
4201c48aa36SBjorn Helgaas	  this driver.
4211da177e4SLinus Torvalds
422c183619bSJiang Liuconfig ACPI_HOTPLUG_IOAPIC
423c183619bSJiang Liu	bool
424c183619bSJiang Liu	depends on PCI
425c183619bSJiang Liu	depends on X86_IO_APIC
426c183619bSJiang Liu	default y
427c183619bSJiang Liu
4283f86b832SRich Townsendconfig ACPI_SBS
42994f6c086SAlexey Starikovskiy	tristate "Smart Battery System"
430b4150fc4SVladimir Lebedev	depends on X86
4311b3d4c3bSZhang Rui	select POWER_SUPPLY
4323f86b832SRich Townsend	help
4331c48aa36SBjorn Helgaas	  This driver supports the Smart Battery System, another
43494f6c086SAlexey Starikovskiy	  type of access to battery information, found on some laptops.
4353f86b832SRich Townsend
4361c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4371c48aa36SBjorn Helgaas	  the modules will be called sbs and sbshc.
4381c48aa36SBjorn Helgaas
439801eab81SHuang Yingconfig ACPI_HED
440801eab81SHuang Ying	tristate "Hardware Error Device"
441801eab81SHuang Ying	help
442801eab81SHuang Ying	  This driver supports the Hardware Error Device (PNP0C33),
443801eab81SHuang Ying	  which is used to report some hardware errors notified via
444801eab81SHuang Ying	  SCI, mainly the corrected errors.
445801eab81SHuang Ying
446526b4af4SThomas Renningerconfig ACPI_CUSTOM_METHOD
447526b4af4SThomas Renninger	tristate "Allow ACPI methods to be inserted/replaced at run time"
448526b4af4SThomas Renninger	depends on DEBUG_FS
449526b4af4SThomas Renninger	help
450bd1b2a55SJustin P. Mattock	  This debug facility allows ACPI AML methods to be inserted and/or
451526b4af4SThomas Renninger	  replaced without rebooting the system. For details refer to:
452cb1aaebeSMauro Carvalho Chehab	  Documentation/firmware-guide/acpi/method-customizing.rst.
453526b4af4SThomas Renninger
454526b4af4SThomas Renninger	  NOTE: This option is security sensitive, because it allows arbitrary
455526b4af4SThomas Renninger	  kernel memory to be written to by root (uid=0) users, allowing them
456526b4af4SThomas Renninger	  to bypass certain security measures (e.g. if root is not allowed to
457526b4af4SThomas Renninger	  load additional kernel modules after boot, this feature may be used
458526b4af4SThomas Renninger	  to override that restriction).
459526b4af4SThomas Renninger
460d1ff4b1cSMatthew Garrettconfig ACPI_BGRT
4612223af38SJosh Triplett	bool "Boottime Graphics Resource Table support"
4626e7300cfSBhupesh Sharma	depends on EFI && (X86 || ARM64)
463d1ff4b1cSMatthew Garrett	help
464d1ff4b1cSMatthew Garrett	  This driver adds support for exposing the ACPI Boottime Graphics
465d1ff4b1cSMatthew Garrett	  Resource Table, which allows the operating system to obtain
466d1ff4b1cSMatthew Garrett	  data from the firmware boot splash. It will appear under
467d1ff4b1cSMatthew Garrett	  /sys/firmware/acpi/bgrt/ .
468d1ff4b1cSMatthew Garrett
469af1ae78aSAl Stoneconfig ACPI_REDUCED_HARDWARE_ONLY
470af1ae78aSAl Stone	bool "Hardware-reduced ACPI support only" if EXPERT
471af1ae78aSAl Stone	def_bool n
472af1ae78aSAl Stone	help
473af1ae78aSAl Stone	  This config item changes the way the ACPI code is built.  When this
474af1ae78aSAl Stone	  option is selected, the kernel will use a specialized version of
475af1ae78aSAl Stone	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
476af1ae78aSAl Stone	  resulting kernel will be smaller but it will also be restricted to
477af1ae78aSAl Stone	  running in ACPI reduced hardware mode ONLY.
478af1ae78aSAl Stone
479af1ae78aSAl Stone	  If you are unsure what to do, do not enable this option.
480af1ae78aSAl Stone
481bdf97013SDan Williamssource "drivers/acpi/nfit/Kconfig"
482c710fcc5SDan Williamssource "drivers/acpi/numa/Kconfig"
483a643ce20SHuang Yingsource "drivers/acpi/apei/Kconfig"
4846256ebd5SSrinivas Pandruvadasource "drivers/acpi/dptf/Kconfig"
485a643ce20SHuang Ying
486058dfc76SMika Westerbergconfig ACPI_WATCHDOG
487058dfc76SMika Westerberg	bool
488058dfc76SMika Westerberg
4894b3db708SChen, Gongconfig ACPI_EXTLOG
4904b3db708SChen, Gong	tristate "Extended Error Log support"
4919613916bSBorislav Petkov	depends on X86_MCE && X86_LOCAL_APIC && EDAC
4927ea6c6c1SLuck, Tony	select UEFI_CPER
4934b3db708SChen, Gong	help
4944b3db708SChen, Gong	  Certain usages such as Predictive Failure Analysis (PFA) require
4954b3db708SChen, Gong	  more information about the error than what can be described in
4964b3db708SChen, Gong	  processor machine check banks. Most server processors log
4974b3db708SChen, Gong	  additional information about the error in processor uncore
4984b3db708SChen, Gong	  registers. Since the addresses and layout of these registers vary
4994b3db708SChen, Gong	  widely from one processor to another, system software cannot
5004b3db708SChen, Gong	  readily make use of them. To complicate matters further, some of
5014b3db708SChen, Gong	  the additional error information cannot be constructed without
5024b3db708SChen, Gong	  detailed knowledge about platform topology.
5034b3db708SChen, Gong
5044b3db708SChen, Gong	  Enhanced MCA Logging allows firmware to provide additional error
5054b3db708SChen, Gong	  information to system software, synchronous with MCE or CMCI. This
5062dfb7d51SChen, Gong	  driver adds support for that functionality with corresponding
5072dfb7d51SChen, Gong	  tracepoint which carries that information to userspace.
5084b3db708SChen, Gong
5094cf841e3STony Luckconfig ACPI_ADXL
5104cf841e3STony Luck	bool
5114cf841e3STony Luck
5120bf54fcdSOctavian Purdilaconfig ACPI_CONFIGFS
5130bf54fcdSOctavian Purdila	tristate "ACPI configfs support"
5140bf54fcdSOctavian Purdila	select CONFIGFS_FS
5150bf54fcdSOctavian Purdila	help
5160bf54fcdSOctavian Purdila	  Select this option to enable support for ACPI configuration from
5170bf54fcdSOctavian Purdila	  userspace. The configurable ACPI groups will be visible under
5180bf54fcdSOctavian Purdila	  /config/acpi, assuming configfs is mounted under /config.
5190bf54fcdSOctavian Purdila
520*0db89fa2SChen Yuconfig ACPI_PFRUT
521*0db89fa2SChen Yu	tristate "ACPI Platform Firmware Runtime Update and Telemetry"
522*0db89fa2SChen Yu	depends on 64BIT
523*0db89fa2SChen Yu	help
524*0db89fa2SChen Yu	  This mechanism allows certain pieces of the platform firmware
525*0db89fa2SChen Yu	  to be updated on the fly while the system is running (runtime)
526*0db89fa2SChen Yu	  without the need to restart it, which is key in the cases when
527*0db89fa2SChen Yu	  the system needs to be available 100% of the time and it cannot
528*0db89fa2SChen Yu	  afford the downtime related to restarting it, or when the work
529*0db89fa2SChen Yu	  carried out by the system is particularly important, so it cannot
530*0db89fa2SChen Yu	  be interrupted, and it is not practical to wait until it is complete.
531*0db89fa2SChen Yu
532*0db89fa2SChen Yu	  The existing firmware code can be modified (driver update) or
533*0db89fa2SChen Yu	  extended by adding new code to the firmware (code injection).
534*0db89fa2SChen Yu
535*0db89fa2SChen Yu	  To compile this driver as module, choose M here:
536*0db89fa2SChen Yu	  the module will be called pfr_update.
537*0db89fa2SChen Yu
53888ef16d8STomasz Nowickiif ARM64
53988ef16d8STomasz Nowickisource "drivers/acpi/arm64/Kconfig"
5400ce82232SJeremy Linton
5410ce82232SJeremy Lintonconfig ACPI_PPTT
5420ce82232SJeremy Linton	bool
54388ef16d8STomasz Nowickiendif
54488ef16d8STomasz Nowicki
545fa870509SAndy Shevchenkosource "drivers/acpi/pmic/Kconfig"
546fa870509SAndy Shevchenko
5473cf48554SJean-Philippe Bruckerconfig ACPI_VIOT
5483cf48554SJean-Philippe Brucker	bool
5493cf48554SJean-Philippe Brucker
5501da177e4SLinus Torvaldsendif	# ACPI
55187e65d05SJan Kiszka
55287e65d05SJan Kiszkaconfig X86_PM_TIMER
55387e65d05SJan Kiszka	bool "Power Management Timer Support" if EXPERT
55487e65d05SJan Kiszka	depends on X86 && (ACPI || JAILHOUSE_GUEST)
55587e65d05SJan Kiszka	default y
55687e65d05SJan Kiszka	help
55787e65d05SJan Kiszka	  The Power Management Timer is available on all ACPI-capable,
55887e65d05SJan Kiszka	  in most cases even if ACPI is unusable or blacklisted.
55987e65d05SJan Kiszka
56087e65d05SJan Kiszka	  This timing source is not affected by power management features
56187e65d05SJan Kiszka	  like aggressive processor idling, throttling, frequency and/or
56287e65d05SJan Kiszka	  voltage scaling, unlike the commonly used Time Stamp Counter
56387e65d05SJan Kiszka	  (TSC) timing source.
56487e65d05SJan Kiszka
56587e65d05SJan Kiszka	  You should nearly always say Y here because many modern
56687e65d05SJan Kiszka	  systems require this timer.
567cefc7ca4SErik Kaneda
568cefc7ca4SErik Kanedaconfig ACPI_PRMT
569cefc7ca4SErik Kaneda	bool "Platform Runtime Mechanism Support"
570cefc7ca4SErik Kaneda	depends on EFI && X86_64
571cefc7ca4SErik Kaneda	default y
5729b52363bSRafael J. Wysocki	help
5739b52363bSRafael J. Wysocki	  Platform Runtime Mechanism (PRM) is a firmware interface exposing a
5749b52363bSRafael J. Wysocki	  set of binary executables that can be called from the AML interpreter
5759b52363bSRafael J. Wysocki	  or directly from device drivers.
5769b52363bSRafael J. Wysocki
5779b52363bSRafael J. Wysocki	  Say Y to enable the AML interpreter to execute the PRM code.
5789b52363bSRafael J. Wysocki
5799b52363bSRafael J. Wysocki	  While this feature is optional in principle, leaving it out may
5809b52363bSRafael J. Wysocki	  substantially increase computational overhead related to the
5819b52363bSRafael J. Wysocki	  initialization of some server systems.
582