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 || 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 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.MX8M series SoCs, 128 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 help 177 Support for the CPUFreq HW driver. 178 Some QCOM chipsets have a HW engine to offload the steps 179 necessary for changing the frequency of the CPUs. Firmware loaded 180 in this engine exposes a programming interface to the OS. 181 The driver implements the cpufreq interface for this HW engine. 182 Say Y if you want to support CPUFreq HW. 183 184config ARM_RASPBERRYPI_CPUFREQ 185 tristate "Raspberry Pi cpufreq support" 186 depends on CLK_RASPBERRYPI || COMPILE_TEST 187 help 188 This adds the CPUFreq driver for Raspberry Pi 189 190 If in doubt, say N. 191 192config ARM_S3C_CPUFREQ 193 bool 194 help 195 Internal configuration node for common cpufreq on Samsung SoC 196 197config ARM_S3C24XX_CPUFREQ 198 bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)" 199 depends on ARCH_S3C24XX 200 select ARM_S3C_CPUFREQ 201 help 202 This enables the CPUfreq driver for the Samsung S3C24XX family 203 of CPUs. 204 205 For details, take a look at <file:Documentation/cpu-freq>. 206 207 If in doubt, say N. 208 209config ARM_S3C24XX_CPUFREQ_DEBUG 210 bool "Debug CPUfreq Samsung driver core" 211 depends on ARM_S3C24XX_CPUFREQ 212 help 213 Enable s3c_freq_dbg for the Samsung S3C CPUfreq core 214 215config ARM_S3C24XX_CPUFREQ_IODEBUG 216 bool "Debug CPUfreq Samsung driver IO timing" 217 depends on ARM_S3C24XX_CPUFREQ 218 help 219 Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core 220 221config ARM_S3C24XX_CPUFREQ_DEBUGFS 222 bool "Export debugfs for CPUFreq" 223 depends on ARM_S3C24XX_CPUFREQ && DEBUG_FS 224 help 225 Export status information via debugfs. 226 227config ARM_S3C2410_CPUFREQ 228 bool 229 depends on ARM_S3C24XX_CPUFREQ && CPU_S3C2410 230 help 231 CPU Frequency scaling support for S3C2410 232 233config ARM_S3C2412_CPUFREQ 234 bool 235 depends on ARM_S3C24XX_CPUFREQ && CPU_S3C2412 236 default y 237 select S3C2412_IOTIMING 238 help 239 CPU Frequency scaling support for S3C2412 and S3C2413 SoC CPUs. 240 241config ARM_S3C2416_CPUFREQ 242 bool "S3C2416 CPU Frequency scaling support" 243 depends on CPU_S3C2416 244 help 245 This adds the CPUFreq driver for the Samsung S3C2416 and 246 S3C2450 SoC. The S3C2416 supports changing the rate of the 247 armdiv clock source and also entering a so called dynamic 248 voltage scaling mode in which it is possible to reduce the 249 core voltage of the CPU. 250 251 If in doubt, say N. 252 253config ARM_S3C2416_CPUFREQ_VCORESCALE 254 bool "Allow voltage scaling for S3C2416 arm core" 255 depends on ARM_S3C2416_CPUFREQ && REGULATOR 256 help 257 Enable CPU voltage scaling when entering the dvs mode. 258 It uses information gathered through existing hardware and 259 tests but not documented in any datasheet. 260 261 If in doubt, say N. 262 263config ARM_S3C2440_CPUFREQ 264 bool "S3C2440/S3C2442 CPU Frequency scaling support" 265 depends on ARM_S3C24XX_CPUFREQ && (CPU_S3C2440 || CPU_S3C2442) 266 default y 267 help 268 CPU Frequency scaling support for S3C2440 and S3C2442 SoC CPUs. 269 270config ARM_S3C64XX_CPUFREQ 271 bool "Samsung S3C64XX" 272 depends on CPU_S3C6410 273 default y 274 help 275 This adds the CPUFreq driver for Samsung S3C6410 SoC. 276 277 If in doubt, say N. 278 279config ARM_S5PV210_CPUFREQ 280 bool "Samsung S5PV210 and S5PC110" 281 depends on CPU_S5PV210 282 default y 283 help 284 This adds the CPUFreq driver for Samsung S5PV210 and 285 S5PC110 SoCs. 286 287 If in doubt, say N. 288 289config ARM_SA1100_CPUFREQ 290 bool 291 292config ARM_SA1110_CPUFREQ 293 bool 294 295config ARM_SCMI_CPUFREQ 296 tristate "SCMI based CPUfreq driver" 297 depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 298 select PM_OPP 299 help 300 This adds the CPUfreq driver support for ARM platforms using SCMI 301 protocol for CPU power management. 302 303 This driver uses SCMI Message Protocol driver to interact with the 304 firmware providing the CPU DVFS functionality. 305 306config ARM_SPEAR_CPUFREQ 307 bool "SPEAr CPUFreq support" 308 depends on PLAT_SPEAR 309 default y 310 help 311 This adds the CPUFreq driver support for SPEAr SOCs. 312 313config ARM_STI_CPUFREQ 314 tristate "STi CPUFreq support" 315 depends on CPUFREQ_DT && SOC_STIH407 316 help 317 This driver uses the generic OPP framework to match the running 318 platform with a predefined set of suitable values. If not provided 319 we will fall-back so safe-values contained in Device Tree. Enable 320 this config option if you wish to add CPUFreq support for STi based 321 SoCs. 322 323config ARM_TEGRA20_CPUFREQ 324 tristate "Tegra20/30 CPUFreq support" 325 depends on ARCH_TEGRA && CPUFREQ_DT 326 default y 327 help 328 This adds the CPUFreq driver support for Tegra20/30 SOCs. 329 330config ARM_TEGRA124_CPUFREQ 331 bool "Tegra124 CPUFreq support" 332 depends on ARCH_TEGRA && CPUFREQ_DT 333 default y 334 help 335 This adds the CPUFreq driver support for Tegra124 SOCs. 336 337config ARM_TEGRA186_CPUFREQ 338 tristate "Tegra186 CPUFreq support" 339 depends on ARCH_TEGRA && TEGRA_BPMP 340 help 341 This adds the CPUFreq driver support for Tegra186 SOCs. 342 343config ARM_TEGRA194_CPUFREQ 344 tristate "Tegra194 CPUFreq support" 345 depends on ARCH_TEGRA_194_SOC && TEGRA_BPMP 346 default y 347 help 348 This adds CPU frequency driver support for Tegra194 SOCs. 349 350config ARM_TI_CPUFREQ 351 bool "Texas Instruments CPUFreq support" 352 depends on ARCH_OMAP2PLUS || ARCH_K3 353 default y 354 help 355 This driver enables valid OPPs on the running platform based on 356 values contained within the SoC in use. Enable this in order to 357 use the cpufreq-dt driver on all Texas Instruments platforms that 358 provide dt based operating-points-v2 tables with opp-supported-hw 359 data provided. Required for cpufreq support on AM335x, AM437x, 360 DRA7x, and AM57x platforms. 361 362config ARM_PXA2xx_CPUFREQ 363 tristate "Intel PXA2xx CPUfreq driver" 364 depends on PXA27x || PXA25x 365 help 366 This add the CPUFreq driver support for Intel PXA2xx SOCs. 367 368 If in doubt, say N. 369