162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Generic power capping sysfs interface configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_cimenuconfig POWERCAP 762306a36Sopenharmony_ci bool "Generic powercap sysfs driver" 862306a36Sopenharmony_ci help 962306a36Sopenharmony_ci The power capping sysfs interface allows kernel subsystems to expose power 1062306a36Sopenharmony_ci capping settings to user space in a consistent way. Usually, it consists 1162306a36Sopenharmony_ci of multiple control types that determine which settings may be exposed and 1262306a36Sopenharmony_ci power zones representing parts of the system that can be subject to power 1362306a36Sopenharmony_ci capping. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci If you want this code to be compiled in, say Y here. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciif POWERCAP 1862306a36Sopenharmony_ci# Client driver configurations go here. 1962306a36Sopenharmony_ciconfig INTEL_RAPL_CORE 2062306a36Sopenharmony_ci tristate 2162306a36Sopenharmony_ci depends on PCI 2262306a36Sopenharmony_ci select IOSF_MBI 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciconfig INTEL_RAPL 2562306a36Sopenharmony_ci tristate "Intel RAPL Support via MSR Interface" 2662306a36Sopenharmony_ci depends on X86 && PCI 2762306a36Sopenharmony_ci select INTEL_RAPL_CORE 2862306a36Sopenharmony_ci help 2962306a36Sopenharmony_ci This enables support for the Intel Running Average Power Limit (RAPL) 3062306a36Sopenharmony_ci technology via MSR interface, which allows power limits to be enforced 3162306a36Sopenharmony_ci and monitored on modern Intel processors (Sandy Bridge and later). 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci In RAPL, the platform level settings are divided into domains for 3462306a36Sopenharmony_ci fine grained control. These domains include processor package, DRAM 3562306a36Sopenharmony_ci controller, CPU core (Power Plane 0), graphics uncore (Power Plane 3662306a36Sopenharmony_ci 1), etc. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciconfig INTEL_RAPL_TPMI 3962306a36Sopenharmony_ci tristate "Intel RAPL Support via TPMI Interface" 4062306a36Sopenharmony_ci depends on X86 4162306a36Sopenharmony_ci depends on INTEL_TPMI 4262306a36Sopenharmony_ci select INTEL_RAPL_CORE 4362306a36Sopenharmony_ci help 4462306a36Sopenharmony_ci This enables support for the Intel Running Average Power Limit (RAPL) 4562306a36Sopenharmony_ci technology via TPMI interface, which allows power limits to be enforced 4662306a36Sopenharmony_ci and monitored. 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci In RAPL, the platform level settings are divided into domains for 4962306a36Sopenharmony_ci fine grained control. These domains include processor package, DRAM 5062306a36Sopenharmony_ci controller, platform, etc. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciconfig IDLE_INJECT 5362306a36Sopenharmony_ci bool "Idle injection framework" 5462306a36Sopenharmony_ci depends on CPU_IDLE 5562306a36Sopenharmony_ci default n 5662306a36Sopenharmony_ci help 5762306a36Sopenharmony_ci This enables support for the idle injection framework. It 5862306a36Sopenharmony_ci provides a way to force idle periods on a set of specified 5962306a36Sopenharmony_ci CPUs for power capping. Idle period can be injected 6062306a36Sopenharmony_ci synchronously on a set of specified CPUs or alternatively 6162306a36Sopenharmony_ci on a per CPU basis. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciconfig ARM_SCMI_POWERCAP 6462306a36Sopenharmony_ci tristate "ARM SCMI Powercap driver" 6562306a36Sopenharmony_ci depends on ARM_SCMI_PROTOCOL 6662306a36Sopenharmony_ci help 6762306a36Sopenharmony_ci This enables support for the ARM Powercap based on ARM SCMI 6862306a36Sopenharmony_ci Powercap protocol. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci ARM SCMI Powercap protocol allows power limits to be enforced 7162306a36Sopenharmony_ci and monitored against the SCMI Powercap domains advertised as 7262306a36Sopenharmony_ci available by the SCMI platform firmware. 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci When compiled as module it will be called arm_scmi_powercap.ko. 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ciconfig DTPM 7762306a36Sopenharmony_ci bool "Power capping for Dynamic Thermal Power Management (EXPERIMENTAL)" 7862306a36Sopenharmony_ci depends on OF 7962306a36Sopenharmony_ci help 8062306a36Sopenharmony_ci This enables support for the power capping for the dynamic 8162306a36Sopenharmony_ci thermal power management userspace engine. 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ciconfig DTPM_CPU 8462306a36Sopenharmony_ci bool "Add CPU power capping based on the energy model" 8562306a36Sopenharmony_ci depends on DTPM && ENERGY_MODEL 8662306a36Sopenharmony_ci help 8762306a36Sopenharmony_ci This enables support for CPU power limitation based on 8862306a36Sopenharmony_ci energy model. 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ciconfig DTPM_DEVFREQ 9162306a36Sopenharmony_ci bool "Add device power capping based on the energy model" 9262306a36Sopenharmony_ci depends on DTPM && ENERGY_MODEL 9362306a36Sopenharmony_ci help 9462306a36Sopenharmony_ci This enables support for device power limitation based on 9562306a36Sopenharmony_ci energy model. 9662306a36Sopenharmony_ciendif 97