blob: 6a66c8520758cc7fe3ab61cb240f9981188f40ff [file] [log] [blame]
# 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