| 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | # |
| 3 | # Generic power capping sysfs interface configuration |
| 4 | # |
| 5 | |
| 6 | menuconfig POWERCAP |
| 7 | bool "Generic powercap sysfs driver" |
| 8 | help |
| 9 | The power capping sysfs interface allows kernel subsystems to expose power |
| 10 | capping settings to user space in a consistent way. Usually, it consists |
| 11 | of multiple control types that determine which settings may be exposed and |
| 12 | power zones representing parts of the system that can be subject to power |
| 13 | capping. |
| 14 | |
| 15 | If you want this code to be compiled in, say Y here. |
| 16 | |
| 17 | if POWERCAP |
| 18 | # Client driver configurations go here. |
| 19 | config INTEL_RAPL_CORE |
| 20 | tristate |
| 21 | depends on PCI |
| 22 | select IOSF_MBI |
| 23 | |
| 24 | config INTEL_RAPL |
| 25 | tristate "Intel RAPL Support via MSR Interface" |
| 26 | depends on X86 && PCI |
| 27 | select INTEL_RAPL_CORE |
| 28 | help |
| 29 | This enables support for the Intel Running Average Power Limit (RAPL) |
| 30 | technology via MSR interface, which allows power limits to be enforced |
| 31 | and monitored on modern Intel processors (Sandy Bridge and later). |
| 32 | |
| 33 | In RAPL, the platform level settings are divided into domains for |
| 34 | fine grained control. These domains include processor package, DRAM |
| 35 | controller, CPU core (Power Plane 0), graphics uncore (Power Plane |
| 36 | 1), etc. |
| 37 | |
| 38 | config INTEL_RAPL_TPMI |
| 39 | tristate "Intel RAPL Support via TPMI Interface" |
| 40 | depends on X86 |
| 41 | depends on INTEL_TPMI |
| 42 | select INTEL_RAPL_CORE |
| 43 | help |
| 44 | This enables support for the Intel Running Average Power Limit (RAPL) |
| 45 | technology via TPMI interface, which allows power limits to be enforced |
| 46 | and monitored. |
| 47 | |
| 48 | In RAPL, the platform level settings are divided into domains for |
| 49 | fine grained control. These domains include processor package, DRAM |
| 50 | controller, platform, etc. |
| 51 | |
| 52 | config IDLE_INJECT |
| 53 | bool "Idle injection framework" |
| 54 | depends on CPU_IDLE |
| 55 | default n |
| 56 | help |
| 57 | This enables support for the idle injection framework. It |
| 58 | provides a way to force idle periods on a set of specified |
| 59 | CPUs for power capping. Idle period can be injected |
| 60 | synchronously on a set of specified CPUs or alternatively |
| 61 | on a per CPU basis. |
| 62 | |
| 63 | config ARM_SCMI_POWERCAP |
| 64 | tristate "ARM SCMI Powercap driver" |
| 65 | depends on ARM_SCMI_PROTOCOL |
| 66 | help |
| 67 | This enables support for the ARM Powercap based on ARM SCMI |
| 68 | Powercap protocol. |
| 69 | |
| 70 | ARM SCMI Powercap protocol allows power limits to be enforced |
| 71 | and monitored against the SCMI Powercap domains advertised as |
| 72 | available by the SCMI platform firmware. |
| 73 | |
| 74 | When compiled as module it will be called arm_scmi_powercap.ko. |
| 75 | |
| 76 | config DTPM |
| 77 | bool "Power capping for Dynamic Thermal Power Management (EXPERIMENTAL)" |
| 78 | depends on OF |
| 79 | help |
| 80 | This enables support for the power capping for the dynamic |
| 81 | thermal power management userspace engine. |
| 82 | |
| 83 | config DTPM_CPU |
| 84 | bool "Add CPU power capping based on the energy model" |
| 85 | depends on DTPM && ENERGY_MODEL && SMP |
| 86 | help |
| 87 | This enables support for CPU power limitation based on |
| 88 | energy model. |
| 89 | |
| 90 | config DTPM_DEVFREQ |
| 91 | bool "Add device power capping based on the energy model" |
| 92 | depends on DTPM && ENERGY_MODEL |
| 93 | help |
| 94 | This enables support for device power limitation based on |
| 95 | energy model. |
| 96 | endif |