xref: /linux/drivers/powercap/Kconfig (revision 0e2b2a76278153d1ac312b0691cb65dabb9aef3e)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Generic power capping sysfs interface configuration
4#
5
6menuconfig 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
17if POWERCAP
18# Client driver configurations go here.
19config INTEL_RAPL_CORE
20	tristate
21	depends on PCI
22	select IOSF_MBI
23
24config 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
38config 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
52config 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
63config 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
76config 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
83config 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
90config 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.
96endif
97