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 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_S3C64XX_CPUFREQ 193 bool "Samsung S3C64XX" 194 depends on CPU_S3C6410 195 default y 196 help 197 This adds the CPUFreq driver for Samsung S3C6410 SoC. 198 199 If in doubt, say N. 200 201config ARM_S5PV210_CPUFREQ 202 bool "Samsung S5PV210 and S5PC110" 203 depends on CPU_S5PV210 204 default y 205 help 206 This adds the CPUFreq driver for Samsung S5PV210 and 207 S5PC110 SoCs. 208 209 If in doubt, say N. 210 211config ARM_SA1110_CPUFREQ 212 bool 213 214config ARM_SCMI_CPUFREQ 215 tristate "SCMI based CPUfreq driver" 216 depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 217 select PM_OPP 218 help 219 This adds the CPUfreq driver support for ARM platforms using SCMI 220 protocol for CPU power management. 221 222 This driver uses SCMI Message Protocol driver to interact with the 223 firmware providing the CPU DVFS functionality. 224 225config ARM_SPEAR_CPUFREQ 226 bool "SPEAr CPUFreq support" 227 depends on PLAT_SPEAR 228 default y 229 help 230 This adds the CPUFreq driver support for SPEAr SOCs. 231 232config ARM_STI_CPUFREQ 233 tristate "STi CPUFreq support" 234 depends on CPUFREQ_DT && SOC_STIH407 235 help 236 This driver uses the generic OPP framework to match the running 237 platform with a predefined set of suitable values. If not provided 238 we will fall-back so safe-values contained in Device Tree. Enable 239 this config option if you wish to add CPUFreq support for STi based 240 SoCs. 241 242config ARM_TEGRA20_CPUFREQ 243 tristate "Tegra20/30 CPUFreq support" 244 depends on ARCH_TEGRA && CPUFREQ_DT 245 default y 246 help 247 This adds the CPUFreq driver support for Tegra20/30 SOCs. 248 249config ARM_TEGRA124_CPUFREQ 250 bool "Tegra124 CPUFreq support" 251 depends on ARCH_TEGRA && CPUFREQ_DT 252 default y 253 help 254 This adds the CPUFreq driver support for Tegra124 SOCs. 255 256config ARM_TEGRA186_CPUFREQ 257 tristate "Tegra186 CPUFreq support" 258 depends on ARCH_TEGRA && TEGRA_BPMP 259 help 260 This adds the CPUFreq driver support for Tegra186 SOCs. 261 262config ARM_TEGRA194_CPUFREQ 263 tristate "Tegra194 CPUFreq support" 264 depends on ARCH_TEGRA_194_SOC && TEGRA_BPMP 265 default y 266 help 267 This adds CPU frequency driver support for Tegra194 SOCs. 268 269config ARM_TI_CPUFREQ 270 bool "Texas Instruments CPUFreq support" 271 depends on ARCH_OMAP2PLUS || ARCH_K3 272 default y 273 help 274 This driver enables valid OPPs on the running platform based on 275 values contained within the SoC in use. Enable this in order to 276 use the cpufreq-dt driver on all Texas Instruments platforms that 277 provide dt based operating-points-v2 tables with opp-supported-hw 278 data provided. Required for cpufreq support on AM335x, AM437x, 279 DRA7x, and AM57x platforms. 280 281config ARM_PXA2xx_CPUFREQ 282 tristate "Intel PXA2xx CPUfreq driver" 283 depends on PXA27x || PXA25x 284 help 285 This add the CPUFreq driver support for Intel PXA2xx SOCs. 286 287 If in doubt, say N. 288