Merge tag 'pm-6.6-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[platform/kernel/linux-rpi.git] / drivers / powercap / Kconfig
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
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