# SPDX-License-Identifier: GPL-2.0-only

config ACPI_AMD_HARDWARE_SLEEP_VALUES
	def_bool n
	help
	  Provide common definitions for AMD hardware PM1_CNT register sleep
	  values.

config ACPI_CPU_STRING
	string
	default "\\_SB.CP%02d"
	depends on HAVE_ACPI_TABLES
	help
	  Sets the ACPI name string in the processor scope as written by
	  the acpigen function. Default is \_SB.CPxx. Note that you need
	  the \ escape character in the string.

config ACPI_HAVE_PCAT_8259
	def_bool y if !ACPI_NO_PCAT_8259

config ACPI_INTEL_HARDWARE_SLEEP_VALUES
	def_bool n
	help
	  Provide common definitions for Intel hardware PM1_CNT register sleep
	  values.

config ACPI_SOC_NVS
	bool
	help
	  Set to indicate <soc/nvs.h> exists for the platform with a definition
	  for global_nvs.

config ACPI_NO_PCAT_8259
	bool
	help
	  Selected by platforms that don't expose a PC/AT 8259 PIC pair.

config ACPI_EINJ
	def_bool n
	depends on HAVE_ACPI_TABLES
	help
	  This variable provides control for ACPI error injection table (EINJ)

config HAVE_ACPI_TABLES
	bool
	help
	  This variable specifies whether a given board has ACPI table support.
	  It is usually set in mainboard/*/Kconfig.

config ACPI_LPIT
	bool
	depends on HAVE_ACPI_TABLES
	help
	  Selected by platforms that support and fill Intel Low Power Idle Table.
