1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# ARM CPU Frequency scaling drivers 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunconfig ACPI_CPPC_CPUFREQ 7*4882a593Smuzhiyun tristate "CPUFreq driver based on the ACPI CPPC spec" 8*4882a593Smuzhiyun depends on ACPI_PROCESSOR 9*4882a593Smuzhiyun select ACPI_CPPC_LIB 10*4882a593Smuzhiyun help 11*4882a593Smuzhiyun This adds a CPUFreq driver which uses CPPC methods 12*4882a593Smuzhiyun as described in the ACPIv5.1 spec. CPPC stands for 13*4882a593Smuzhiyun Collaborative Processor Performance Controls. It 14*4882a593Smuzhiyun is based on an abstract continuous scale of CPU 15*4882a593Smuzhiyun performance values which allows the remote power 16*4882a593Smuzhiyun processor to flexibly optimize for power and 17*4882a593Smuzhiyun performance. CPPC relies on power management firmware 18*4882a593Smuzhiyun support for its operation. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun If in doubt, say N. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyunconfig ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM 23*4882a593Smuzhiyun tristate "Allwinner nvmem based SUN50I CPUFreq driver" 24*4882a593Smuzhiyun depends on ARCH_SUNXI 25*4882a593Smuzhiyun depends on NVMEM_SUNXI_SID 26*4882a593Smuzhiyun select PM_OPP 27*4882a593Smuzhiyun help 28*4882a593Smuzhiyun This adds the nvmem based CPUFreq driver for Allwinner 29*4882a593Smuzhiyun h6 SoC. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun To compile this driver as a module, choose M here: the 32*4882a593Smuzhiyun module will be called sun50i-cpufreq-nvmem. 33*4882a593Smuzhiyun 34*4882a593Smuzhiyunconfig ARM_ARMADA_37XX_CPUFREQ 35*4882a593Smuzhiyun tristate "Armada 37xx CPUFreq support" 36*4882a593Smuzhiyun depends on ARCH_MVEBU && CPUFREQ_DT 37*4882a593Smuzhiyun help 38*4882a593Smuzhiyun This adds the CPUFreq driver support for Marvell Armada 37xx SoCs. 39*4882a593Smuzhiyun The Armada 37xx PMU supports 4 frequency and VDD levels. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunconfig ARM_ARMADA_8K_CPUFREQ 42*4882a593Smuzhiyun tristate "Armada 8K CPUFreq driver" 43*4882a593Smuzhiyun depends on ARCH_MVEBU && CPUFREQ_DT 44*4882a593Smuzhiyun select ARMADA_AP_CPU_CLK 45*4882a593Smuzhiyun help 46*4882a593Smuzhiyun This enables the CPUFreq driver support for Marvell 47*4882a593Smuzhiyun Armada8k SOCs. 48*4882a593Smuzhiyun Armada8K device has the AP806 which supports scaling 49*4882a593Smuzhiyun to any full integer divider. 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun If in doubt, say N. 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunconfig ARM_SCPI_CPUFREQ 54*4882a593Smuzhiyun tristate "SCPI based CPUfreq driver" 55*4882a593Smuzhiyun depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI 56*4882a593Smuzhiyun help 57*4882a593Smuzhiyun This adds the CPUfreq driver support for ARM platforms using SCPI 58*4882a593Smuzhiyun protocol for CPU power management. 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun This driver uses SCPI Message Protocol driver to interact with the 61*4882a593Smuzhiyun firmware providing the CPU DVFS functionality. 62*4882a593Smuzhiyun 63*4882a593Smuzhiyunconfig ARM_VEXPRESS_SPC_CPUFREQ 64*4882a593Smuzhiyun tristate "Versatile Express SPC based CPUfreq driver" 65*4882a593Smuzhiyun depends on ARM_CPU_TOPOLOGY && HAVE_CLK 66*4882a593Smuzhiyun depends on ARCH_VEXPRESS_SPC 67*4882a593Smuzhiyun select PM_OPP 68*4882a593Smuzhiyun help 69*4882a593Smuzhiyun This add the CPUfreq driver support for Versatile Express 70*4882a593Smuzhiyun big.LITTLE platforms using SPC for power management. 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig ARM_BRCMSTB_AVS_CPUFREQ 73*4882a593Smuzhiyun tristate "Broadcom STB AVS CPUfreq driver" 74*4882a593Smuzhiyun depends on ARCH_BRCMSTB || COMPILE_TEST 75*4882a593Smuzhiyun default y 76*4882a593Smuzhiyun help 77*4882a593Smuzhiyun Some Broadcom STB SoCs use a co-processor running proprietary firmware 78*4882a593Smuzhiyun ("AVS") to handle voltage and frequency scaling. This driver provides 79*4882a593Smuzhiyun a standard CPUfreq interface to to the firmware. 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun Say Y, if you have a Broadcom SoC with AVS support for DFS or DVFS. 82*4882a593Smuzhiyun 83*4882a593Smuzhiyunconfig ARM_HIGHBANK_CPUFREQ 84*4882a593Smuzhiyun tristate "Calxeda Highbank-based" 85*4882a593Smuzhiyun depends on ARCH_HIGHBANK && CPUFREQ_DT && REGULATOR 86*4882a593Smuzhiyun default m 87*4882a593Smuzhiyun help 88*4882a593Smuzhiyun This adds the CPUFreq driver for Calxeda Highbank SoC 89*4882a593Smuzhiyun based boards. 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun If in doubt, say N. 92*4882a593Smuzhiyun 93*4882a593Smuzhiyunconfig ARM_IMX6Q_CPUFREQ 94*4882a593Smuzhiyun tristate "Freescale i.MX6 cpufreq support" 95*4882a593Smuzhiyun depends on ARCH_MXC 96*4882a593Smuzhiyun depends on REGULATOR_ANATOP 97*4882a593Smuzhiyun depends on NVMEM_IMX_OCOTP || COMPILE_TEST 98*4882a593Smuzhiyun select PM_OPP 99*4882a593Smuzhiyun help 100*4882a593Smuzhiyun This adds cpufreq driver support for Freescale i.MX6 series SoCs. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun If in doubt, say N. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyunconfig ARM_IMX_CPUFREQ_DT 105*4882a593Smuzhiyun tristate "Freescale i.MX8M cpufreq support" 106*4882a593Smuzhiyun depends on ARCH_MXC && CPUFREQ_DT 107*4882a593Smuzhiyun help 108*4882a593Smuzhiyun This adds cpufreq driver support for Freescale i.MX8M series SoCs, 109*4882a593Smuzhiyun based on cpufreq-dt. 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun If in doubt, say N. 112*4882a593Smuzhiyun 113*4882a593Smuzhiyunconfig ARM_KIRKWOOD_CPUFREQ 114*4882a593Smuzhiyun def_bool MACH_KIRKWOOD 115*4882a593Smuzhiyun help 116*4882a593Smuzhiyun This adds the CPUFreq driver for Marvell Kirkwood 117*4882a593Smuzhiyun SoCs. 118*4882a593Smuzhiyun 119*4882a593Smuzhiyunconfig ARM_MEDIATEK_CPUFREQ 120*4882a593Smuzhiyun tristate "CPU Frequency scaling support for MediaTek SoCs" 121*4882a593Smuzhiyun depends on ARCH_MEDIATEK && REGULATOR 122*4882a593Smuzhiyun select PM_OPP 123*4882a593Smuzhiyun help 124*4882a593Smuzhiyun This adds the CPUFreq driver support for MediaTek SoCs. 125*4882a593Smuzhiyun 126*4882a593Smuzhiyunconfig ARM_OMAP2PLUS_CPUFREQ 127*4882a593Smuzhiyun bool "TI OMAP2+" 128*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS 129*4882a593Smuzhiyun default ARCH_OMAP2PLUS 130*4882a593Smuzhiyun 131*4882a593Smuzhiyunconfig ARM_QCOM_CPUFREQ_NVMEM 132*4882a593Smuzhiyun tristate "Qualcomm nvmem based CPUFreq" 133*4882a593Smuzhiyun depends on ARCH_QCOM 134*4882a593Smuzhiyun depends on QCOM_QFPROM 135*4882a593Smuzhiyun depends on QCOM_SMEM 136*4882a593Smuzhiyun select PM_OPP 137*4882a593Smuzhiyun help 138*4882a593Smuzhiyun This adds the CPUFreq driver for Qualcomm Kryo SoC based boards. 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun If in doubt, say N. 141*4882a593Smuzhiyun 142*4882a593Smuzhiyunconfig ARM_QCOM_CPUFREQ_HW 143*4882a593Smuzhiyun tristate "QCOM CPUFreq HW driver" 144*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 145*4882a593Smuzhiyun help 146*4882a593Smuzhiyun Support for the CPUFreq HW driver. 147*4882a593Smuzhiyun Some QCOM chipsets have a HW engine to offload the steps 148*4882a593Smuzhiyun necessary for changing the frequency of the CPUs. Firmware loaded 149*4882a593Smuzhiyun in this engine exposes a programming interface to the OS. 150*4882a593Smuzhiyun The driver implements the cpufreq interface for this HW engine. 151*4882a593Smuzhiyun Say Y if you want to support CPUFreq HW. 152*4882a593Smuzhiyun 153*4882a593Smuzhiyunconfig ARM_RASPBERRYPI_CPUFREQ 154*4882a593Smuzhiyun tristate "Raspberry Pi cpufreq support" 155*4882a593Smuzhiyun depends on CLK_RASPBERRYPI || COMPILE_TEST 156*4882a593Smuzhiyun help 157*4882a593Smuzhiyun This adds the CPUFreq driver for Raspberry Pi 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun If in doubt, say N. 160*4882a593Smuzhiyun 161*4882a593Smuzhiyunconfig ARM_ROCKCHIP_CPUFREQ 162*4882a593Smuzhiyun tristate "Rockchip CPUfreq driver" 163*4882a593Smuzhiyun depends on ARCH_ROCKCHIP && CPUFREQ_DT 164*4882a593Smuzhiyun select PM_OPP 165*4882a593Smuzhiyun help 166*4882a593Smuzhiyun This adds the CPUFreq driver support for Rockchip SoCs, 167*4882a593Smuzhiyun based on cpufreq-dt. 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun If in doubt, say N. 170*4882a593Smuzhiyun 171*4882a593Smuzhiyunconfig ARM_S3C_CPUFREQ 172*4882a593Smuzhiyun bool 173*4882a593Smuzhiyun help 174*4882a593Smuzhiyun Internal configuration node for common cpufreq on Samsung SoC 175*4882a593Smuzhiyun 176*4882a593Smuzhiyunconfig ARM_S3C24XX_CPUFREQ 177*4882a593Smuzhiyun bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)" 178*4882a593Smuzhiyun depends on ARCH_S3C24XX 179*4882a593Smuzhiyun select ARM_S3C_CPUFREQ 180*4882a593Smuzhiyun help 181*4882a593Smuzhiyun This enables the CPUfreq driver for the Samsung S3C24XX family 182*4882a593Smuzhiyun of CPUs. 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun For details, take a look at <file:Documentation/cpu-freq>. 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun If in doubt, say N. 187*4882a593Smuzhiyun 188*4882a593Smuzhiyunconfig ARM_S3C24XX_CPUFREQ_DEBUG 189*4882a593Smuzhiyun bool "Debug CPUfreq Samsung driver core" 190*4882a593Smuzhiyun depends on ARM_S3C24XX_CPUFREQ 191*4882a593Smuzhiyun help 192*4882a593Smuzhiyun Enable s3c_freq_dbg for the Samsung S3C CPUfreq core 193*4882a593Smuzhiyun 194*4882a593Smuzhiyunconfig ARM_S3C24XX_CPUFREQ_IODEBUG 195*4882a593Smuzhiyun bool "Debug CPUfreq Samsung driver IO timing" 196*4882a593Smuzhiyun depends on ARM_S3C24XX_CPUFREQ 197*4882a593Smuzhiyun help 198*4882a593Smuzhiyun Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core 199*4882a593Smuzhiyun 200*4882a593Smuzhiyunconfig ARM_S3C24XX_CPUFREQ_DEBUGFS 201*4882a593Smuzhiyun bool "Export debugfs for CPUFreq" 202*4882a593Smuzhiyun depends on ARM_S3C24XX_CPUFREQ && DEBUG_FS 203*4882a593Smuzhiyun help 204*4882a593Smuzhiyun Export status information via debugfs. 205*4882a593Smuzhiyun 206*4882a593Smuzhiyunconfig ARM_S3C2410_CPUFREQ 207*4882a593Smuzhiyun bool 208*4882a593Smuzhiyun depends on ARM_S3C24XX_CPUFREQ && CPU_S3C2410 209*4882a593Smuzhiyun help 210*4882a593Smuzhiyun CPU Frequency scaling support for S3C2410 211*4882a593Smuzhiyun 212*4882a593Smuzhiyunconfig ARM_S3C2412_CPUFREQ 213*4882a593Smuzhiyun bool 214*4882a593Smuzhiyun depends on ARM_S3C24XX_CPUFREQ && CPU_S3C2412 215*4882a593Smuzhiyun default y 216*4882a593Smuzhiyun select S3C2412_IOTIMING 217*4882a593Smuzhiyun help 218*4882a593Smuzhiyun CPU Frequency scaling support for S3C2412 and S3C2413 SoC CPUs. 219*4882a593Smuzhiyun 220*4882a593Smuzhiyunconfig ARM_S3C2416_CPUFREQ 221*4882a593Smuzhiyun bool "S3C2416 CPU Frequency scaling support" 222*4882a593Smuzhiyun depends on CPU_S3C2416 223*4882a593Smuzhiyun help 224*4882a593Smuzhiyun This adds the CPUFreq driver for the Samsung S3C2416 and 225*4882a593Smuzhiyun S3C2450 SoC. The S3C2416 supports changing the rate of the 226*4882a593Smuzhiyun armdiv clock source and also entering a so called dynamic 227*4882a593Smuzhiyun voltage scaling mode in which it is possible to reduce the 228*4882a593Smuzhiyun core voltage of the CPU. 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun If in doubt, say N. 231*4882a593Smuzhiyun 232*4882a593Smuzhiyunconfig ARM_S3C2416_CPUFREQ_VCORESCALE 233*4882a593Smuzhiyun bool "Allow voltage scaling for S3C2416 arm core" 234*4882a593Smuzhiyun depends on ARM_S3C2416_CPUFREQ && REGULATOR 235*4882a593Smuzhiyun help 236*4882a593Smuzhiyun Enable CPU voltage scaling when entering the dvs mode. 237*4882a593Smuzhiyun It uses information gathered through existing hardware and 238*4882a593Smuzhiyun tests but not documented in any datasheet. 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun If in doubt, say N. 241*4882a593Smuzhiyun 242*4882a593Smuzhiyunconfig ARM_S3C2440_CPUFREQ 243*4882a593Smuzhiyun bool "S3C2440/S3C2442 CPU Frequency scaling support" 244*4882a593Smuzhiyun depends on ARM_S3C24XX_CPUFREQ && (CPU_S3C2440 || CPU_S3C2442) 245*4882a593Smuzhiyun default y 246*4882a593Smuzhiyun help 247*4882a593Smuzhiyun CPU Frequency scaling support for S3C2440 and S3C2442 SoC CPUs. 248*4882a593Smuzhiyun 249*4882a593Smuzhiyunconfig ARM_S3C64XX_CPUFREQ 250*4882a593Smuzhiyun bool "Samsung S3C64XX" 251*4882a593Smuzhiyun depends on CPU_S3C6410 252*4882a593Smuzhiyun default y 253*4882a593Smuzhiyun help 254*4882a593Smuzhiyun This adds the CPUFreq driver for Samsung S3C6410 SoC. 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun If in doubt, say N. 257*4882a593Smuzhiyun 258*4882a593Smuzhiyunconfig ARM_S5PV210_CPUFREQ 259*4882a593Smuzhiyun bool "Samsung S5PV210 and S5PC110" 260*4882a593Smuzhiyun depends on CPU_S5PV210 261*4882a593Smuzhiyun default y 262*4882a593Smuzhiyun help 263*4882a593Smuzhiyun This adds the CPUFreq driver for Samsung S5PV210 and 264*4882a593Smuzhiyun S5PC110 SoCs. 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun If in doubt, say N. 267*4882a593Smuzhiyun 268*4882a593Smuzhiyunconfig ARM_SA1100_CPUFREQ 269*4882a593Smuzhiyun bool 270*4882a593Smuzhiyun 271*4882a593Smuzhiyunconfig ARM_SA1110_CPUFREQ 272*4882a593Smuzhiyun bool 273*4882a593Smuzhiyun 274*4882a593Smuzhiyunconfig ARM_SCMI_CPUFREQ 275*4882a593Smuzhiyun tristate "SCMI based CPUfreq driver" 276*4882a593Smuzhiyun depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 277*4882a593Smuzhiyun select PM_OPP 278*4882a593Smuzhiyun help 279*4882a593Smuzhiyun This adds the CPUfreq driver support for ARM platforms using SCMI 280*4882a593Smuzhiyun protocol for CPU power management. 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun This driver uses SCMI Message Protocol driver to interact with the 283*4882a593Smuzhiyun firmware providing the CPU DVFS functionality. 284*4882a593Smuzhiyun 285*4882a593Smuzhiyunconfig ARM_SPEAR_CPUFREQ 286*4882a593Smuzhiyun bool "SPEAr CPUFreq support" 287*4882a593Smuzhiyun depends on PLAT_SPEAR 288*4882a593Smuzhiyun default y 289*4882a593Smuzhiyun help 290*4882a593Smuzhiyun This adds the CPUFreq driver support for SPEAr SOCs. 291*4882a593Smuzhiyun 292*4882a593Smuzhiyunconfig ARM_STI_CPUFREQ 293*4882a593Smuzhiyun tristate "STi CPUFreq support" 294*4882a593Smuzhiyun depends on CPUFREQ_DT && SOC_STIH407 295*4882a593Smuzhiyun help 296*4882a593Smuzhiyun This driver uses the generic OPP framework to match the running 297*4882a593Smuzhiyun platform with a predefined set of suitable values. If not provided 298*4882a593Smuzhiyun we will fall-back so safe-values contained in Device Tree. Enable 299*4882a593Smuzhiyun this config option if you wish to add CPUFreq support for STi based 300*4882a593Smuzhiyun SoCs. 301*4882a593Smuzhiyun 302*4882a593Smuzhiyunconfig ARM_TANGO_CPUFREQ 303*4882a593Smuzhiyun bool 304*4882a593Smuzhiyun depends on CPUFREQ_DT && ARCH_TANGO 305*4882a593Smuzhiyun default y 306*4882a593Smuzhiyun 307*4882a593Smuzhiyunconfig ARM_TEGRA20_CPUFREQ 308*4882a593Smuzhiyun tristate "Tegra20/30 CPUFreq support" 309*4882a593Smuzhiyun depends on ARCH_TEGRA && CPUFREQ_DT 310*4882a593Smuzhiyun default y 311*4882a593Smuzhiyun help 312*4882a593Smuzhiyun This adds the CPUFreq driver support for Tegra20/30 SOCs. 313*4882a593Smuzhiyun 314*4882a593Smuzhiyunconfig ARM_TEGRA124_CPUFREQ 315*4882a593Smuzhiyun bool "Tegra124 CPUFreq support" 316*4882a593Smuzhiyun depends on ARCH_TEGRA && CPUFREQ_DT 317*4882a593Smuzhiyun default y 318*4882a593Smuzhiyun help 319*4882a593Smuzhiyun This adds the CPUFreq driver support for Tegra124 SOCs. 320*4882a593Smuzhiyun 321*4882a593Smuzhiyunconfig ARM_TEGRA186_CPUFREQ 322*4882a593Smuzhiyun tristate "Tegra186 CPUFreq support" 323*4882a593Smuzhiyun depends on ARCH_TEGRA && TEGRA_BPMP 324*4882a593Smuzhiyun help 325*4882a593Smuzhiyun This adds the CPUFreq driver support for Tegra186 SOCs. 326*4882a593Smuzhiyun 327*4882a593Smuzhiyunconfig ARM_TEGRA194_CPUFREQ 328*4882a593Smuzhiyun tristate "Tegra194 CPUFreq support" 329*4882a593Smuzhiyun depends on ARCH_TEGRA_194_SOC && TEGRA_BPMP 330*4882a593Smuzhiyun default y 331*4882a593Smuzhiyun help 332*4882a593Smuzhiyun This adds CPU frequency driver support for Tegra194 SOCs. 333*4882a593Smuzhiyun 334*4882a593Smuzhiyunconfig ARM_TI_CPUFREQ 335*4882a593Smuzhiyun bool "Texas Instruments CPUFreq support" 336*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS 337*4882a593Smuzhiyun default ARCH_OMAP2PLUS 338*4882a593Smuzhiyun help 339*4882a593Smuzhiyun This driver enables valid OPPs on the running platform based on 340*4882a593Smuzhiyun values contained within the SoC in use. Enable this in order to 341*4882a593Smuzhiyun use the cpufreq-dt driver on all Texas Instruments platforms that 342*4882a593Smuzhiyun provide dt based operating-points-v2 tables with opp-supported-hw 343*4882a593Smuzhiyun data provided. Required for cpufreq support on AM335x, AM437x, 344*4882a593Smuzhiyun DRA7x, and AM57x platforms. 345*4882a593Smuzhiyun 346*4882a593Smuzhiyunconfig ARM_PXA2xx_CPUFREQ 347*4882a593Smuzhiyun tristate "Intel PXA2xx CPUfreq driver" 348*4882a593Smuzhiyun depends on PXA27x || PXA25x 349*4882a593Smuzhiyun help 350*4882a593Smuzhiyun This add the CPUFreq driver support for Intel PXA2xx SOCs. 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun If in doubt, say N. 353