1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2f7d77079SKukjin Kim# 3f7d77079SKukjin Kim# ARM CPU Frequency scaling drivers 4f7d77079SKukjin Kim# 5f7d77079SKukjin Kim 6b17d2f8dSGregory CLEMENTconfig ACPI_CPPC_CPUFREQ 7b17d2f8dSGregory CLEMENT tristate "CPUFreq driver based on the ACPI CPPC spec" 8b17d2f8dSGregory CLEMENT depends on ACPI_PROCESSOR 9b17d2f8dSGregory CLEMENT select ACPI_CPPC_LIB 10b17d2f8dSGregory CLEMENT help 11b17d2f8dSGregory CLEMENT This adds a CPUFreq driver which uses CPPC methods 12b17d2f8dSGregory CLEMENT as described in the ACPIv5.1 spec. CPPC stands for 13b17d2f8dSGregory CLEMENT Collaborative Processor Performance Controls. It 14b17d2f8dSGregory CLEMENT is based on an abstract continuous scale of CPU 15b17d2f8dSGregory CLEMENT performance values which allows the remote power 16b17d2f8dSGregory CLEMENT processor to flexibly optimize for power and 17b17d2f8dSGregory CLEMENT performance. CPPC relies on power management firmware 18b17d2f8dSGregory CLEMENT support for its operation. 19b17d2f8dSGregory CLEMENT 20b17d2f8dSGregory CLEMENT If in doubt, say N. 21b17d2f8dSGregory CLEMENT 224c38f2dfSViresh Kumarconfig ACPI_CPPC_CPUFREQ_FIE 234c38f2dfSViresh Kumar bool "Frequency Invariance support for CPPC cpufreq driver" 244c38f2dfSViresh Kumar depends on ACPI_CPPC_CPUFREQ && GENERIC_ARCH_TOPOLOGY 254c38f2dfSViresh Kumar default y 264c38f2dfSViresh Kumar help 274c38f2dfSViresh Kumar This extends frequency invariance support in the CPPC cpufreq driver, 284c38f2dfSViresh Kumar by using CPPC delivered and reference performance counters. 294c38f2dfSViresh Kumar 304c38f2dfSViresh Kumar If in doubt, say N. 314c38f2dfSViresh Kumar 32f328584fSYangtao Liconfig ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM 33f328584fSYangtao Li tristate "Allwinner nvmem based SUN50I CPUFreq driver" 34f328584fSYangtao Li depends on ARCH_SUNXI 35f328584fSYangtao Li depends on NVMEM_SUNXI_SID 36f328584fSYangtao Li select PM_OPP 37f328584fSYangtao Li help 38f328584fSYangtao Li This adds the nvmem based CPUFreq driver for Allwinner 39f328584fSYangtao Li h6 SoC. 40f328584fSYangtao Li 41f328584fSYangtao Li To compile this driver as a module, choose M here: the 42f328584fSYangtao Li module will be called sun50i-cpufreq-nvmem. 43f328584fSYangtao Li 446286bbb4SHector Martinconfig ARM_APPLE_SOC_CPUFREQ 456286bbb4SHector Martin tristate "Apple Silicon SoC CPUFreq support" 466286bbb4SHector Martin depends on ARCH_APPLE || (COMPILE_TEST && 64BIT) 476286bbb4SHector Martin select PM_OPP 486286bbb4SHector Martin default ARCH_APPLE 496286bbb4SHector Martin help 506286bbb4SHector Martin This adds the CPUFreq driver for Apple Silicon machines 516286bbb4SHector Martin (e.g. Apple M1). 526286bbb4SHector Martin 5392ce45fbSGregory CLEMENTconfig ARM_ARMADA_37XX_CPUFREQ 5492ce45fbSGregory CLEMENT tristate "Armada 37xx CPUFreq support" 550cf442c6SMiquel Raynal depends on ARCH_MVEBU && CPUFREQ_DT 5692ce45fbSGregory CLEMENT help 5792ce45fbSGregory CLEMENT This adds the CPUFreq driver support for Marvell Armada 37xx SoCs. 5892ce45fbSGregory CLEMENT The Armada 37xx PMU supports 4 frequency and VDD levels. 5992ce45fbSGregory CLEMENT 60f525a670SGregory CLEMENTconfig ARM_ARMADA_8K_CPUFREQ 61f525a670SGregory CLEMENT tristate "Armada 8K CPUFreq driver" 62f525a670SGregory CLEMENT depends on ARCH_MVEBU && CPUFREQ_DT 638c37ad2fSSven Auhagen select ARMADA_AP_CPU_CLK 64f525a670SGregory CLEMENT help 65f525a670SGregory CLEMENT This enables the CPUFreq driver support for Marvell 66f525a670SGregory CLEMENT Armada8k SOCs. 67f525a670SGregory CLEMENT Armada8K device has the AP806 which supports scaling 68f525a670SGregory CLEMENT to any full integer divider. 69f525a670SGregory CLEMENT 70f525a670SGregory CLEMENT If in doubt, say N. 71f525a670SGregory CLEMENT 72b17d2f8dSGregory CLEMENTconfig ARM_SCPI_CPUFREQ 73b17d2f8dSGregory CLEMENT tristate "SCPI based CPUfreq driver" 745c8b2623SSudeep Holla depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI 75b17d2f8dSGregory CLEMENT help 765c8b2623SSudeep Holla This adds the CPUfreq driver support for ARM platforms using SCPI 775c8b2623SSudeep Holla protocol for CPU power management. 78b17d2f8dSGregory CLEMENT 79b17d2f8dSGregory CLEMENT This driver uses SCPI Message Protocol driver to interact with the 80b17d2f8dSGregory CLEMENT firmware providing the CPU DVFS functionality. 81b17d2f8dSGregory CLEMENT 82b17d2f8dSGregory CLEMENTconfig ARM_VEXPRESS_SPC_CPUFREQ 83b17d2f8dSGregory CLEMENT tristate "Versatile Express SPC based CPUfreq driver" 84a0f950d3SSudeep Holla depends on ARM_CPU_TOPOLOGY && HAVE_CLK 85a0f950d3SSudeep Holla depends on ARCH_VEXPRESS_SPC 86a0f950d3SSudeep Holla select PM_OPP 87b17d2f8dSGregory CLEMENT help 88b17d2f8dSGregory CLEMENT This add the CPUfreq driver support for Versatile Express 89b17d2f8dSGregory CLEMENT big.LITTLE platforms using SPC for power management. 90b17d2f8dSGregory CLEMENT 91de322e08SMarkus Mayerconfig ARM_BRCMSTB_AVS_CPUFREQ 92de322e08SMarkus Mayer tristate "Broadcom STB AVS CPUfreq driver" 93de322e08SMarkus Mayer depends on ARCH_BRCMSTB || COMPILE_TEST 94de322e08SMarkus Mayer default y 95de322e08SMarkus Mayer help 96de322e08SMarkus Mayer Some Broadcom STB SoCs use a co-processor running proprietary firmware 97de322e08SMarkus Mayer ("AVS") to handle voltage and frequency scaling. This driver provides 988ffdb1feSJingyu Wang a standard CPUfreq interface to the firmware. 99de322e08SMarkus Mayer 100de322e08SMarkus Mayer Say Y, if you have a Broadcom SoC with AVS support for DFS or DVFS. 101de322e08SMarkus Mayer 102a0ea048aSViresh Kumarconfig ARM_HIGHBANK_CPUFREQ 103a0ea048aSViresh Kumar tristate "Calxeda Highbank-based" 104bbcf0719SViresh Kumar depends on ARCH_HIGHBANK && CPUFREQ_DT && REGULATOR 105a0ea048aSViresh Kumar default m 106a0ea048aSViresh Kumar help 107a0ea048aSViresh Kumar This adds the CPUFreq driver for Calxeda Highbank SoC 108a0ea048aSViresh Kumar based boards. 109a0ea048aSViresh Kumar 110a0ea048aSViresh Kumar If in doubt, say N. 111a0ea048aSViresh Kumar 112a0ea048aSViresh Kumarconfig ARM_IMX6Q_CPUFREQ 1131d0eaae9SShawn Guo tristate "Freescale i.MX6 cpufreq support" 1141d0eaae9SShawn Guo depends on ARCH_MXC 115a0ea048aSViresh Kumar depends on REGULATOR_ANATOP 116fc928b90SArnd Bergmann depends on NVMEM_IMX_OCOTP || COMPILE_TEST 1177e021687SNicolas Del Piano select PM_OPP 118a0ea048aSViresh Kumar help 1191d0eaae9SShawn Guo This adds cpufreq driver support for Freescale i.MX6 series SoCs. 120a0ea048aSViresh Kumar 121a0ea048aSViresh Kumar If in doubt, say N. 122a0ea048aSViresh Kumar 1234d28ba1dSLeonard Crestezconfig ARM_IMX_CPUFREQ_DT 1244d28ba1dSLeonard Crestez tristate "Freescale i.MX8M cpufreq support" 1254d28ba1dSLeonard Crestez depends on ARCH_MXC && CPUFREQ_DT 1264d28ba1dSLeonard Crestez help 1274d28ba1dSLeonard Crestez This adds cpufreq driver support for Freescale i.MX8M series SoCs, 1284d28ba1dSLeonard Crestez based on cpufreq-dt. 1294d28ba1dSLeonard Crestez 1304d28ba1dSLeonard Crestez If in doubt, say N. 1314d28ba1dSLeonard Crestez 132a0ea048aSViresh Kumarconfig ARM_KIRKWOOD_CPUFREQ 1336c8df11dSAndrew Lunn def_bool MACH_KIRKWOOD 134a0ea048aSViresh Kumar help 135a0ea048aSViresh Kumar This adds the CPUFreq driver for Marvell Kirkwood 136a0ea048aSViresh Kumar SoCs. 137a0ea048aSViresh Kumar 138501c574fSSean Wangconfig ARM_MEDIATEK_CPUFREQ 139501c574fSSean Wang tristate "CPU Frequency scaling support for MediaTek SoCs" 1401453863fSPi-Cheng Chen depends on ARCH_MEDIATEK && REGULATOR 1411453863fSPi-Cheng Chen select PM_OPP 1421453863fSPi-Cheng Chen help 143501c574fSSean Wang This adds the CPUFreq driver support for MediaTek SoCs. 1441453863fSPi-Cheng Chen 1454855e26bSHector.Yuanconfig ARM_MEDIATEK_CPUFREQ_HW 1464855e26bSHector.Yuan tristate "MediaTek CPUFreq HW driver" 1474855e26bSHector.Yuan depends on ARCH_MEDIATEK || COMPILE_TEST 1484855e26bSHector.Yuan default m 1494855e26bSHector.Yuan help 1504855e26bSHector.Yuan Support for the CPUFreq HW driver. 1514855e26bSHector.Yuan Some MediaTek chipsets have a HW engine to offload the steps 1524855e26bSHector.Yuan necessary for changing the frequency of the CPUs. Firmware loaded 1534855e26bSHector.Yuan in this engine exposes a programming interface to the OS. 1544855e26bSHector.Yuan The driver implements the cpufreq interface for this HW engine. 1554855e26bSHector.Yuan Say Y if you want to support CPUFreq HW. 1564855e26bSHector.Yuan 157b09db45cSRussell Kingconfig ARM_OMAP2PLUS_CPUFREQ 158b09db45cSRussell King bool "TI OMAP2+" 1592d59dcfbSKevin Hilman depends on ARCH_OMAP2PLUS 160b09db45cSRussell King default ARCH_OMAP2PLUS 161b09db45cSRussell King 1627d127095SSricharan Rconfig ARM_QCOM_CPUFREQ_NVMEM 1637d127095SSricharan R tristate "Qualcomm nvmem based CPUFreq" 164a8811ec7SAnsuel Smith depends on ARCH_QCOM 16528fc7c98SRafał Miłecki depends on NVMEM_QCOM_QFPROM 16646e2856bSIlia Lin depends on QCOM_SMEM 16746e2856bSIlia Lin select PM_OPP 16846e2856bSIlia Lin help 16946e2856bSIlia Lin This adds the CPUFreq driver for Qualcomm Kryo SoC based boards. 17046e2856bSIlia Lin 17146e2856bSIlia Lin If in doubt, say N. 17246e2856bSIlia Lin 1732849dd8bSTaniya Dasconfig ARM_QCOM_CPUFREQ_HW 1742849dd8bSTaniya Das tristate "QCOM CPUFreq HW driver" 1752849dd8bSTaniya Das depends on ARCH_QCOM || COMPILE_TEST 176*af35d063SArnd Bergmann depends on COMMON_CLK 1772849dd8bSTaniya Das help 1782849dd8bSTaniya Das Support for the CPUFreq HW driver. 1792849dd8bSTaniya Das Some QCOM chipsets have a HW engine to offload the steps 1802849dd8bSTaniya Das necessary for changing the frequency of the CPUs. Firmware loaded 1812849dd8bSTaniya Das in this engine exposes a programming interface to the OS. 1822849dd8bSTaniya Das The driver implements the cpufreq interface for this HW engine. 1832849dd8bSTaniya Das Say Y if you want to support CPUFreq HW. 1842849dd8bSTaniya Das 185d3df18a9SNicolas Saenz Julienneconfig ARM_RASPBERRYPI_CPUFREQ 186d3df18a9SNicolas Saenz Julienne tristate "Raspberry Pi cpufreq support" 187d3df18a9SNicolas Saenz Julienne depends on CLK_RASPBERRYPI || COMPILE_TEST 188d3df18a9SNicolas Saenz Julienne help 189d3df18a9SNicolas Saenz Julienne This adds the CPUFreq driver for Raspberry Pi 190d3df18a9SNicolas Saenz Julienne 191d3df18a9SNicolas Saenz Julienne If in doubt, say N. 192d3df18a9SNicolas Saenz Julienne 19315964d38SKukjin Kimconfig ARM_S3C64XX_CPUFREQ 19415964d38SKukjin Kim bool "Samsung S3C64XX" 19515964d38SKukjin Kim depends on CPU_S3C6410 19615964d38SKukjin Kim default y 19715964d38SKukjin Kim help 19815964d38SKukjin Kim This adds the CPUFreq driver for Samsung S3C6410 SoC. 19915964d38SKukjin Kim 20015964d38SKukjin Kim If in doubt, say N. 20115964d38SKukjin Kim 202f7d77079SKukjin Kimconfig ARM_S5PV210_CPUFREQ 203f7d77079SKukjin Kim bool "Samsung S5PV210 and S5PC110" 204f7d77079SKukjin Kim depends on CPU_S5PV210 205f7d77079SKukjin Kim default y 206f7d77079SKukjin Kim help 207f7d77079SKukjin Kim This adds the CPUFreq driver for Samsung S5PV210 and 208f7d77079SKukjin Kim S5PC110 SoCs. 209f7d77079SKukjin Kim 210f7d77079SKukjin Kim If in doubt, say N. 211f7d77079SKukjin Kim 21259a2e613SViresh Kumarconfig ARM_SA1110_CPUFREQ 21359a2e613SViresh Kumar bool 21459a2e613SViresh Kumar 21599d6bdf3SSudeep Hollaconfig ARM_SCMI_CPUFREQ 21699d6bdf3SSudeep Holla tristate "SCMI based CPUfreq driver" 21799d6bdf3SSudeep Holla depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 21899d6bdf3SSudeep Holla select PM_OPP 21999d6bdf3SSudeep Holla help 22099d6bdf3SSudeep Holla This adds the CPUfreq driver support for ARM platforms using SCMI 22199d6bdf3SSudeep Holla protocol for CPU power management. 22299d6bdf3SSudeep Holla 22399d6bdf3SSudeep Holla This driver uses SCMI Message Protocol driver to interact with the 22499d6bdf3SSudeep Holla firmware providing the CPU DVFS functionality. 22599d6bdf3SSudeep Holla 22642099322SDeepak Sikriconfig ARM_SPEAR_CPUFREQ 22742099322SDeepak Sikri bool "SPEAr CPUFreq support" 22842099322SDeepak Sikri depends on PLAT_SPEAR 22942099322SDeepak Sikri default y 23042099322SDeepak Sikri help 23142099322SDeepak Sikri This adds the CPUFreq driver support for SPEAr SOCs. 232dbb8d76eSViresh Kumar 233ab0ea257SLee Jonesconfig ARM_STI_CPUFREQ 234ab0ea257SLee Jones tristate "STi CPUFreq support" 235a0d698d8SAlain Volmat depends on CPUFREQ_DT && SOC_STIH407 236ab0ea257SLee Jones help 237ab0ea257SLee Jones This driver uses the generic OPP framework to match the running 238ab0ea257SLee Jones platform with a predefined set of suitable values. If not provided 239ab0ea257SLee Jones we will fall-back so safe-values contained in Device Tree. Enable 240ab0ea257SLee Jones this config option if you wish to add CPUFreq support for STi based 241ab0ea257SLee Jones SoCs. 242ab0ea257SLee Jones 243109e13eaSTuomas Tynkkynenconfig ARM_TEGRA20_CPUFREQ 2449ce27463SDmitry Osipenko tristate "Tegra20/30 CPUFreq support" 2459ce27463SDmitry Osipenko depends on ARCH_TEGRA && CPUFREQ_DT 246dbb8d76eSViresh Kumar default y 247dbb8d76eSViresh Kumar help 2489ce27463SDmitry Osipenko This adds the CPUFreq driver support for Tegra20/30 SOCs. 249608eab22SPetr Cvek 2509eb15dbbSTuomas Tynkkynenconfig ARM_TEGRA124_CPUFREQ 2519f5ed5feSJoseph Lo bool "Tegra124 CPUFreq support" 2529f5ed5feSJoseph Lo depends on ARCH_TEGRA && CPUFREQ_DT 2539eb15dbbSTuomas Tynkkynen default y 2549eb15dbbSTuomas Tynkkynen help 2559eb15dbbSTuomas Tynkkynen This adds the CPUFreq driver support for Tegra124 SOCs. 2569eb15dbbSTuomas Tynkkynen 257939dc6f5SMikko Perttunenconfig ARM_TEGRA186_CPUFREQ 258939dc6f5SMikko Perttunen tristate "Tegra186 CPUFreq support" 259939dc6f5SMikko Perttunen depends on ARCH_TEGRA && TEGRA_BPMP 260939dc6f5SMikko Perttunen help 261939dc6f5SMikko Perttunen This adds the CPUFreq driver support for Tegra186 SOCs. 262939dc6f5SMikko Perttunen 263df320f89SSumit Guptaconfig ARM_TEGRA194_CPUFREQ 264df320f89SSumit Gupta tristate "Tegra194 CPUFreq support" 265df320f89SSumit Gupta depends on ARCH_TEGRA_194_SOC && TEGRA_BPMP 266df320f89SSumit Gupta default y 267df320f89SSumit Gupta help 268df320f89SSumit Gupta This adds CPU frequency driver support for Tegra194 SOCs. 269df320f89SSumit Gupta 270e13cf046SDave Gerlachconfig ARM_TI_CPUFREQ 271e13cf046SDave Gerlach bool "Texas Instruments CPUFreq support" 272ddb72884SDave Gerlach depends on ARCH_OMAP2PLUS || ARCH_K3 273ddb72884SDave Gerlach default y 274e13cf046SDave Gerlach help 275e13cf046SDave Gerlach This driver enables valid OPPs on the running platform based on 276e13cf046SDave Gerlach values contained within the SoC in use. Enable this in order to 277e13cf046SDave Gerlach use the cpufreq-dt driver on all Texas Instruments platforms that 278e13cf046SDave Gerlach provide dt based operating-points-v2 tables with opp-supported-hw 279e13cf046SDave Gerlach data provided. Required for cpufreq support on AM335x, AM437x, 280e13cf046SDave Gerlach DRA7x, and AM57x platforms. 281e13cf046SDave Gerlach 282608eab22SPetr Cvekconfig ARM_PXA2xx_CPUFREQ 283608eab22SPetr Cvek tristate "Intel PXA2xx CPUfreq driver" 284608eab22SPetr Cvek depends on PXA27x || PXA25x 285608eab22SPetr Cvek help 286608eab22SPetr Cvek This add the CPUFreq driver support for Intel PXA2xx SOCs. 287608eab22SPetr Cvek 288608eab22SPetr Cvek If in doubt, say N. 289