1# SPDX-License-Identifier: GPL-2.0-only 2# 3# ARM CPU Frequency scaling drivers 4# 5 6config ACPI_CPPC_CPUFREQ 7 tristate "CPUFreq driver based on the ACPI CPPC spec" 8 depends on ACPI_PROCESSOR 9 select ACPI_CPPC_LIB 10 help 11 This adds a CPUFreq driver which uses CPPC methods 12 as described in the ACPIv5.1 spec. CPPC stands for 13 Collaborative Processor Performance Controls. It 14 is based on an abstract continuous scale of CPU 15 performance values which allows the remote power 16 processor to flexibly optimize for power and 17 performance. CPPC relies on power management firmware 18 support for its operation. 19 20 If in doubt, say N. 21 22config ACPI_CPPC_CPUFREQ_FIE 23 bool "Frequency Invariance support for CPPC cpufreq driver" 24 depends on ACPI_CPPC_CPUFREQ && GENERIC_ARCH_TOPOLOGY 25 default y 26 help 27 This extends frequency invariance support in the CPPC cpufreq driver, 28 by using CPPC delivered and reference performance counters. 29 30 If in doubt, say N. 31 32config ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM 33 tristate "Allwinner nvmem based SUN50I CPUFreq driver" 34 depends on ARCH_SUNXI 35 depends on NVMEM_SUNXI_SID 36 select PM_OPP 37 help 38 This adds the nvmem based CPUFreq driver for Allwinner 39 h6 SoC. 40 41 To compile this driver as a module, choose M here: the 42 module will be called sun50i-cpufreq-nvmem. 43 44config ARM_APPLE_SOC_CPUFREQ 45 tristate "Apple Silicon SoC CPUFreq support" 46 depends on ARCH_APPLE || (COMPILE_TEST && 64BIT) 47 select PM_OPP 48 default ARCH_APPLE 49 help 50 This adds the CPUFreq driver for Apple Silicon machines 51 (e.g. Apple M1). 52 53config ARM_ARMADA_37XX_CPUFREQ 54 tristate "Armada 37xx CPUFreq support" 55 depends on ARCH_MVEBU && CPUFREQ_DT 56 help 57 This adds the CPUFreq driver support for Marvell Armada 37xx SoCs. 58 The Armada 37xx PMU supports 4 frequency and VDD levels. 59 60config ARM_ARMADA_8K_CPUFREQ 61 tristate "Armada 8K CPUFreq driver" 62 depends on ARCH_MVEBU && CPUFREQ_DT 63 select ARMADA_AP_CPU_CLK 64 help 65 This enables the CPUFreq driver support for Marvell 66 Armada8k SOCs. 67 Armada8K device has the AP806 which supports scaling 68 to any full integer divider. 69 70 If in doubt, say N. 71 72config ARM_SCPI_CPUFREQ 73 tristate "SCPI based CPUfreq driver" 74 depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI 75 help 76 This adds the CPUfreq driver support for ARM platforms using SCPI 77 protocol for CPU power management. 78 79 This driver uses SCPI Message Protocol driver to interact with the 80 firmware providing the CPU DVFS functionality. 81 82config ARM_VEXPRESS_SPC_CPUFREQ 83 tristate "Versatile Express SPC based CPUfreq driver" 84 depends on ARM_CPU_TOPOLOGY && HAVE_CLK 85 depends on ARCH_VEXPRESS_SPC 86 select PM_OPP 87 help 88 This add the CPUfreq driver support for Versatile Express 89 big.LITTLE platforms using SPC for power management. 90 91config ARM_BRCMSTB_AVS_CPUFREQ 92 tristate "Broadcom STB AVS CPUfreq driver" 93 depends on (ARCH_BRCMSTB && !ARM_SCMI_CPUFREQ) || COMPILE_TEST 94 default y 95 help 96 Some Broadcom STB SoCs use a co-processor running proprietary firmware 97 ("AVS") to handle voltage and frequency scaling. This driver provides 98 a standard CPUfreq interface to the firmware. 99 100 Say Y, if you have a Broadcom SoC with AVS support for DFS or DVFS. 101 102config ARM_HIGHBANK_CPUFREQ 103 tristate "Calxeda Highbank-based" 104 depends on ARCH_HIGHBANK && CPUFREQ_DT && REGULATOR 105 default m 106 help 107 This adds the CPUFreq driver for Calxeda Highbank SoC 108 based boards. 109 110 If in doubt, say N. 111 112config ARM_IMX6Q_CPUFREQ 113 tristate "Freescale i.MX6 cpufreq support" 114 depends on ARCH_MXC 115 depends on REGULATOR_ANATOP 116 depends on NVMEM_IMX_OCOTP || COMPILE_TEST 117 select PM_OPP 118 help 119 This adds cpufreq driver support for Freescale i.MX6 series SoCs. 120 121 If in doubt, say N. 122 123config ARM_IMX_CPUFREQ_DT 124 tristate "Freescale i.MX8M cpufreq support" 125 depends on ARCH_MXC && CPUFREQ_DT 126 help 127 This adds cpufreq driver support for Freescale i.MX7/i.MX8M 128 series SoCs, based on cpufreq-dt. 129 130 If in doubt, say N. 131 132config ARM_KIRKWOOD_CPUFREQ 133 def_bool MACH_KIRKWOOD 134 help 135 This adds the CPUFreq driver for Marvell Kirkwood 136 SoCs. 137 138config ARM_MEDIATEK_CPUFREQ 139 tristate "CPU Frequency scaling support for MediaTek SoCs" 140 depends on ARCH_MEDIATEK && REGULATOR 141 select PM_OPP 142 help 143 This adds the CPUFreq driver support for MediaTek SoCs. 144 145config ARM_MEDIATEK_CPUFREQ_HW 146 tristate "MediaTek CPUFreq HW driver" 147 depends on ARCH_MEDIATEK || COMPILE_TEST 148 default m 149 help 150 Support for the CPUFreq HW driver. 151 Some MediaTek chipsets have a HW engine to offload the steps 152 necessary for changing the frequency of the CPUs. Firmware loaded 153 in this engine exposes a programming interface to the OS. 154 The driver implements the cpufreq interface for this HW engine. 155 Say Y if you want to support CPUFreq HW. 156 157config ARM_OMAP2PLUS_CPUFREQ 158 bool "TI OMAP2+" 159 depends on ARCH_OMAP2PLUS 160 default ARCH_OMAP2PLUS 161 162config ARM_QCOM_CPUFREQ_NVMEM 163 tristate "Qualcomm nvmem based CPUFreq" 164 depends on ARCH_QCOM 165 depends on NVMEM_QCOM_QFPROM 166 depends on QCOM_SMEM 167 select PM_OPP 168 help 169 This adds the CPUFreq driver for Qualcomm Kryo SoC based boards. 170 171 If in doubt, say N. 172 173config ARM_QCOM_CPUFREQ_HW 174 tristate "QCOM CPUFreq HW driver" 175 depends on ARCH_QCOM || COMPILE_TEST 176 depends on COMMON_CLK 177 help 178 Support for the CPUFreq HW driver. 179 Some QCOM chipsets have a HW engine to offload the steps 180 necessary for changing the frequency of the CPUs. Firmware loaded 181 in this engine exposes a programming interface to the OS. 182 The driver implements the cpufreq interface for this HW engine. 183 Say Y if you want to support CPUFreq HW. 184 185config ARM_RASPBERRYPI_CPUFREQ 186 tristate "Raspberry Pi cpufreq support" 187 depends on CLK_RASPBERRYPI || COMPILE_TEST 188 help 189 This adds the CPUFreq driver for Raspberry Pi 190 191 If in doubt, say N. 192 193config ARM_S3C64XX_CPUFREQ 194 bool "Samsung S3C64XX" 195 depends on CPU_S3C6410 196 default y 197 help 198 This adds the CPUFreq driver for Samsung S3C6410 SoC. 199 200 If in doubt, say N. 201 202config ARM_S5PV210_CPUFREQ 203 bool "Samsung S5PV210 and S5PC110" 204 depends on CPU_S5PV210 205 default y 206 help 207 This adds the CPUFreq driver for Samsung S5PV210 and 208 S5PC110 SoCs. 209 210 If in doubt, say N. 211 212config ARM_SA1110_CPUFREQ 213 bool 214 215config ARM_SCMI_CPUFREQ 216 tristate "SCMI based CPUfreq driver" 217 depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 218 select PM_OPP 219 help 220 This adds the CPUfreq driver support for ARM platforms using SCMI 221 protocol for CPU power management. 222 223 This driver uses SCMI Message Protocol driver to interact with the 224 firmware providing the CPU DVFS functionality. 225 226config ARM_SPEAR_CPUFREQ 227 bool "SPEAr CPUFreq support" 228 depends on PLAT_SPEAR 229 default y 230 help 231 This adds the CPUFreq driver support for SPEAr SOCs. 232 233config ARM_STI_CPUFREQ 234 tristate "STi CPUFreq support" 235 depends on CPUFREQ_DT && SOC_STIH407 236 help 237 This driver uses the generic OPP framework to match the running 238 platform with a predefined set of suitable values. If not provided 239 we will fall-back so safe-values contained in Device Tree. Enable 240 this config option if you wish to add CPUFreq support for STi based 241 SoCs. 242 243config ARM_TEGRA20_CPUFREQ 244 tristate "Tegra20/30 CPUFreq support" 245 depends on ARCH_TEGRA && CPUFREQ_DT 246 default y 247 help 248 This adds the CPUFreq driver support for Tegra20/30 SOCs. 249 250config ARM_TEGRA124_CPUFREQ 251 bool "Tegra124 CPUFreq support" 252 depends on ARCH_TEGRA && CPUFREQ_DT 253 default y 254 help 255 This adds the CPUFreq driver support for Tegra124 SOCs. 256 257config ARM_TEGRA186_CPUFREQ 258 tristate "Tegra186 CPUFreq support" 259 depends on ARCH_TEGRA && TEGRA_BPMP 260 help 261 This adds the CPUFreq driver support for Tegra186 SOCs. 262 263config ARM_TEGRA194_CPUFREQ 264 tristate "Tegra194 CPUFreq support" 265 depends on ARCH_TEGRA_194_SOC && TEGRA_BPMP 266 default y 267 help 268 This adds CPU frequency driver support for Tegra194 SOCs. 269 270config ARM_TI_CPUFREQ 271 bool "Texas Instruments CPUFreq support" 272 depends on ARCH_OMAP2PLUS || ARCH_K3 273 default y 274 help 275 This driver enables valid OPPs on the running platform based on 276 values contained within the SoC in use. Enable this in order to 277 use the cpufreq-dt driver on all Texas Instruments platforms that 278 provide dt based operating-points-v2 tables with opp-supported-hw 279 data provided. Required for cpufreq support on AM335x, AM437x, 280 DRA7x, and AM57x platforms. 281 282config ARM_PXA2xx_CPUFREQ 283 tristate "Intel PXA2xx CPUfreq driver" 284 depends on PXA27x || PXA25x 285 help 286 This add the CPUFreq driver support for Intel PXA2xx SOCs. 287 288 If in doubt, say N. 289