# SPDX-License-Identifier: GPL-2.0-only
#
# Generic power capping sysfs interface configuration
#

menuconfig POWERCAP
	bool "Generic powercap sysfs driver"
	help
	  The power capping sysfs interface allows kernel subsystems to expose power
	  capping settings to user space in a consistent way.  Usually, it consists
	  of multiple control types that determine which settings may be exposed and
	  power zones representing parts of the system that can be subject to power
	  capping.

	  If you want this code to be compiled in, say Y here.

if POWERCAP
# Client driver configurations go here.
config INTEL_RAPL_CORE
	tristate
	depends on PCI
	select IOSF_MBI

config INTEL_RAPL
	tristate "Intel RAPL Support via MSR Interface"
	depends on X86 && PCI
	select INTEL_RAPL_CORE
	help
	  This enables support for the Intel Running Average Power Limit (RAPL)
	  technology via MSR interface, which allows power limits to be enforced
	  and monitored on modern Intel processors (Sandy Bridge and later).

	  In RAPL, the platform level settings are divided into domains for
	  fine grained control. These domains include processor package, DRAM
	  controller, CPU core (Power Plane 0), graphics uncore (Power Plane
	  1), etc.

config INTEL_RAPL_TPMI
	tristate "Intel RAPL Support via TPMI Interface"
	depends on X86
	depends on INTEL_TPMI
	select INTEL_RAPL_CORE
	help
	  This enables support for the Intel Running Average Power Limit (RAPL)
	  technology via TPMI interface, which allows power limits to be enforced
	  and monitored.

	  In RAPL, the platform level settings are divided into domains for
	  fine grained control. These domains include processor package, DRAM
	  controller, platform, etc.

config IDLE_INJECT
	bool "Idle injection framework"
	depends on CPU_IDLE
	default n
	help
	  This enables support for the idle injection framework. It
	  provides a way to force idle periods on a set of specified
	  CPUs for power capping. Idle period can be injected
	  synchronously on a set of specified CPUs or alternatively
	  on a per CPU basis.

config ARM_SCMI_POWERCAP
	tristate "ARM SCMI Powercap driver"
	depends on ARM_SCMI_PROTOCOL
	help
	  This enables support for the ARM Powercap based on ARM SCMI
	  Powercap protocol.

	  ARM SCMI Powercap protocol allows power limits to be enforced
	  and monitored against the SCMI Powercap domains advertised as
	  available by the SCMI platform firmware.

	  When compiled as module it will be called arm_scmi_powercap.ko.

config DTPM
	bool "Power capping for Dynamic Thermal Power Management (EXPERIMENTAL)"
	depends on OF
	help
	  This enables support for the power capping for the dynamic
	  thermal power management userspace engine.

config DTPM_CPU
	bool "Add CPU power capping based on the energy model"
	depends on DTPM && ENERGY_MODEL
	help
	  This enables support for CPU power limitation based on
	  energy model.

config DTPM_DEVFREQ
	bool "Add device power capping based on the energy model"
	depends on DTPM && ENERGY_MODEL
	help
	  This enables support for device power limitation based on
	  energy model.
endif