| # Copyright (c) 2025 Analog Devices, Inc. |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| config HAS_CPU_FREQ |
| bool |
| help |
| Enabled by the SoC if it has a DTS property indicating support for |
| CPU frequency scaling. |
| |
| menuconfig CPU_FREQ |
| bool "CPU Frequency Scaling Subsystem" |
| select EXPERIMENTAL |
| help |
| CPU Frequency scaling subsystem |
| |
| if CPU_FREQ |
| |
| module = CPU_FREQ |
| module-str = CPU Frequency Scaling |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| config CPU_FREQ_INTERVAL_MS |
| int "CPU Freq evaluation interval" |
| default 1000 |
| help |
| Controls the interval (in milliseconds) at which the CPU Frequency |
| subsystem runs and evaluates the current policy. |
| |
| config CPU_FREQ_PER_CPU_SCALING |
| bool "Per-CPU frequency scaling" |
| default n |
| depends on SMP |
| help |
| Enable per-CPU frequency scaling support. If disabled, setting the |
| P-state will apply to the whole system instead of just the current CPU. |
| This should be done at the SoC level. |
| |
| choice CPU_FREQ_POLICY |
| prompt "CPU Frequency Scaling Policy" |
| default CPU_FREQ_POLICY_NONE |
| help |
| The policy algorithm to use when using the CPU freq subsystem. |
| |
| config CPU_FREQ_POLICY_NONE |
| bool "No selected policy" |
| help |
| Kconfig placeholder if no policy is chosen. This Kconfig will produce a build error |
| |
| config CPU_FREQ_POLICY_ON_DEMAND |
| bool "On-demand Policy" |
| select CPU_LOAD_METRIC |
| |
| endchoice # CPU_FREQ_POLICY |
| |
| choice CPU_FREQ_PSTATE_SET |
| prompt "Select method of setting CPU P-state" |
| default CPU_FREQ_PSTATE_SET_SOC if HAS_CPU_FREQ |
| default CPU_FREQ_PSTATE_SET_STUB |
| help |
| The implementation used to set the CPU P-state. |
| |
| config CPU_FREQ_PSTATE_SET_STUB |
| bool "Stub P-state setter" |
| help |
| A stub implementation that does nothing. This is useful for |
| exercising the CPU frequency subsystem without actually |
| changing the CPU frequency. |
| |
| config CPU_FREQ_PSTATE_SET_SOC |
| bool "SoC-specific P-state setter" |
| depends on HAS_CPU_FREQ |
| help |
| A SoC-specific implementation that sets the CPU P-state using |
| SoC-specific mechanisms. This requires the SoC to provide |
| the necessary implementation of cpu_freq_pstate_set(). |
| |
| config CPU_FREQ_PSTATE_SET_CUSTOM |
| bool "Custom P-state setter defined by the project" |
| help |
| A custom implementation that sets the CPU P-state using |
| project-specific mechanisms. This requires the project to provide |
| the necessary implementation of cpu_freq_pstate_set(). |
| |
| endchoice # CPU_FREQ_PSTATE_SET |
| |
| endif # CPU_FREQ |