# 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