162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# ACPI Configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig ARCH_SUPPORTS_ACPI
762306a36Sopenharmony_ci	bool
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimenuconfig ACPI
1062306a36Sopenharmony_ci	bool "ACPI (Advanced Configuration and Power Interface) Support"
1162306a36Sopenharmony_ci	depends on ARCH_SUPPORTS_ACPI
1262306a36Sopenharmony_ci	select PNP
1362306a36Sopenharmony_ci	select NLS
1462306a36Sopenharmony_ci	select CRC32
1562306a36Sopenharmony_ci	default y if X86
1662306a36Sopenharmony_ci	help
1762306a36Sopenharmony_ci	  Advanced Configuration and Power Interface (ACPI) support for 
1862306a36Sopenharmony_ci	  Linux requires an ACPI-compliant platform (hardware/firmware),
1962306a36Sopenharmony_ci	  and assumes the presence of OS-directed configuration and power
2062306a36Sopenharmony_ci	  management (OSPM) software.  This option will enlarge your 
2162306a36Sopenharmony_ci	  kernel by about 70K.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	  Linux ACPI provides a robust functional replacement for several 
2462306a36Sopenharmony_ci	  legacy configuration and power management interfaces, including
2562306a36Sopenharmony_ci	  the Plug-and-Play BIOS specification (PnP BIOS), the 
2662306a36Sopenharmony_ci	  MultiProcessor Specification (MPS), and the Advanced Power 
2762306a36Sopenharmony_ci	  Management (APM) specification.  If both ACPI and APM support 
2862306a36Sopenharmony_ci	  are configured, ACPI is used.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	  Linux support for ACPI is based on Intel Corporation's ACPI
3162306a36Sopenharmony_ci	  Component Architecture (ACPI CA).  For more information on the
3262306a36Sopenharmony_ci	  ACPI CA, see:
3362306a36Sopenharmony_ci	  <https://acpica.org/>
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	  ACPI is an open industry specification originally co-developed by
3662306a36Sopenharmony_ci	  Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
3762306a36Sopenharmony_ci	  it is developed by the ACPI Specification Working Group (ASWG) under
3862306a36Sopenharmony_ci	  the UEFI Forum and any UEFI member can join the ASWG and contribute
3962306a36Sopenharmony_ci	  to the ACPI specification.
4062306a36Sopenharmony_ci	  The specification is available at:
4162306a36Sopenharmony_ci	  <https://uefi.org/specifications>
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciif ACPI
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciconfig ACPI_LEGACY_TABLES_LOOKUP
4662306a36Sopenharmony_ci	bool
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciconfig ARCH_MIGHT_HAVE_ACPI_PDC
4962306a36Sopenharmony_ci	bool
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciconfig ACPI_GENERIC_GSI
5262306a36Sopenharmony_ci	bool
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciconfig ACPI_SYSTEM_POWER_STATES_SUPPORT
5562306a36Sopenharmony_ci	bool
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciconfig ACPI_CCA_REQUIRED
5862306a36Sopenharmony_ci	bool
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciconfig ACPI_TABLE_LIB
6162306a36Sopenharmony_ci	bool
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciconfig ACPI_DEBUGGER
6462306a36Sopenharmony_ci	bool "AML debugger interface"
6562306a36Sopenharmony_ci	select ACPI_DEBUG
6662306a36Sopenharmony_ci	help
6762306a36Sopenharmony_ci	  Enable in-kernel debugging of AML facilities: statistics,
6862306a36Sopenharmony_ci	  internal object dump, single step control method execution.
6962306a36Sopenharmony_ci	  This is still under development, currently enabling this only
7062306a36Sopenharmony_ci	  results in the compilation of the ACPICA debugger files.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciif ACPI_DEBUGGER
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciconfig ACPI_DEBUGGER_USER
7562306a36Sopenharmony_ci	tristate "Userspace debugger accessibility"
7662306a36Sopenharmony_ci	depends on DEBUG_FS
7762306a36Sopenharmony_ci	help
7862306a36Sopenharmony_ci	  Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
7962306a36Sopenharmony_ci	  to access the debugger functionalities.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciendif
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciconfig ACPI_SPCR_TABLE
8462306a36Sopenharmony_ci	bool "ACPI Serial Port Console Redirection Support"
8562306a36Sopenharmony_ci	default y if X86
8662306a36Sopenharmony_ci	help
8762306a36Sopenharmony_ci	  Enable support for Serial Port Console Redirection (SPCR) Table.
8862306a36Sopenharmony_ci	  This table provides information about the configuration of the
8962306a36Sopenharmony_ci	  earlycon console.
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciconfig ACPI_FPDT
9262306a36Sopenharmony_ci	bool "ACPI Firmware Performance Data Table (FPDT) support"
9362306a36Sopenharmony_ci	depends on X86_64 || ARM64
9462306a36Sopenharmony_ci	help
9562306a36Sopenharmony_ci	  Enable support for the Firmware Performance Data Table (FPDT).
9662306a36Sopenharmony_ci	  This table provides information on the timing of the system
9762306a36Sopenharmony_ci	  boot, S3 suspend and S3 resume firmware code paths.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciconfig ACPI_LPIT
10062306a36Sopenharmony_ci	bool
10162306a36Sopenharmony_ci	depends on X86_64
10262306a36Sopenharmony_ci	default y
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciconfig ACPI_SLEEP
10562306a36Sopenharmony_ci	bool
10662306a36Sopenharmony_ci	depends on SUSPEND || HIBERNATION
10762306a36Sopenharmony_ci	depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
10862306a36Sopenharmony_ci	default y
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ciconfig ACPI_REV_OVERRIDE_POSSIBLE
11162306a36Sopenharmony_ci	bool "Allow supported ACPI revision to be overridden"
11262306a36Sopenharmony_ci	depends on X86
11362306a36Sopenharmony_ci	default y
11462306a36Sopenharmony_ci	help
11562306a36Sopenharmony_ci	  The platform firmware on some systems expects Linux to return "5" as
11662306a36Sopenharmony_ci	  the supported ACPI revision which makes it expose system configuration
11762306a36Sopenharmony_ci	  information in a special way.
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci	  For example, based on what ACPI exports as the supported revision,
12062306a36Sopenharmony_ci	  Dell XPS 13 (2015) configures its audio device to either work in HDA
12162306a36Sopenharmony_ci	  mode or in I2S mode, where the former is supposed to be used on Linux
12262306a36Sopenharmony_ci	  until the latter is fully supported (in the kernel as well as in user
12362306a36Sopenharmony_ci	  space).
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci	  This option enables a DMI-based quirk for the above Dell machine (so
12662306a36Sopenharmony_ci	  that HDA audio is exposed by the platform firmware to the kernel) and
12762306a36Sopenharmony_ci	  makes it possible to force the kernel to return "5" as the supported
12862306a36Sopenharmony_ci	  ACPI revision via the "acpi_rev_override" command line switch.
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ciconfig ACPI_EC_DEBUGFS
13162306a36Sopenharmony_ci	tristate "EC read/write access through /sys/kernel/debug/ec"
13262306a36Sopenharmony_ci	help
13362306a36Sopenharmony_ci	  Say N to disable Embedded Controller /sys/kernel/debug interface
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci	  Be aware that using this interface can confuse your Embedded
13662306a36Sopenharmony_ci	  Controller in a way that a normal reboot is not enough. You then
13762306a36Sopenharmony_ci	  have to power off your system, and remove the laptop battery for
13862306a36Sopenharmony_ci	  some seconds.
13962306a36Sopenharmony_ci	  An Embedded Controller typically is available on laptops and reads
14062306a36Sopenharmony_ci	  sensor values like battery state and temperature.
14162306a36Sopenharmony_ci	  The kernel accesses the EC through ACPI parsed code provided by BIOS
14262306a36Sopenharmony_ci	  tables. This option allows to access the EC directly without ACPI
14362306a36Sopenharmony_ci	  code being involved.
14462306a36Sopenharmony_ci	  Thus this option is a debug option that helps to write ACPI drivers
14562306a36Sopenharmony_ci	  and can be used to identify ACPI code or EC firmware bugs.
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ciconfig ACPI_AC
14862306a36Sopenharmony_ci	tristate "AC Adapter"
14962306a36Sopenharmony_ci	select POWER_SUPPLY
15062306a36Sopenharmony_ci	default y
15162306a36Sopenharmony_ci	help
15262306a36Sopenharmony_ci	  This driver supports the AC Adapter object, which indicates
15362306a36Sopenharmony_ci	  whether a system is on AC or not.  If you have a system that can
15462306a36Sopenharmony_ci	  switch between A/C and battery, say Y.
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
15762306a36Sopenharmony_ci	  the module will be called ac.
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ciconfig ACPI_BATTERY
16062306a36Sopenharmony_ci	tristate "Battery"
16162306a36Sopenharmony_ci	select POWER_SUPPLY
16262306a36Sopenharmony_ci	default y
16362306a36Sopenharmony_ci	help
16462306a36Sopenharmony_ci	  This driver adds support for battery information through
16562306a36Sopenharmony_ci	  /proc/acpi/battery. If you have a mobile system with a battery, 
16662306a36Sopenharmony_ci	  say Y.
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
16962306a36Sopenharmony_ci	  the module will be called battery.
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ciconfig ACPI_BUTTON
17262306a36Sopenharmony_ci	tristate "Button"
17362306a36Sopenharmony_ci	depends on INPUT
17462306a36Sopenharmony_ci	default y
17562306a36Sopenharmony_ci	help
17662306a36Sopenharmony_ci	  This driver handles events on the power, sleep, and lid buttons.
17762306a36Sopenharmony_ci	  A daemon reads events from input devices or via netlink and
17862306a36Sopenharmony_ci	  performs user-defined actions such as shutting down the system.
17962306a36Sopenharmony_ci	  This is necessary for software-controlled poweroff.
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
18262306a36Sopenharmony_ci	  the module will be called button.
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ciconfig ACPI_TINY_POWER_BUTTON
18562306a36Sopenharmony_ci	tristate "Tiny Power Button Driver"
18662306a36Sopenharmony_ci	depends on !ACPI_BUTTON
18762306a36Sopenharmony_ci	help
18862306a36Sopenharmony_ci	  This driver provides a tiny alternative to the ACPI Button driver.
18962306a36Sopenharmony_ci	  The tiny power button driver only handles the power button. Rather
19062306a36Sopenharmony_ci	  than notifying userspace via the input layer or a netlink event, this
19162306a36Sopenharmony_ci	  driver directly signals the init process to shut down.
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ci	  This driver is particularly suitable for cloud and VM environments,
19462306a36Sopenharmony_ci	  which use a simulated power button to initiate a controlled poweroff,
19562306a36Sopenharmony_ci	  but which may not want to run a separate userspace daemon to process
19662306a36Sopenharmony_ci	  input events.
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ciconfig ACPI_TINY_POWER_BUTTON_SIGNAL
19962306a36Sopenharmony_ci	int "Tiny Power Button Signal"
20062306a36Sopenharmony_ci	depends on ACPI_TINY_POWER_BUTTON
20162306a36Sopenharmony_ci	default 38
20262306a36Sopenharmony_ci	help
20362306a36Sopenharmony_ci	  Default signal to send to init in response to the power button.
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci	  Likely values here include 38 (SIGRTMIN+4) to power off, or 2
20662306a36Sopenharmony_ci	  (SIGINT) to simulate Ctrl+Alt+Del.
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ciconfig ACPI_VIDEO
20962306a36Sopenharmony_ci	tristate "Video"
21062306a36Sopenharmony_ci	depends on BACKLIGHT_CLASS_DEVICE
21162306a36Sopenharmony_ci	depends on INPUT
21262306a36Sopenharmony_ci	depends on ACPI_WMI || !X86
21362306a36Sopenharmony_ci	select THERMAL
21462306a36Sopenharmony_ci	help
21562306a36Sopenharmony_ci	  This driver implements the ACPI Extensions For Display Adapters
21662306a36Sopenharmony_ci	  for integrated graphics devices on motherboard, as specified in
21762306a36Sopenharmony_ci	  ACPI 2.0 Specification, Appendix B.  This supports basic operations
21862306a36Sopenharmony_ci	  such as defining the video POST device, retrieving EDID information,
21962306a36Sopenharmony_ci	  and setting up a video output.
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
22262306a36Sopenharmony_ci	  the module will be called video.
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ciconfig ACPI_FAN
22562306a36Sopenharmony_ci	tristate "Fan"
22662306a36Sopenharmony_ci	depends on THERMAL
22762306a36Sopenharmony_ci	default y
22862306a36Sopenharmony_ci	help
22962306a36Sopenharmony_ci	  This driver supports ACPI fan devices, allowing user-mode
23062306a36Sopenharmony_ci	  applications to perform basic fan control (on, off, status).
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
23362306a36Sopenharmony_ci	  the module will be called fan.
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ciconfig ACPI_TAD
23662306a36Sopenharmony_ci	tristate "ACPI Time and Alarm (TAD) Device Support"
23762306a36Sopenharmony_ci	depends on SYSFS && PM_SLEEP
23862306a36Sopenharmony_ci	help
23962306a36Sopenharmony_ci	  The ACPI Time and Alarm (TAD) device is an alternative to the Real
24062306a36Sopenharmony_ci	  Time Clock (RTC).  Its wake timers allow the system to transition from
24162306a36Sopenharmony_ci	  the S3 (or optionally S4/S5) state to S0 state after a time period
24262306a36Sopenharmony_ci	  elapses.  In comparison with the RTC Alarm, the TAD provides a larger
24362306a36Sopenharmony_ci	  scale of flexibility in the wake timers.  The time capabilities of the
24462306a36Sopenharmony_ci	  TAD maintain the time of day information across platform power
24562306a36Sopenharmony_ci	  transitions, and keep track of time even when the platform is turned
24662306a36Sopenharmony_ci	  off.
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ciconfig ACPI_DOCK
24962306a36Sopenharmony_ci	bool "Dock"
25062306a36Sopenharmony_ci	help
25162306a36Sopenharmony_ci	  This driver supports ACPI-controlled docking stations and removable
25262306a36Sopenharmony_ci	  drive bays such as the IBM Ultrabay and the Dell Module Bay.
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ciconfig ACPI_CPU_FREQ_PSS
25562306a36Sopenharmony_ci	bool
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ciconfig ACPI_PROCESSOR_CSTATE
25862306a36Sopenharmony_ci	def_bool y
25962306a36Sopenharmony_ci	depends on ACPI_PROCESSOR
26062306a36Sopenharmony_ci	depends on IA64 || X86
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_ciconfig ACPI_PROCESSOR_IDLE
26362306a36Sopenharmony_ci	bool
26462306a36Sopenharmony_ci	select CPU_IDLE
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_ciconfig ACPI_MCFG
26762306a36Sopenharmony_ci	bool
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_ciconfig ACPI_CPPC_LIB
27062306a36Sopenharmony_ci	bool
27162306a36Sopenharmony_ci	depends on ACPI_PROCESSOR
27262306a36Sopenharmony_ci	select MAILBOX
27362306a36Sopenharmony_ci	select PCC
27462306a36Sopenharmony_ci	help
27562306a36Sopenharmony_ci	  If this option is enabled, this file implements common functionality
27662306a36Sopenharmony_ci	  to parse CPPC tables as described in the ACPI 5.1+ spec. The
27762306a36Sopenharmony_ci	  routines implemented are meant to be used by other
27862306a36Sopenharmony_ci	  drivers to control CPU performance using CPPC semantics.
27962306a36Sopenharmony_ci	  If your platform does not support CPPC in firmware,
28062306a36Sopenharmony_ci	  leave this option disabled.
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_ciconfig ACPI_PROCESSOR
28362306a36Sopenharmony_ci	tristate "Processor"
28462306a36Sopenharmony_ci	depends on X86 || IA64 || ARM64 || LOONGARCH
28562306a36Sopenharmony_ci	select ACPI_PROCESSOR_IDLE
28662306a36Sopenharmony_ci	select ACPI_CPU_FREQ_PSS if X86 || IA64 || LOONGARCH
28762306a36Sopenharmony_ci	select THERMAL
28862306a36Sopenharmony_ci	default y
28962306a36Sopenharmony_ci	help
29062306a36Sopenharmony_ci	  This driver adds support for the ACPI Processor package. It is required
29162306a36Sopenharmony_ci	  by several flavors of cpufreq performance-state, thermal, throttling and
29262306a36Sopenharmony_ci	  idle drivers.
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
29562306a36Sopenharmony_ci	  the module will be called processor.
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ciconfig ACPI_IPMI
29862306a36Sopenharmony_ci	tristate "IPMI"
29962306a36Sopenharmony_ci	depends on IPMI_HANDLER
30062306a36Sopenharmony_ci	help
30162306a36Sopenharmony_ci	  This driver enables the ACPI to access the BMC controller. And it
30262306a36Sopenharmony_ci	  uses the IPMI request/response message to communicate with BMC
30362306a36Sopenharmony_ci	  controller, which can be found on the server.
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
30662306a36Sopenharmony_ci	  the module will be called as acpi_ipmi.
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ciconfig ACPI_HOTPLUG_CPU
30962306a36Sopenharmony_ci	bool
31062306a36Sopenharmony_ci	depends on ACPI_PROCESSOR && HOTPLUG_CPU
31162306a36Sopenharmony_ci	select ACPI_CONTAINER
31262306a36Sopenharmony_ci	default y
31362306a36Sopenharmony_ci
31462306a36Sopenharmony_ciconfig ACPI_PROCESSOR_AGGREGATOR
31562306a36Sopenharmony_ci	tristate "Processor Aggregator"
31662306a36Sopenharmony_ci	depends on ACPI_PROCESSOR
31762306a36Sopenharmony_ci	depends on X86
31862306a36Sopenharmony_ci	help
31962306a36Sopenharmony_ci	  ACPI 4.0 defines processor Aggregator, which enables OS to perform
32062306a36Sopenharmony_ci	  specific processor configuration and control that applies to all
32162306a36Sopenharmony_ci	  processors in the platform. Currently only logical processor idling
32262306a36Sopenharmony_ci	  is defined, which is to reduce power consumption. This driver
32362306a36Sopenharmony_ci	  supports the new device.
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ciconfig ACPI_THERMAL
32662306a36Sopenharmony_ci	tristate "Thermal Zone"
32762306a36Sopenharmony_ci	depends on ACPI_PROCESSOR
32862306a36Sopenharmony_ci	select THERMAL
32962306a36Sopenharmony_ci	default y
33062306a36Sopenharmony_ci	help
33162306a36Sopenharmony_ci	  This driver supports ACPI thermal zones.  Most mobile and
33262306a36Sopenharmony_ci	  some desktop systems support ACPI thermal zones.  It is HIGHLY
33362306a36Sopenharmony_ci	  recommended that this option be enabled, as your processor(s)
33462306a36Sopenharmony_ci	  may be damaged without it.
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
33762306a36Sopenharmony_ci	  the module will be called thermal.
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ciconfig ACPI_PLATFORM_PROFILE
34062306a36Sopenharmony_ci	tristate
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_ciconfig ACPI_CUSTOM_DSDT_FILE
34362306a36Sopenharmony_ci	string "Custom DSDT Table file to include"
34462306a36Sopenharmony_ci	default ""
34562306a36Sopenharmony_ci	depends on !STANDALONE
34662306a36Sopenharmony_ci	help
34762306a36Sopenharmony_ci	  This option supports a custom DSDT by linking it into the kernel.
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ci	  Enter the full path name to the file which includes the AmlCode
35062306a36Sopenharmony_ci	  or dsdt_aml_code declaration.
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_ci	  If unsure, don't enter a file name.
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ciconfig ACPI_CUSTOM_DSDT
35562306a36Sopenharmony_ci	bool
35662306a36Sopenharmony_ci	default ACPI_CUSTOM_DSDT_FILE != ""
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_ciconfig ARCH_HAS_ACPI_TABLE_UPGRADE
35962306a36Sopenharmony_ci	def_bool n
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_ciconfig ACPI_TABLE_UPGRADE
36262306a36Sopenharmony_ci	bool "Allow upgrading ACPI tables via initrd"
36362306a36Sopenharmony_ci	depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
36462306a36Sopenharmony_ci	default y
36562306a36Sopenharmony_ci	help
36662306a36Sopenharmony_ci	  This option provides functionality to upgrade arbitrary ACPI tables
36762306a36Sopenharmony_ci	  via initrd. No functional change if no ACPI tables are passed via
36862306a36Sopenharmony_ci	  initrd, therefore it's safe to say Y.
36962306a36Sopenharmony_ci	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
37062306a36Sopenharmony_ci
37162306a36Sopenharmony_ciconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
37262306a36Sopenharmony_ci	bool "Override ACPI tables from built-in initrd"
37362306a36Sopenharmony_ci	depends on ACPI_TABLE_UPGRADE
37462306a36Sopenharmony_ci	depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
37562306a36Sopenharmony_ci	help
37662306a36Sopenharmony_ci	  This option provides functionality to override arbitrary ACPI tables
37762306a36Sopenharmony_ci	  from built-in uncompressed initrd.
37862306a36Sopenharmony_ci
37962306a36Sopenharmony_ci	  See Documentation/admin-guide/acpi/initrd_table_override.rst for details
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ciconfig ACPI_DEBUG
38262306a36Sopenharmony_ci	bool "Debug Statements"
38362306a36Sopenharmony_ci	help
38462306a36Sopenharmony_ci	  The ACPI subsystem can produce debug output.  Saying Y enables this
38562306a36Sopenharmony_ci	  output and increases the kernel size by around 50K.
38662306a36Sopenharmony_ci
38762306a36Sopenharmony_ci	  Use the acpi.debug_layer and acpi.debug_level kernel command-line
38862306a36Sopenharmony_ci	  parameters documented in Documentation/firmware-guide/acpi/debug.rst and
38962306a36Sopenharmony_ci	  Documentation/admin-guide/kernel-parameters.rst to control the type and
39062306a36Sopenharmony_ci	  amount of debug output.
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_ciconfig ACPI_PCI_SLOT
39362306a36Sopenharmony_ci	bool "PCI slot detection driver"
39462306a36Sopenharmony_ci	depends on SYSFS && PCI
39562306a36Sopenharmony_ci	help
39662306a36Sopenharmony_ci	  This driver creates entries in /sys/bus/pci/slots/ for all PCI
39762306a36Sopenharmony_ci	  slots in the system.  This can help correlate PCI bus addresses,
39862306a36Sopenharmony_ci	  i.e., segment/bus/device/function tuples, with physical slots in
39962306a36Sopenharmony_ci	  the system.  If you are unsure, say N.
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_ciconfig ACPI_CONTAINER
40262306a36Sopenharmony_ci	bool "Container and Module Devices"
40362306a36Sopenharmony_ci	default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
40462306a36Sopenharmony_ci	help
40562306a36Sopenharmony_ci	  This driver supports ACPI Container and Module devices (IDs
40662306a36Sopenharmony_ci	  ACPI0004, PNP0A05, and PNP0A06).
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ci	  This helps support hotplug of nodes, CPUs, and memory.
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_ciconfig ACPI_HOTPLUG_MEMORY
41162306a36Sopenharmony_ci	bool "Memory Hotplug"
41262306a36Sopenharmony_ci	depends on MEMORY_HOTPLUG
41362306a36Sopenharmony_ci	help
41462306a36Sopenharmony_ci	  This driver supports ACPI memory hotplug.  The driver
41562306a36Sopenharmony_ci	  fields notifications on ACPI memory devices (PNP0C80),
41662306a36Sopenharmony_ci	  which represent memory ranges that may be onlined or
41762306a36Sopenharmony_ci	  offlined during runtime.
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ci	  If your hardware and firmware do not support adding or
42062306a36Sopenharmony_ci	  removing memory devices at runtime, you need not enable
42162306a36Sopenharmony_ci	  this driver.
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ciconfig ACPI_HOTPLUG_IOAPIC
42462306a36Sopenharmony_ci	bool
42562306a36Sopenharmony_ci	depends on PCI
42662306a36Sopenharmony_ci	depends on X86_IO_APIC
42762306a36Sopenharmony_ci	default y
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_ciconfig ACPI_SBS
43062306a36Sopenharmony_ci	tristate "Smart Battery System"
43162306a36Sopenharmony_ci	depends on X86
43262306a36Sopenharmony_ci	select POWER_SUPPLY
43362306a36Sopenharmony_ci	help
43462306a36Sopenharmony_ci	  This driver supports the Smart Battery System, another
43562306a36Sopenharmony_ci	  type of access to battery information, found on some laptops.
43662306a36Sopenharmony_ci
43762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here:
43862306a36Sopenharmony_ci	  the modules will be called sbs and sbshc.
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_ciconfig ACPI_HED
44162306a36Sopenharmony_ci	tristate "Hardware Error Device"
44262306a36Sopenharmony_ci	help
44362306a36Sopenharmony_ci	  This driver supports the Hardware Error Device (PNP0C33),
44462306a36Sopenharmony_ci	  which is used to report some hardware errors notified via
44562306a36Sopenharmony_ci	  SCI, mainly the corrected errors.
44662306a36Sopenharmony_ci
44762306a36Sopenharmony_ciconfig ACPI_CUSTOM_METHOD
44862306a36Sopenharmony_ci	tristate "Allow ACPI methods to be inserted/replaced at run time"
44962306a36Sopenharmony_ci	depends on DEBUG_FS
45062306a36Sopenharmony_ci	help
45162306a36Sopenharmony_ci	  This debug facility allows ACPI AML methods to be inserted and/or
45262306a36Sopenharmony_ci	  replaced without rebooting the system. For details refer to:
45362306a36Sopenharmony_ci	  Documentation/firmware-guide/acpi/method-customizing.rst.
45462306a36Sopenharmony_ci
45562306a36Sopenharmony_ci	  NOTE: This option is security sensitive, because it allows arbitrary
45662306a36Sopenharmony_ci	  kernel memory to be written to by root (uid=0) users, allowing them
45762306a36Sopenharmony_ci	  to bypass certain security measures (e.g. if root is not allowed to
45862306a36Sopenharmony_ci	  load additional kernel modules after boot, this feature may be used
45962306a36Sopenharmony_ci	  to override that restriction).
46062306a36Sopenharmony_ci
46162306a36Sopenharmony_ciconfig ACPI_BGRT
46262306a36Sopenharmony_ci	bool "Boottime Graphics Resource Table support"
46362306a36Sopenharmony_ci	depends on EFI && (X86 || ARM64)
46462306a36Sopenharmony_ci	help
46562306a36Sopenharmony_ci	  This driver adds support for exposing the ACPI Boottime Graphics
46662306a36Sopenharmony_ci	  Resource Table, which allows the operating system to obtain
46762306a36Sopenharmony_ci	  data from the firmware boot splash. It will appear under
46862306a36Sopenharmony_ci	  /sys/firmware/acpi/bgrt/ .
46962306a36Sopenharmony_ci
47062306a36Sopenharmony_ciconfig ACPI_REDUCED_HARDWARE_ONLY
47162306a36Sopenharmony_ci	bool "Hardware-reduced ACPI support only" if EXPERT
47262306a36Sopenharmony_ci	def_bool n
47362306a36Sopenharmony_ci	help
47462306a36Sopenharmony_ci	  This config item changes the way the ACPI code is built.  When this
47562306a36Sopenharmony_ci	  option is selected, the kernel will use a specialized version of
47662306a36Sopenharmony_ci	  ACPICA that ONLY supports the ACPI "reduced hardware" mode.  The
47762306a36Sopenharmony_ci	  resulting kernel will be smaller but it will also be restricted to
47862306a36Sopenharmony_ci	  running in ACPI reduced hardware mode ONLY.
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ci	  If you are unsure what to do, do not enable this option.
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_cisource "drivers/acpi/nfit/Kconfig"
48362306a36Sopenharmony_cisource "drivers/acpi/numa/Kconfig"
48462306a36Sopenharmony_cisource "drivers/acpi/apei/Kconfig"
48562306a36Sopenharmony_cisource "drivers/acpi/dptf/Kconfig"
48662306a36Sopenharmony_ci
48762306a36Sopenharmony_ciconfig ACPI_WATCHDOG
48862306a36Sopenharmony_ci	bool
48962306a36Sopenharmony_ci
49062306a36Sopenharmony_ciconfig ACPI_EXTLOG
49162306a36Sopenharmony_ci	tristate "Extended Error Log support"
49262306a36Sopenharmony_ci	depends on X86_MCE && X86_LOCAL_APIC && EDAC
49362306a36Sopenharmony_ci	select UEFI_CPER
49462306a36Sopenharmony_ci	help
49562306a36Sopenharmony_ci	  Certain usages such as Predictive Failure Analysis (PFA) require
49662306a36Sopenharmony_ci	  more information about the error than what can be described in
49762306a36Sopenharmony_ci	  processor machine check banks. Most server processors log
49862306a36Sopenharmony_ci	  additional information about the error in processor uncore
49962306a36Sopenharmony_ci	  registers. Since the addresses and layout of these registers vary
50062306a36Sopenharmony_ci	  widely from one processor to another, system software cannot
50162306a36Sopenharmony_ci	  readily make use of them. To complicate matters further, some of
50262306a36Sopenharmony_ci	  the additional error information cannot be constructed without
50362306a36Sopenharmony_ci	  detailed knowledge about platform topology.
50462306a36Sopenharmony_ci
50562306a36Sopenharmony_ci	  Enhanced MCA Logging allows firmware to provide additional error
50662306a36Sopenharmony_ci	  information to system software, synchronous with MCE or CMCI. This
50762306a36Sopenharmony_ci	  driver adds support for that functionality with corresponding
50862306a36Sopenharmony_ci	  tracepoint which carries that information to userspace.
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_ciconfig ACPI_ADXL
51162306a36Sopenharmony_ci	bool
51262306a36Sopenharmony_ci
51362306a36Sopenharmony_ciconfig ACPI_CONFIGFS
51462306a36Sopenharmony_ci	tristate "ACPI configfs support"
51562306a36Sopenharmony_ci	select CONFIGFS_FS
51662306a36Sopenharmony_ci	help
51762306a36Sopenharmony_ci	  Select this option to enable support for ACPI configuration from
51862306a36Sopenharmony_ci	  userspace. The configurable ACPI groups will be visible under
51962306a36Sopenharmony_ci	  /config/acpi, assuming configfs is mounted under /config.
52062306a36Sopenharmony_ci
52162306a36Sopenharmony_ciconfig ACPI_PFRUT
52262306a36Sopenharmony_ci	tristate "ACPI Platform Firmware Runtime Update and Telemetry"
52362306a36Sopenharmony_ci	depends on 64BIT
52462306a36Sopenharmony_ci	help
52562306a36Sopenharmony_ci	  This mechanism allows certain pieces of the platform firmware
52662306a36Sopenharmony_ci	  to be updated on the fly while the system is running (runtime)
52762306a36Sopenharmony_ci	  without the need to restart it, which is key in the cases when
52862306a36Sopenharmony_ci	  the system needs to be available 100% of the time and it cannot
52962306a36Sopenharmony_ci	  afford the downtime related to restarting it, or when the work
53062306a36Sopenharmony_ci	  carried out by the system is particularly important, so it cannot
53162306a36Sopenharmony_ci	  be interrupted, and it is not practical to wait until it is complete.
53262306a36Sopenharmony_ci
53362306a36Sopenharmony_ci	  The existing firmware code can be modified (driver update) or
53462306a36Sopenharmony_ci	  extended by adding new code to the firmware (code injection).
53562306a36Sopenharmony_ci
53662306a36Sopenharmony_ci	  Besides, the telemetry driver allows user space to fetch telemetry
53762306a36Sopenharmony_ci	  data from the firmware with the help of the Platform Firmware Runtime
53862306a36Sopenharmony_ci	  Telemetry interface.
53962306a36Sopenharmony_ci
54062306a36Sopenharmony_ci	  To compile the drivers as modules, choose M here:
54162306a36Sopenharmony_ci	  the modules will be called pfr_update and pfr_telemetry.
54262306a36Sopenharmony_ci
54362306a36Sopenharmony_ciif ARM64
54462306a36Sopenharmony_cisource "drivers/acpi/arm64/Kconfig"
54562306a36Sopenharmony_ciendif
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_ciconfig ACPI_PPTT
54862306a36Sopenharmony_ci	bool
54962306a36Sopenharmony_ci
55062306a36Sopenharmony_ciconfig ACPI_PCC
55162306a36Sopenharmony_ci	bool "ACPI PCC Address Space"
55262306a36Sopenharmony_ci	depends on PCC
55362306a36Sopenharmony_ci	default y
55462306a36Sopenharmony_ci	help
55562306a36Sopenharmony_ci	  The PCC Address Space also referred as PCC Operation Region pertains
55662306a36Sopenharmony_ci	  to the region of PCC subspace that succeeds the PCC signature.
55762306a36Sopenharmony_ci
55862306a36Sopenharmony_ci	  The PCC Operation Region works in conjunction with the PCC Table
55962306a36Sopenharmony_ci	  (Platform Communications Channel Table). PCC subspaces that are
56062306a36Sopenharmony_ci	  marked for use as PCC Operation Regions must not be used as PCC
56162306a36Sopenharmony_ci	  subspaces for the standard ACPI features such as CPPC, RASF, PDTT and
56262306a36Sopenharmony_ci	  MPST. These standard features must always use the PCC Table instead.
56362306a36Sopenharmony_ci
56462306a36Sopenharmony_ci	  Enable this feature if you want to set up and install the PCC Address
56562306a36Sopenharmony_ci	  Space handler to handle PCC OpRegion in the firmware.
56662306a36Sopenharmony_ci
56762306a36Sopenharmony_ciconfig ACPI_FFH
56862306a36Sopenharmony_ci	bool "ACPI FFH Address Space"
56962306a36Sopenharmony_ci	default n
57062306a36Sopenharmony_ci	help
57162306a36Sopenharmony_ci	  The FFH(Fixed Function Hardware) Address Space also referred as FFH
57262306a36Sopenharmony_ci	  Operation Region allows to define platform specific opregion.
57362306a36Sopenharmony_ci
57462306a36Sopenharmony_ci	  Enable this feature if you want to set up and install the FFH Address
57562306a36Sopenharmony_ci	  Space handler to handle FFH OpRegion in the firmware.
57662306a36Sopenharmony_ci
57762306a36Sopenharmony_cisource "drivers/acpi/pmic/Kconfig"
57862306a36Sopenharmony_ci
57962306a36Sopenharmony_ciconfig ACPI_VIOT
58062306a36Sopenharmony_ci	bool
58162306a36Sopenharmony_ci
58262306a36Sopenharmony_ciconfig ACPI_PRMT
58362306a36Sopenharmony_ci	bool "Platform Runtime Mechanism Support"
58462306a36Sopenharmony_ci	depends on EFI_RUNTIME_WRAPPERS && (X86_64 || ARM64)
58562306a36Sopenharmony_ci	default y
58662306a36Sopenharmony_ci	help
58762306a36Sopenharmony_ci	  Platform Runtime Mechanism (PRM) is a firmware interface exposing a
58862306a36Sopenharmony_ci	  set of binary executables that can be called from the AML interpreter
58962306a36Sopenharmony_ci	  or directly from device drivers.
59062306a36Sopenharmony_ci
59162306a36Sopenharmony_ci	  Say Y to enable the AML interpreter to execute the PRM code.
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_ci	  While this feature is optional in principle, leaving it out may
59462306a36Sopenharmony_ci	  substantially increase computational overhead related to the
59562306a36Sopenharmony_ci	  initialization of some server systems.
59662306a36Sopenharmony_ci
59762306a36Sopenharmony_ciendif	# ACPI
59862306a36Sopenharmony_ci
59962306a36Sopenharmony_ciconfig X86_PM_TIMER
60062306a36Sopenharmony_ci	bool "Power Management Timer Support" if EXPERT
60162306a36Sopenharmony_ci	depends on X86 && (ACPI || JAILHOUSE_GUEST)
60262306a36Sopenharmony_ci	default y
60362306a36Sopenharmony_ci	help
60462306a36Sopenharmony_ci	  The Power Management Timer is available on all ACPI-capable,
60562306a36Sopenharmony_ci	  in most cases even if ACPI is unusable or blacklisted.
60662306a36Sopenharmony_ci
60762306a36Sopenharmony_ci	  This timing source is not affected by power management features
60862306a36Sopenharmony_ci	  like aggressive processor idling, throttling, frequency and/or
60962306a36Sopenharmony_ci	  voltage scaling, unlike the commonly used Time Stamp Counter
61062306a36Sopenharmony_ci	  (TSC) timing source.
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_ci	  You should nearly always say Y here because many modern
61362306a36Sopenharmony_ci	  systems require this timer.
614