xref: /linux/drivers/acpi/Kconfig (revision a2ff95e018f1d2bc816f3078d5110a655e355f18)
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
74836d0830SLv Zheng	tristate "Userspace debugger accessiblity"
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
90eeb2d80dSSrinivas Pandruvadaconfig ACPI_LPIT
91eeb2d80dSSrinivas Pandruvada	bool
92eeb2d80dSSrinivas Pandruvada	depends on X86_64
93eeb2d80dSSrinivas Pandruvada	default y
94eeb2d80dSSrinivas Pandruvada
95673d5b43SLen Brownconfig ACPI_SLEEP
96673d5b43SLen Brown	bool
975d1e072bSRafael J. Wysocki	depends on SUSPEND || HIBERNATION
986e0a0ea1SGraeme Gregory	depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
99673d5b43SLen Brown	default y
100673d5b43SLen Brown
10118d78b64SRafael J. Wysockiconfig ACPI_REV_OVERRIDE_POSSIBLE
1029165dabbSMasanari Iida	bool "Allow supported ACPI revision to be overridden"
10318d78b64SRafael J. Wysocki	depends on X86
10418d78b64SRafael J. Wysocki	default y
10518d78b64SRafael J. Wysocki	help
10618d78b64SRafael J. Wysocki	  The platform firmware on some systems expects Linux to return "5" as
10718d78b64SRafael J. Wysocki	  the supported ACPI revision which makes it expose system configuration
10818d78b64SRafael J. Wysocki	  information in a special way.
10918d78b64SRafael J. Wysocki
11018d78b64SRafael J. Wysocki	  For example, based on what ACPI exports as the supported revision,
11118d78b64SRafael J. Wysocki	  Dell XPS 13 (2015) configures its audio device to either work in HDA
11218d78b64SRafael J. Wysocki	  mode or in I2S mode, where the former is supposed to be used on Linux
11318d78b64SRafael J. Wysocki	  until the latter is fully supported (in the kernel as well as in user
11418d78b64SRafael J. Wysocki	  space).
11518d78b64SRafael J. Wysocki
11618d78b64SRafael J. Wysocki	  This option enables a DMI-based quirk for the above Dell machine (so
11718d78b64SRafael J. Wysocki	  that HDA audio is exposed by the platform firmware to the kernel) and
11818d78b64SRafael J. Wysocki	  makes it possible to force the kernel to return "5" as the supported
11918d78b64SRafael J. Wysocki	  ACPI revision via the "acpi_rev_override" command line switch.
12018d78b64SRafael J. Wysocki
1211195a098SThomas Renningerconfig ACPI_EC_DEBUGFS
1221195a098SThomas Renninger	tristate "EC read/write access through /sys/kernel/debug/ec"
1231195a098SThomas Renninger	help
1241195a098SThomas Renninger	  Say N to disable Embedded Controller /sys/kernel/debug interface
1251195a098SThomas Renninger
126500de3ddSThomas Renninger	  Be aware that using this interface can confuse your Embedded
127500de3ddSThomas Renninger	  Controller in a way that a normal reboot is not enough. You then
12825cb1bfdSAndrea Gelmini	  have to power off your system, and remove the laptop battery for
129500de3ddSThomas Renninger	  some seconds.
1301195a098SThomas Renninger	  An Embedded Controller typically is available on laptops and reads
1311195a098SThomas Renninger	  sensor values like battery state and temperature.
132500de3ddSThomas Renninger	  The kernel accesses the EC through ACPI parsed code provided by BIOS
133500de3ddSThomas Renninger	  tables. This option allows to access the EC directly without ACPI
134500de3ddSThomas Renninger	  code being involved.
1351195a098SThomas Renninger	  Thus this option is a debug option that helps to write ACPI drivers
1361195a098SThomas Renninger	  and can be used to identify ACPI code or EC firmware bugs.
1371195a098SThomas Renninger
1381da177e4SLinus Torvaldsconfig ACPI_AC
1391da177e4SLinus Torvalds	tristate "AC Adapter"
1401b3d4c3bSZhang Rui	select POWER_SUPPLY
14107fefe4cSLen Brown	default y
1421da177e4SLinus Torvalds	help
1431c48aa36SBjorn Helgaas	  This driver supports the AC Adapter object, which indicates
1441c48aa36SBjorn Helgaas	  whether a system is on AC or not.  If you have a system that can
14507fefe4cSLen Brown	  switch between A/C and battery, say Y.
1461da177e4SLinus Torvalds
1471c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1481c48aa36SBjorn Helgaas	  the module will be called ac.
1491c48aa36SBjorn Helgaas
1501da177e4SLinus Torvaldsconfig ACPI_BATTERY
1511da177e4SLinus Torvalds	tristate "Battery"
1521b3d4c3bSZhang Rui	select POWER_SUPPLY
15307fefe4cSLen Brown	default y
1541da177e4SLinus Torvalds	help
1551da177e4SLinus Torvalds	  This driver adds support for battery information through
1561da177e4SLinus Torvalds	  /proc/acpi/battery. If you have a mobile system with a battery,
1571da177e4SLinus Torvalds	  say Y.
1581da177e4SLinus Torvalds
1591c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1601c48aa36SBjorn Helgaas	  the module will be called battery.
1611c48aa36SBjorn Helgaas
1621da177e4SLinus Torvaldsconfig ACPI_BUTTON
1631da177e4SLinus Torvalds	tristate "Button"
164c0968f0eSDmitry Torokhov	depends on INPUT
16507fefe4cSLen Brown	default y
1661da177e4SLinus Torvalds	help
1671c48aa36SBjorn Helgaas	  This driver handles events on the power, sleep, and lid buttons.
1687d13f94cSKrzysztof Mazur	  A daemon reads events from input devices or via netlink and
1697d13f94cSKrzysztof Mazur	  performs user-defined actions such as shutting down the system.
1707d13f94cSKrzysztof Mazur	  This is necessary for software-controlled poweroff.
1711c48aa36SBjorn Helgaas
1721c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
1731c48aa36SBjorn Helgaas	  the module will be called button.
1741da177e4SLinus Torvalds
175a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON
176a1b93e89SJosh Triplett	tristate "Tiny Power Button Driver"
177a1b93e89SJosh Triplett	depends on !ACPI_BUTTON
178a1b93e89SJosh Triplett	help
179a1b93e89SJosh Triplett	  This driver provides a tiny alternative to the ACPI Button driver.
180a1b93e89SJosh Triplett	  The tiny power button driver only handles the power button. Rather
181a1b93e89SJosh Triplett	  than notifying userspace via the input layer or a netlink event, this
182a1b93e89SJosh Triplett	  driver directly signals the init process to shut down.
183a1b93e89SJosh Triplett
184a1b93e89SJosh Triplett	  This driver is particularly suitable for cloud and VM environments,
185a1b93e89SJosh Triplett	  which use a simulated power button to initiate a controlled poweroff,
186a1b93e89SJosh Triplett	  but which may not want to run a separate userspace daemon to process
187a1b93e89SJosh Triplett	  input events.
188a1b93e89SJosh Triplett
189a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON_SIGNAL
190a1b93e89SJosh Triplett	int "Tiny Power Button Signal"
191a1b93e89SJosh Triplett	depends on ACPI_TINY_POWER_BUTTON
192a1b93e89SJosh Triplett	default 38
193a1b93e89SJosh Triplett	help
194a1b93e89SJosh Triplett	  Default signal to send to init in response to the power button.
195a1b93e89SJosh Triplett
196a1b93e89SJosh Triplett	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
197a1b93e89SJosh Triplett	  (SIGINT) to simulate Ctrl+Alt+Del.
198a1b93e89SJosh Triplett
1991da177e4SLinus Torvaldsconfig ACPI_VIDEO
2001da177e4SLinus Torvalds	tristate "Video"
2019f380fc5SJean Delvare	depends on X86 && BACKLIGHT_CLASS_DEVICE
20203e2bf26SAndreas Herrmann	depends on INPUT
20363c4ec90SZhang Rui	select THERMAL
2041da177e4SLinus Torvalds	help
2051c48aa36SBjorn Helgaas	  This driver implements the ACPI Extensions For Display Adapters
2061da177e4SLinus Torvalds	  for integrated graphics devices on motherboard, as specified in
2071c48aa36SBjorn Helgaas	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
2081c48aa36SBjorn Helgaas	  such as defining the video POST device, retrieving EDID information,
2091c48aa36SBjorn Helgaas	  and setting up a video output.
2101c48aa36SBjorn Helgaas
2111c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2121c48aa36SBjorn Helgaas	  the module will be called video.
2131da177e4SLinus Torvalds
2141da177e4SLinus Torvaldsconfig ACPI_FAN
2151da177e4SLinus Torvalds	tristate "Fan"
216d8054749SZhang Rui	depends on THERMAL
21707fefe4cSLen Brown	default y
2181da177e4SLinus Torvalds	help
2191c48aa36SBjorn Helgaas	  This driver supports ACPI fan devices, allowing user-mode
2201da177e4SLinus Torvalds	  applications to perform basic fan control (on, off, status).
2211da177e4SLinus Torvalds
2221c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2231c48aa36SBjorn Helgaas	  the module will be called fan.
2241c48aa36SBjorn Helgaas
22595c513ecSRafael J. Wysockiconfig ACPI_TAD
22695c513ecSRafael J. Wysocki	tristate "ACPI Time and Alarm (TAD) Device Support"
22795c513ecSRafael J. Wysocki	depends on SYSFS && PM_SLEEP
22895c513ecSRafael J. Wysocki	help
22995c513ecSRafael J. Wysocki	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
23095c513ecSRafael J. Wysocki	  Time Clock (RTC).  Its wake timers allow the system to transition from
23195c513ecSRafael J. Wysocki	  the S3 (or optionally S4/S5) state to S0 state after a time period
23295c513ecSRafael J. Wysocki	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
23395c513ecSRafael J. Wysocki	  scale of flexibility in the wake timers.  The time capabilities of the
23495c513ecSRafael J. Wysocki	  TAD maintain the time of day information across platform power
23595c513ecSRafael J. Wysocki	  transitions, and keep track of time even when the platform is turned
23695c513ecSRafael J. Wysocki	  off.
23795c513ecSRafael J. Wysocki
238c8f7a62cSLen Brownconfig ACPI_DOCK
239898b054fSShaohua Li	bool "Dock"
240c8f7a62cSLen Brown	help
2411c48aa36SBjorn Helgaas	  This driver supports ACPI-controlled docking stations and removable
2421c48aa36SBjorn Helgaas	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
24301b57e73SKristen Carlson Accardi
244239708a3SAshwin Chauguleconfig ACPI_CPU_FREQ_PSS
245239708a3SAshwin Chaugule	bool
246239708a3SAshwin Chaugule	select THERMAL
247239708a3SAshwin Chaugule
24835ae7133SSudeep Hollaconfig ACPI_PROCESSOR_CSTATE
24935ae7133SSudeep Holla	def_bool y
250239ed06dSRafael J. Wysocki	depends on ACPI_PROCESSOR
25135ae7133SSudeep Holla	depends on IA64 || X86
25235ae7133SSudeep Holla
2535f05586cSAshwin Chauguleconfig ACPI_PROCESSOR_IDLE
2545f05586cSAshwin Chaugule	bool
2555f05586cSAshwin Chaugule	select CPU_IDLE
2565f05586cSAshwin Chaugule
257935c760eSTomasz Nowickiconfig ACPI_MCFG
258935c760eSTomasz Nowicki	bool
259935c760eSTomasz Nowicki
260337aadffSAshwin Chauguleconfig ACPI_CPPC_LIB
261337aadffSAshwin Chaugule	bool
262337aadffSAshwin Chaugule	depends on ACPI_PROCESSOR
263337aadffSAshwin Chaugule	select MAILBOX
264337aadffSAshwin Chaugule	select PCC
265337aadffSAshwin Chaugule	help
266337aadffSAshwin Chaugule	  If this option is enabled, this file implements common functionality
267337aadffSAshwin Chaugule	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
268337aadffSAshwin Chaugule	  routines implemented are meant to be used by other
269337aadffSAshwin Chaugule	  drivers to control CPU performance using CPPC semantics.
270337aadffSAshwin Chaugule	  If your platform does not support CPPC in firmware,
271337aadffSAshwin Chaugule	  leave this option disabled.
272337aadffSAshwin Chaugule
2731da177e4SLinus Torvaldsconfig ACPI_PROCESSOR
2741da177e4SLinus Torvalds	tristate "Processor"
275ad806ea6SAshwin Chaugule	depends on X86 || IA64 || ARM64
2768fc85c6aSSudeep Holla	select ACPI_PROCESSOR_IDLE
277ad806ea6SAshwin Chaugule	select ACPI_CPU_FREQ_PSS if X86 || IA64
27807fefe4cSLen Brown	default y
2791da177e4SLinus Torvalds	help
280239708a3SAshwin Chaugule	  This driver adds support for the ACPI Processor package. It is required
281239708a3SAshwin Chaugule	  by several flavors of cpufreq performance-state, thermal, throttling and
282239708a3SAshwin Chaugule	  idle drivers.
2831c48aa36SBjorn Helgaas
2841c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
2851c48aa36SBjorn Helgaas	  the module will be called processor.
2864b88e330SLv Zheng
287e92b297cSZhao Yakuiconfig ACPI_IPMI
288e92b297cSZhao Yakui	tristate "IPMI"
28950121bebSSinan Kaya	depends on IPMI_HANDLER
290e92b297cSZhao Yakui	help
291e92b297cSZhao Yakui	  This driver enables the ACPI to access the BMC controller. And it
292e92b297cSZhao Yakui	  uses the IPMI request/response message to communicate with BMC
293e92b297cSZhao Yakui	  controller, which can be found on on the server.
294e92b297cSZhao Yakui
295e92b297cSZhao Yakui	  To compile this driver as a module, choose M here:
296e92b297cSZhao Yakui	  the module will be called as acpi_ipmi.
2971da177e4SLinus Torvalds
2981da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_CPU
299cbfc1baeSAdrian Bunk	bool
300f756f28bSKees Cook	depends on ACPI_PROCESSOR && HOTPLUG_CPU
3011da177e4SLinus Torvalds	select ACPI_CONTAINER
302cbfc1baeSAdrian Bunk	default y
3031da177e4SLinus Torvalds
3048e0af514SShaohua Liconfig ACPI_PROCESSOR_AGGREGATOR
3058e0af514SShaohua Li	tristate "Processor Aggregator"
3068e0af514SShaohua Li	depends on ACPI_PROCESSOR
307d91f79ebSLen Brown	depends on X86
3088e0af514SShaohua Li	help
3098e0af514SShaohua Li	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
310c4c4e2a5SJiri Slaby	  specific processor configuration and control that applies to all
3118e0af514SShaohua Li	  processors in the platform. Currently only logical processor idling
3128e0af514SShaohua Li	  is defined, which is to reduce power consumption. This driver
313c4c4e2a5SJiri Slaby	  supports the new device.
3148e0af514SShaohua Li
3151da177e4SLinus Torvaldsconfig ACPI_THERMAL
3161da177e4SLinus Torvalds	tristate "Thermal Zone"
3171da177e4SLinus Torvalds	depends on ACPI_PROCESSOR
3183f655ef8SZhang Rui	select THERMAL
31907fefe4cSLen Brown	default y
3201da177e4SLinus Torvalds	help
3211c48aa36SBjorn Helgaas	  This driver supports ACPI thermal zones.  Most mobile and
3221da177e4SLinus Torvalds	  some desktop systems support ACPI thermal zones.  It is HIGHLY
3231da177e4SLinus Torvalds	  recommended that this option be enabled, as your processor(s)
3241da177e4SLinus Torvalds	  may be damaged without it.
3251da177e4SLinus Torvalds
3261c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
3271c48aa36SBjorn Helgaas	  the module will be called thermal.
3281c48aa36SBjorn Helgaas
329*a2ff95e0SMark Pearsonconfig ACPI_PLATFORM_PROFILE
330*a2ff95e0SMark Pearson	tristate "ACPI Platform Profile Driver"
331*a2ff95e0SMark Pearson	default m
332*a2ff95e0SMark Pearson	help
333*a2ff95e0SMark Pearson	  This driver adds support for platform-profiles on platforms that
334*a2ff95e0SMark Pearson	  support it.
335*a2ff95e0SMark Pearson
336*a2ff95e0SMark Pearson	  Platform-profiles can be used to control the platform behaviour. For
337*a2ff95e0SMark Pearson	  example whether to operate in a lower power mode, in a higher
338*a2ff95e0SMark Pearson	  power performance mode or between the two.
339*a2ff95e0SMark Pearson
340*a2ff95e0SMark Pearson	  This driver provides the sysfs interface and is used as the registration
341*a2ff95e0SMark Pearson	  point for platform specific drivers.
342*a2ff95e0SMark Pearson
343*a2ff95e0SMark Pearson	  Which profiles are supported is determined on a per-platform basis and
344*a2ff95e0SMark Pearson	  should be obtained from the platform specific driver.
345*a2ff95e0SMark Pearson
3467ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT_FILE
3477ce9573eSRandy Dunlap	string "Custom DSDT Table file to include"
3487ce9573eSRandy Dunlap	default ""
3491da177e4SLinus Torvalds	depends on !STANDALONE
3501da177e4SLinus Torvalds	help
351d89e9d6bSLen Brown	  This option supports a custom DSDT by linking it into the kernel.
352cb1aaebeSMauro Carvalho Chehab	  See Documentation/admin-guide/acpi/dsdt-override.rst
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
37998a455d9SShunyong Yang	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION=""
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
4151c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4161c48aa36SBjorn Helgaas	  the module will be called container.
4171da177e4SLinus Torvalds
4181da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_MEMORY
4190a347644SRafael J. Wysocki	bool "Memory Hotplug"
420bc02af93SYasunori Goto	depends on MEMORY_HOTPLUG
4211da177e4SLinus Torvalds	help
4221c48aa36SBjorn Helgaas	  This driver supports ACPI memory hotplug.  The driver
4231c48aa36SBjorn Helgaas	  fields notifications on ACPI memory devices (PNP0C80),
4241c48aa36SBjorn Helgaas	  which represent memory ranges that may be onlined or
4251c48aa36SBjorn Helgaas	  offlined during runtime.
4261da177e4SLinus Torvalds
4271c48aa36SBjorn Helgaas	  If your hardware and firmware do not support adding or
4281c48aa36SBjorn Helgaas	  removing memory devices at runtime, you need not enable
4291c48aa36SBjorn Helgaas	  this driver.
4301da177e4SLinus Torvalds
4311c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4321c48aa36SBjorn Helgaas	  the module will be called acpi_memhotplug.
4333f86b832SRich Townsend
434c183619bSJiang Liuconfig ACPI_HOTPLUG_IOAPIC
435c183619bSJiang Liu	bool
436c183619bSJiang Liu	depends on PCI
437c183619bSJiang Liu	depends on X86_IO_APIC
438c183619bSJiang Liu	default y
439c183619bSJiang Liu
4403f86b832SRich Townsendconfig ACPI_SBS
44194f6c086SAlexey Starikovskiy	tristate "Smart Battery System"
442b4150fc4SVladimir Lebedev	depends on X86
4431b3d4c3bSZhang Rui	select POWER_SUPPLY
4443f86b832SRich Townsend	help
4451c48aa36SBjorn Helgaas	  This driver supports the Smart Battery System, another
44694f6c086SAlexey Starikovskiy	  type of access to battery information, found on some laptops.
4473f86b832SRich Townsend
4481c48aa36SBjorn Helgaas	  To compile this driver as a module, choose M here:
4491c48aa36SBjorn Helgaas	  the modules will be called sbs and sbshc.
4501c48aa36SBjorn Helgaas
451801eab81SHuang Yingconfig ACPI_HED
452801eab81SHuang Ying	tristate "Hardware Error Device"
453801eab81SHuang Ying	help
454801eab81SHuang Ying	  This driver supports the Hardware Error Device (PNP0C33),
455801eab81SHuang Ying	  which is used to report some hardware errors notified via
456801eab81SHuang Ying	  SCI, mainly the corrected errors.
457801eab81SHuang Ying
458526b4af4SThomas Renningerconfig ACPI_CUSTOM_METHOD
459526b4af4SThomas Renninger	tristate "Allow ACPI methods to be inserted/replaced at run time"
460526b4af4SThomas Renninger	depends on DEBUG_FS
461526b4af4SThomas Renninger	help
462bd1b2a55SJustin P. Mattock	  This debug facility allows ACPI AML methods to be inserted and/or
463526b4af4SThomas Renninger	  replaced without rebooting the system. For details refer to:
464cb1aaebeSMauro Carvalho Chehab	  Documentation/firmware-guide/acpi/method-customizing.rst.
465526b4af4SThomas Renninger
466526b4af4SThomas Renninger	  NOTE: This option is security sensitive, because it allows arbitrary
467526b4af4SThomas Renninger	  kernel memory to be written to by root (uid=0) users, allowing them
468526b4af4SThomas Renninger	  to bypass certain security measures (e.g. if root is not allowed to
469526b4af4SThomas Renninger	  load additional kernel modules after boot, this feature may be used
470526b4af4SThomas Renninger	  to override that restriction).
471526b4af4SThomas Renninger
472d1ff4b1cSMatthew Garrettconfig ACPI_BGRT
4732223af38SJosh Triplett	bool "Boottime Graphics Resource Table support"
4746e7300cfSBhupesh Sharma	depends on EFI && (X86 || ARM64)
475d1ff4b1cSMatthew Garrett	help
476d1ff4b1cSMatthew Garrett	  This driver adds support for exposing the ACPI Boottime Graphics
477d1ff4b1cSMatthew Garrett	  Resource Table, which allows the operating system to obtain
478d1ff4b1cSMatthew Garrett	  data from the firmware boot splash. It will appear under
479d1ff4b1cSMatthew Garrett	  /sys/firmware/acpi/bgrt/ .
480d1ff4b1cSMatthew Garrett
481af1ae78aSAl Stoneconfig ACPI_REDUCED_HARDWARE_ONLY
482af1ae78aSAl Stone	bool "Hardware-reduced ACPI support only" if EXPERT
483af1ae78aSAl Stone	def_bool n
484af1ae78aSAl Stone	help
485af1ae78aSAl Stone	  This config item changes the way the ACPI code is built.  When this
486af1ae78aSAl Stone	  option is selected, the kernel will use a specialized version of
487af1ae78aSAl Stone	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
488af1ae78aSAl Stone	  resulting kernel will be smaller but it will also be restricted to
489af1ae78aSAl Stone	  running in ACPI reduced hardware mode ONLY.
490af1ae78aSAl Stone
491af1ae78aSAl Stone	  If you are unsure what to do, do not enable this option.
492af1ae78aSAl Stone
493bdf97013SDan Williamssource "drivers/acpi/nfit/Kconfig"
494c710fcc5SDan Williamssource "drivers/acpi/numa/Kconfig"
495a643ce20SHuang Yingsource "drivers/acpi/apei/Kconfig"
4966256ebd5SSrinivas Pandruvadasource "drivers/acpi/dptf/Kconfig"
497a643ce20SHuang Ying
498058dfc76SMika Westerbergconfig ACPI_WATCHDOG
499058dfc76SMika Westerberg	bool
500058dfc76SMika Westerberg
5014b3db708SChen, Gongconfig ACPI_EXTLOG
5024b3db708SChen, Gong	tristate "Extended Error Log support"
5039613916bSBorislav Petkov	depends on X86_MCE && X86_LOCAL_APIC && EDAC
5047ea6c6c1SLuck, Tony	select UEFI_CPER
5054b3db708SChen, Gong	help
5064b3db708SChen, Gong	  Certain usages such as Predictive Failure Analysis (PFA) require
5074b3db708SChen, Gong	  more information about the error than what can be described in
5084b3db708SChen, Gong	  processor machine check banks. Most server processors log
5094b3db708SChen, Gong	  additional information about the error in processor uncore
5104b3db708SChen, Gong	  registers. Since the addresses and layout of these registers vary
5114b3db708SChen, Gong	  widely from one processor to another, system software cannot
5124b3db708SChen, Gong	  readily make use of them. To complicate matters further, some of
5134b3db708SChen, Gong	  the additional error information cannot be constructed without
5144b3db708SChen, Gong	  detailed knowledge about platform topology.
5154b3db708SChen, Gong
5164b3db708SChen, Gong	  Enhanced MCA Logging allows firmware to provide additional error
5174b3db708SChen, Gong	  information to system software, synchronous with MCE or CMCI. This
5182dfb7d51SChen, Gong	  driver adds support for that functionality with corresponding
5192dfb7d51SChen, Gong	  tracepoint which carries that information to userspace.
5204b3db708SChen, Gong
5214cf841e3STony Luckconfig ACPI_ADXL
5224cf841e3STony Luck	bool
5234cf841e3STony Luck
5240bf54fcdSOctavian Purdilaconfig ACPI_CONFIGFS
5250bf54fcdSOctavian Purdila	tristate "ACPI configfs support"
5260bf54fcdSOctavian Purdila	select CONFIGFS_FS
5270bf54fcdSOctavian Purdila	help
5280bf54fcdSOctavian Purdila	  Select this option to enable support for ACPI configuration from
5290bf54fcdSOctavian Purdila	  userspace. The configurable ACPI groups will be visible under
5300bf54fcdSOctavian Purdila	  /config/acpi, assuming configfs is mounted under /config.
5310bf54fcdSOctavian Purdila
53288ef16d8STomasz Nowickiif ARM64
53388ef16d8STomasz Nowickisource "drivers/acpi/arm64/Kconfig"
5340ce82232SJeremy Linton
5350ce82232SJeremy Lintonconfig ACPI_PPTT
5360ce82232SJeremy Linton	bool
53788ef16d8STomasz Nowickiendif
53888ef16d8STomasz Nowicki
539fa870509SAndy Shevchenkosource "drivers/acpi/pmic/Kconfig"
540fa870509SAndy Shevchenko
5411da177e4SLinus Torvaldsendif	# ACPI
54287e65d05SJan Kiszka
54387e65d05SJan Kiszkaconfig X86_PM_TIMER
54487e65d05SJan Kiszka	bool "Power Management Timer Support" if EXPERT
54587e65d05SJan Kiszka	depends on X86 && (ACPI || JAILHOUSE_GUEST)
54687e65d05SJan Kiszka	default y
54787e65d05SJan Kiszka	help
54887e65d05SJan Kiszka	  The Power Management Timer is available on all ACPI-capable,
54987e65d05SJan Kiszka	  in most cases even if ACPI is unusable or blacklisted.
55087e65d05SJan Kiszka
55187e65d05SJan Kiszka	  This timing source is not affected by power management features
55287e65d05SJan Kiszka	  like aggressive processor idling, throttling, frequency and/or
55387e65d05SJan Kiszka	  voltage scaling, unlike the commonly used Time Stamp Counter
55487e65d05SJan Kiszka	  (TSC) timing source.
55587e65d05SJan Kiszka
55687e65d05SJan Kiszka	  You should nearly always say Y here because many modern
55787e65d05SJan Kiszka	  systems require this timer.
558