0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # ARM CPU Frequency scaling drivers
0004 #
0005
0006 config ACPI_CPPC_CPUFREQ
0007 tristate "CPUFreq driver based on the ACPI CPPC spec"
0008 depends on ACPI_PROCESSOR
0009 select ACPI_CPPC_LIB
0010 help
0011 This adds a CPUFreq driver which uses CPPC methods
0012 as described in the ACPIv5.1 spec. CPPC stands for
0013 Collaborative Processor Performance Controls. It
0014 is based on an abstract continuous scale of CPU
0015 performance values which allows the remote power
0016 processor to flexibly optimize for power and
0017 performance. CPPC relies on power management firmware
0018 support for its operation.
0019
0020 If in doubt, say N.
0021
0022 config ACPI_CPPC_CPUFREQ_FIE
0023 bool "Frequency Invariance support for CPPC cpufreq driver"
0024 depends on ACPI_CPPC_CPUFREQ && GENERIC_ARCH_TOPOLOGY
0025 default y
0026 help
0027 This extends frequency invariance support in the CPPC cpufreq driver,
0028 by using CPPC delivered and reference performance counters.
0029
0030 If in doubt, say N.
0031
0032 config ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM
0033 tristate "Allwinner nvmem based SUN50I CPUFreq driver"
0034 depends on ARCH_SUNXI
0035 depends on NVMEM_SUNXI_SID
0036 select PM_OPP
0037 help
0038 This adds the nvmem based CPUFreq driver for Allwinner
0039 h6 SoC.
0040
0041 To compile this driver as a module, choose M here: the
0042 module will be called sun50i-cpufreq-nvmem.
0043
0044 config ARM_ARMADA_37XX_CPUFREQ
0045 tristate "Armada 37xx CPUFreq support"
0046 depends on ARCH_MVEBU && CPUFREQ_DT
0047 help
0048 This adds the CPUFreq driver support for Marvell Armada 37xx SoCs.
0049 The Armada 37xx PMU supports 4 frequency and VDD levels.
0050
0051 config ARM_ARMADA_8K_CPUFREQ
0052 tristate "Armada 8K CPUFreq driver"
0053 depends on ARCH_MVEBU && CPUFREQ_DT
0054 select ARMADA_AP_CPU_CLK
0055 help
0056 This enables the CPUFreq driver support for Marvell
0057 Armada8k SOCs.
0058 Armada8K device has the AP806 which supports scaling
0059 to any full integer divider.
0060
0061 If in doubt, say N.
0062
0063 config ARM_SCPI_CPUFREQ
0064 tristate "SCPI based CPUfreq driver"
0065 depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI
0066 help
0067 This adds the CPUfreq driver support for ARM platforms using SCPI
0068 protocol for CPU power management.
0069
0070 This driver uses SCPI Message Protocol driver to interact with the
0071 firmware providing the CPU DVFS functionality.
0072
0073 config ARM_VEXPRESS_SPC_CPUFREQ
0074 tristate "Versatile Express SPC based CPUfreq driver"
0075 depends on ARM_CPU_TOPOLOGY && HAVE_CLK
0076 depends on ARCH_VEXPRESS_SPC
0077 select PM_OPP
0078 help
0079 This add the CPUfreq driver support for Versatile Express
0080 big.LITTLE platforms using SPC for power management.
0081
0082 config ARM_BRCMSTB_AVS_CPUFREQ
0083 tristate "Broadcom STB AVS CPUfreq driver"
0084 depends on ARCH_BRCMSTB || COMPILE_TEST
0085 default y
0086 help
0087 Some Broadcom STB SoCs use a co-processor running proprietary firmware
0088 ("AVS") to handle voltage and frequency scaling. This driver provides
0089 a standard CPUfreq interface to to the firmware.
0090
0091 Say Y, if you have a Broadcom SoC with AVS support for DFS or DVFS.
0092
0093 config ARM_HIGHBANK_CPUFREQ
0094 tristate "Calxeda Highbank-based"
0095 depends on ARCH_HIGHBANK && CPUFREQ_DT && REGULATOR
0096 default m
0097 help
0098 This adds the CPUFreq driver for Calxeda Highbank SoC
0099 based boards.
0100
0101 If in doubt, say N.
0102
0103 config ARM_IMX6Q_CPUFREQ
0104 tristate "Freescale i.MX6 cpufreq support"
0105 depends on ARCH_MXC
0106 depends on REGULATOR_ANATOP
0107 depends on NVMEM_IMX_OCOTP || COMPILE_TEST
0108 select PM_OPP
0109 help
0110 This adds cpufreq driver support for Freescale i.MX6 series SoCs.
0111
0112 If in doubt, say N.
0113
0114 config ARM_IMX_CPUFREQ_DT
0115 tristate "Freescale i.MX8M cpufreq support"
0116 depends on ARCH_MXC && CPUFREQ_DT
0117 help
0118 This adds cpufreq driver support for Freescale i.MX8M series SoCs,
0119 based on cpufreq-dt.
0120
0121 If in doubt, say N.
0122
0123 config ARM_KIRKWOOD_CPUFREQ
0124 def_bool MACH_KIRKWOOD
0125 help
0126 This adds the CPUFreq driver for Marvell Kirkwood
0127 SoCs.
0128
0129 config ARM_MEDIATEK_CPUFREQ
0130 tristate "CPU Frequency scaling support for MediaTek SoCs"
0131 depends on ARCH_MEDIATEK && REGULATOR
0132 select PM_OPP
0133 help
0134 This adds the CPUFreq driver support for MediaTek SoCs.
0135
0136 config ARM_MEDIATEK_CPUFREQ_HW
0137 tristate "MediaTek CPUFreq HW driver"
0138 depends on ARCH_MEDIATEK || COMPILE_TEST
0139 default m
0140 help
0141 Support for the CPUFreq HW driver.
0142 Some MediaTek chipsets have a HW engine to offload the steps
0143 necessary for changing the frequency of the CPUs. Firmware loaded
0144 in this engine exposes a programming interface to the OS.
0145 The driver implements the cpufreq interface for this HW engine.
0146 Say Y if you want to support CPUFreq HW.
0147
0148 config ARM_OMAP2PLUS_CPUFREQ
0149 bool "TI OMAP2+"
0150 depends on ARCH_OMAP2PLUS
0151 default ARCH_OMAP2PLUS
0152
0153 config ARM_QCOM_CPUFREQ_NVMEM
0154 tristate "Qualcomm nvmem based CPUFreq"
0155 depends on ARCH_QCOM
0156 depends on QCOM_QFPROM
0157 depends on QCOM_SMEM
0158 select PM_OPP
0159 help
0160 This adds the CPUFreq driver for Qualcomm Kryo SoC based boards.
0161
0162 If in doubt, say N.
0163
0164 config ARM_QCOM_CPUFREQ_HW
0165 tristate "QCOM CPUFreq HW driver"
0166 depends on ARCH_QCOM || COMPILE_TEST
0167 help
0168 Support for the CPUFreq HW driver.
0169 Some QCOM chipsets have a HW engine to offload the steps
0170 necessary for changing the frequency of the CPUs. Firmware loaded
0171 in this engine exposes a programming interface to the OS.
0172 The driver implements the cpufreq interface for this HW engine.
0173 Say Y if you want to support CPUFreq HW.
0174
0175 config ARM_RASPBERRYPI_CPUFREQ
0176 tristate "Raspberry Pi cpufreq support"
0177 depends on CLK_RASPBERRYPI || COMPILE_TEST
0178 help
0179 This adds the CPUFreq driver for Raspberry Pi
0180
0181 If in doubt, say N.
0182
0183 config ARM_S3C_CPUFREQ
0184 bool
0185 help
0186 Internal configuration node for common cpufreq on Samsung SoC
0187
0188 config ARM_S3C24XX_CPUFREQ
0189 bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
0190 depends on ARCH_S3C24XX
0191 select ARM_S3C_CPUFREQ
0192 help
0193 This enables the CPUfreq driver for the Samsung S3C24XX family
0194 of CPUs.
0195
0196 For details, take a look at <file:Documentation/cpu-freq>.
0197
0198 If in doubt, say N.
0199
0200 config ARM_S3C24XX_CPUFREQ_DEBUG
0201 bool "Debug CPUfreq Samsung driver core"
0202 depends on ARM_S3C24XX_CPUFREQ
0203 help
0204 Enable s3c_freq_dbg for the Samsung S3C CPUfreq core
0205
0206 config ARM_S3C24XX_CPUFREQ_IODEBUG
0207 bool "Debug CPUfreq Samsung driver IO timing"
0208 depends on ARM_S3C24XX_CPUFREQ
0209 help
0210 Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core
0211
0212 config ARM_S3C24XX_CPUFREQ_DEBUGFS
0213 bool "Export debugfs for CPUFreq"
0214 depends on ARM_S3C24XX_CPUFREQ && DEBUG_FS
0215 help
0216 Export status information via debugfs.
0217
0218 config ARM_S3C2410_CPUFREQ
0219 bool
0220 depends on ARM_S3C24XX_CPUFREQ && CPU_S3C2410
0221 help
0222 CPU Frequency scaling support for S3C2410
0223
0224 config ARM_S3C2412_CPUFREQ
0225 bool
0226 depends on ARM_S3C24XX_CPUFREQ && CPU_S3C2412
0227 default y
0228 select S3C2412_IOTIMING
0229 help
0230 CPU Frequency scaling support for S3C2412 and S3C2413 SoC CPUs.
0231
0232 config ARM_S3C2416_CPUFREQ
0233 bool "S3C2416 CPU Frequency scaling support"
0234 depends on CPU_S3C2416
0235 help
0236 This adds the CPUFreq driver for the Samsung S3C2416 and
0237 S3C2450 SoC. The S3C2416 supports changing the rate of the
0238 armdiv clock source and also entering a so called dynamic
0239 voltage scaling mode in which it is possible to reduce the
0240 core voltage of the CPU.
0241
0242 If in doubt, say N.
0243
0244 config ARM_S3C2416_CPUFREQ_VCORESCALE
0245 bool "Allow voltage scaling for S3C2416 arm core"
0246 depends on ARM_S3C2416_CPUFREQ && REGULATOR
0247 help
0248 Enable CPU voltage scaling when entering the dvs mode.
0249 It uses information gathered through existing hardware and
0250 tests but not documented in any datasheet.
0251
0252 If in doubt, say N.
0253
0254 config ARM_S3C2440_CPUFREQ
0255 bool "S3C2440/S3C2442 CPU Frequency scaling support"
0256 depends on ARM_S3C24XX_CPUFREQ && (CPU_S3C2440 || CPU_S3C2442)
0257 default y
0258 help
0259 CPU Frequency scaling support for S3C2440 and S3C2442 SoC CPUs.
0260
0261 config ARM_S3C64XX_CPUFREQ
0262 bool "Samsung S3C64XX"
0263 depends on CPU_S3C6410
0264 default y
0265 help
0266 This adds the CPUFreq driver for Samsung S3C6410 SoC.
0267
0268 If in doubt, say N.
0269
0270 config ARM_S5PV210_CPUFREQ
0271 bool "Samsung S5PV210 and S5PC110"
0272 depends on CPU_S5PV210
0273 default y
0274 help
0275 This adds the CPUFreq driver for Samsung S5PV210 and
0276 S5PC110 SoCs.
0277
0278 If in doubt, say N.
0279
0280 config ARM_SA1100_CPUFREQ
0281 bool
0282
0283 config ARM_SA1110_CPUFREQ
0284 bool
0285
0286 config ARM_SCMI_CPUFREQ
0287 tristate "SCMI based CPUfreq driver"
0288 depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
0289 select PM_OPP
0290 help
0291 This adds the CPUfreq driver support for ARM platforms using SCMI
0292 protocol for CPU power management.
0293
0294 This driver uses SCMI Message Protocol driver to interact with the
0295 firmware providing the CPU DVFS functionality.
0296
0297 config ARM_SPEAR_CPUFREQ
0298 bool "SPEAr CPUFreq support"
0299 depends on PLAT_SPEAR
0300 default y
0301 help
0302 This adds the CPUFreq driver support for SPEAr SOCs.
0303
0304 config ARM_STI_CPUFREQ
0305 tristate "STi CPUFreq support"
0306 depends on CPUFREQ_DT && SOC_STIH407
0307 help
0308 This driver uses the generic OPP framework to match the running
0309 platform with a predefined set of suitable values. If not provided
0310 we will fall-back so safe-values contained in Device Tree. Enable
0311 this config option if you wish to add CPUFreq support for STi based
0312 SoCs.
0313
0314 config ARM_TEGRA20_CPUFREQ
0315 tristate "Tegra20/30 CPUFreq support"
0316 depends on ARCH_TEGRA && CPUFREQ_DT
0317 default y
0318 help
0319 This adds the CPUFreq driver support for Tegra20/30 SOCs.
0320
0321 config ARM_TEGRA124_CPUFREQ
0322 bool "Tegra124 CPUFreq support"
0323 depends on ARCH_TEGRA && CPUFREQ_DT
0324 default y
0325 help
0326 This adds the CPUFreq driver support for Tegra124 SOCs.
0327
0328 config ARM_TEGRA186_CPUFREQ
0329 tristate "Tegra186 CPUFreq support"
0330 depends on ARCH_TEGRA && TEGRA_BPMP
0331 help
0332 This adds the CPUFreq driver support for Tegra186 SOCs.
0333
0334 config ARM_TEGRA194_CPUFREQ
0335 tristate "Tegra194 CPUFreq support"
0336 depends on ARCH_TEGRA_194_SOC && TEGRA_BPMP
0337 default y
0338 help
0339 This adds CPU frequency driver support for Tegra194 SOCs.
0340
0341 config ARM_TI_CPUFREQ
0342 bool "Texas Instruments CPUFreq support"
0343 depends on ARCH_OMAP2PLUS
0344 default ARCH_OMAP2PLUS
0345 help
0346 This driver enables valid OPPs on the running platform based on
0347 values contained within the SoC in use. Enable this in order to
0348 use the cpufreq-dt driver on all Texas Instruments platforms that
0349 provide dt based operating-points-v2 tables with opp-supported-hw
0350 data provided. Required for cpufreq support on AM335x, AM437x,
0351 DRA7x, and AM57x platforms.
0352
0353 config ARM_PXA2xx_CPUFREQ
0354 tristate "Intel PXA2xx CPUfreq driver"
0355 depends on PXA27x || PXA25x
0356 help
0357 This add the CPUFreq driver support for Intel PXA2xx SOCs.
0358
0359 If in doubt, say N.