xref: /openbmc/linux/drivers/cpufreq/Kconfig.arm (revision 5ee9cd065836e5934710ca35653bce7905add20b)
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