xref: /linux/drivers/cpufreq/Kconfig.arm (revision 0cc7933cbec80900bdbe658b72e2ba99187fe628)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# ARM CPU Frequency scaling drivers
4#
5
6config ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM
7	tristate "Allwinner nvmem based SUN50I CPUFreq driver"
8	depends on ARCH_SUNXI || COMPILE_TEST
9	depends on NVMEM_SUNXI_SID
10	select PM_OPP
11	help
12	  This adds the nvmem based CPUFreq driver for Allwinner
13	  h6 SoC.
14
15	  To compile this driver as a module, choose M here: the
16	  module will be called sun50i-cpufreq-nvmem.
17
18config ARM_AIROHA_SOC_CPUFREQ
19	tristate "Airoha EN7581 SoC CPUFreq support"
20	depends on ARCH_AIROHA || COMPILE_TEST
21	depends on OF
22	select PM_OPP
23	default ARCH_AIROHA
24	help
25	  This adds the CPUFreq driver for Airoha EN7581 SoCs.
26
27config ARM_APPLE_SOC_CPUFREQ
28	tristate "Apple Silicon SoC CPUFreq support"
29	depends on ARCH_APPLE || (COMPILE_TEST && 64BIT)
30	select PM_OPP
31	help
32	  This adds the CPUFreq driver for Apple Silicon machines
33	  (e.g. Apple M1).
34
35config ARM_ARMADA_37XX_CPUFREQ
36	tristate "Armada 37xx CPUFreq support"
37	depends on ARCH_MVEBU || COMPILE_TEST
38	depends on CPUFREQ_DT
39	help
40	  This adds the CPUFreq driver support for Marvell Armada 37xx SoCs.
41	  The Armada 37xx PMU supports 4 frequency and VDD levels.
42
43config ARM_ARMADA_8K_CPUFREQ
44	tristate "Armada 8K CPUFreq driver"
45	depends on ARCH_MVEBU || COMPILE_TEST
46	depends on CPUFREQ_DT
47	select ARMADA_AP_CPU_CLK if COMMON_CLK
48	help
49	  This enables the CPUFreq driver support for Marvell
50	  Armada8k SOCs.
51	  Armada8K device has the AP806 which supports scaling
52	  to any full integer divider.
53
54	  If in doubt, say N.
55
56config ARM_SCPI_CPUFREQ
57	tristate "SCPI based CPUfreq driver"
58	depends on ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI
59	help
60	  This adds the CPUfreq driver support for ARM platforms using SCPI
61	  protocol for CPU power management.
62
63	  This driver uses SCPI Message Protocol driver to interact with the
64	  firmware providing the CPU DVFS functionality.
65
66config ARM_VEXPRESS_SPC_CPUFREQ
67	tristate "Versatile Express SPC based CPUfreq driver"
68	depends on ARM_CPU_TOPOLOGY && HAVE_CLK
69	depends on ARCH_VEXPRESS_SPC || COMPILE_TEST
70	select PM_OPP
71	help
72	  This add the CPUfreq driver support for Versatile Express
73	  big.LITTLE platforms using SPC for power management.
74
75config ARM_BRCMSTB_AVS_CPUFREQ
76	tristate "Broadcom STB AVS CPUfreq driver"
77	depends on (ARCH_BRCMSTB && !ARM_SCMI_CPUFREQ) || COMPILE_TEST
78	default y if ARCH_BRCMSTB && !ARM_SCMI_CPUFREQ
79	help
80	  Some Broadcom STB SoCs use a co-processor running proprietary firmware
81	  ("AVS") to handle voltage and frequency scaling. This driver provides
82	  a standard CPUfreq interface to the firmware.
83
84	  Say Y, if you have a Broadcom SoC with AVS support for DFS or DVFS.
85
86config ARM_HIGHBANK_CPUFREQ
87	tristate "Calxeda Highbank-based"
88	depends on ARCH_HIGHBANK || COMPILE_TEST
89	depends on CPUFREQ_DT && REGULATOR && PL320_MBOX
90	default m if ARCH_HIGHBANK
91	help
92	  This adds the CPUFreq driver for Calxeda Highbank SoC
93	  based boards.
94
95	  If in doubt, say N.
96
97config ARM_IMX6Q_CPUFREQ
98	tristate "Freescale i.MX6 cpufreq support"
99	depends on ARCH_MXC
100	depends on REGULATOR_ANATOP
101	depends on NVMEM_IMX_OCOTP || COMPILE_TEST
102	select PM_OPP
103	help
104	  This adds cpufreq driver support for Freescale i.MX6 series SoCs.
105
106	  If in doubt, say N.
107
108config ARM_IMX_CPUFREQ_DT
109	tristate "Freescale i.MX8M cpufreq support"
110	depends on CPUFREQ_DT
111	depends on ARCH_MXC || COMPILE_TEST
112	help
113	  This adds cpufreq driver support for Freescale i.MX7/i.MX8M
114	  series SoCs, based on cpufreq-dt.
115
116	  If in doubt, say N.
117
118config ARM_KIRKWOOD_CPUFREQ
119	def_bool MACH_KIRKWOOD
120	help
121	  This adds the CPUFreq driver for Marvell Kirkwood
122	  SoCs.
123
124config ARM_MEDIATEK_CPUFREQ
125	tristate "CPU Frequency scaling support for MediaTek SoCs"
126	depends on ARCH_MEDIATEK || COMPILE_TEST
127	depends on REGULATOR
128	select PM_OPP
129	help
130	  This adds the CPUFreq driver support for MediaTek SoCs.
131
132config ARM_MEDIATEK_CPUFREQ_HW
133	tristate "MediaTek CPUFreq HW driver"
134	depends on ARCH_MEDIATEK || COMPILE_TEST
135	default m if ARCH_MEDIATEK
136	help
137	  Support for the CPUFreq HW driver.
138	  Some MediaTek chipsets have a HW engine to offload the steps
139	  necessary for changing the frequency of the CPUs. Firmware loaded
140	  in this engine exposes a programming interface to the OS.
141	  The driver implements the cpufreq interface for this HW engine.
142	  Say Y if you want to support CPUFreq HW.
143
144config ARM_QCOM_CPUFREQ_NVMEM
145	tristate "Qualcomm nvmem based CPUFreq"
146	depends on ARCH_QCOM || COMPILE_TEST
147	depends on NVMEM_QCOM_QFPROM
148	depends on QCOM_SMEM
149	select PM_OPP
150	help
151	  This adds the CPUFreq driver for Qualcomm Kryo SoC based boards.
152
153	  If in doubt, say N.
154
155config ARM_QCOM_CPUFREQ_HW
156	tristate "QCOM CPUFreq HW driver"
157	depends on ARCH_QCOM || COMPILE_TEST
158	depends on COMMON_CLK
159	help
160	  Support for the CPUFreq HW driver.
161	  Some QCOM chipsets have a HW engine to offload the steps
162	  necessary for changing the frequency of the CPUs. Firmware loaded
163	  in this engine exposes a programming interface to the OS.
164	  The driver implements the cpufreq interface for this HW engine.
165	  Say Y if you want to support CPUFreq HW.
166
167config ARM_RASPBERRYPI_CPUFREQ
168	tristate "Raspberry Pi cpufreq support"
169	depends on CLK_RASPBERRYPI || COMPILE_TEST
170	help
171	  This adds the CPUFreq driver for Raspberry Pi
172
173	  If in doubt, say N.
174
175config ARM_S3C64XX_CPUFREQ
176	bool "Samsung S3C64XX"
177	depends on CPU_S3C6410 || COMPILE_TEST
178	default CPU_S3C6410
179	help
180	  This adds the CPUFreq driver for Samsung S3C6410 SoC.
181
182	  If in doubt, say N.
183
184config ARM_S5PV210_CPUFREQ
185	bool "Samsung S5PV210 and S5PC110"
186	depends on CPU_S5PV210 || COMPILE_TEST
187	default CPU_S5PV210
188	help
189	  This adds the CPUFreq driver for Samsung S5PV210 and
190	  S5PC110 SoCs.
191
192	  If in doubt, say N.
193
194config ARM_SA1110_CPUFREQ
195	bool
196
197config ARM_SCMI_CPUFREQ
198	tristate "SCMI based CPUfreq driver"
199	depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
200	select PM_OPP
201	help
202	  This adds the CPUfreq driver support for ARM platforms using SCMI
203	  protocol for CPU power management.
204
205	  This driver uses SCMI Message Protocol driver to interact with the
206	  firmware providing the CPU DVFS functionality.
207
208config ARM_SPEAR_CPUFREQ
209	bool "SPEAr CPUFreq support"
210	depends on PLAT_SPEAR || COMPILE_TEST
211	default PLAT_SPEAR
212	help
213	  This adds the CPUFreq driver support for SPEAr SOCs.
214
215config ARM_STI_CPUFREQ
216	tristate "STi CPUFreq support"
217	depends on CPUFREQ_DT
218	depends on SOC_STIH407 || COMPILE_TEST
219	help
220	  This driver uses the generic OPP framework to match the running
221	  platform with a predefined set of suitable values.  If not provided
222	  we will fall-back so safe-values contained in Device Tree.  Enable
223	  this config option if you wish to add CPUFreq support for STi based
224	  SoCs.
225
226config ARM_TEGRA20_CPUFREQ
227	tristate "Tegra20/30 CPUFreq support"
228	depends on ARCH_TEGRA || COMPILE_TEST
229	depends on CPUFREQ_DT
230	default ARCH_TEGRA
231	help
232	  This adds the CPUFreq driver support for Tegra20/30 SOCs.
233
234config ARM_TEGRA124_CPUFREQ
235	tristate "Tegra124 CPUFreq support"
236	depends on ARCH_TEGRA || COMPILE_TEST
237	depends on CPUFREQ_DT
238	default ARCH_TEGRA
239	help
240	  This adds the CPUFreq driver support for Tegra124 SOCs.
241
242config ARM_TEGRA186_CPUFREQ
243	tristate "Tegra186 CPUFreq support"
244	depends on ARCH_TEGRA || COMPILE_TEST
245	depends on TEGRA_BPMP
246	help
247	  This adds the CPUFreq driver support for Tegra186 SOCs.
248
249config ARM_TEGRA194_CPUFREQ
250	tristate "Tegra194 CPUFreq support"
251	depends on ARCH_TEGRA_194_SOC || ARCH_TEGRA_234_SOC || (64BIT && COMPILE_TEST)
252	depends on TEGRA_BPMP
253	default ARCH_TEGRA_194_SOC || ARCH_TEGRA_234_SOC
254	help
255	  This adds CPU frequency driver support for Tegra194 SOCs.
256
257config ARM_TI_CPUFREQ
258	bool "Texas Instruments CPUFreq support"
259	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
260	default ARCH_OMAP2PLUS || ARCH_K3
261	help
262	  This driver enables valid OPPs on the running platform based on
263	  values contained within the SoC in use. Enable this in order to
264	  use the cpufreq-dt driver on all Texas Instruments platforms that
265	  provide dt based operating-points-v2 tables with opp-supported-hw
266	  data provided. Required for cpufreq support on AM335x, AM437x,
267	  DRA7x, and AM57x platforms.
268
269config ARM_PXA2xx_CPUFREQ
270	tristate "Intel PXA2xx CPUfreq driver"
271	depends on PXA27x || PXA25x || COMPILE_TEST
272	help
273	  This add the CPUFreq driver support for Intel PXA2xx SOCs.
274
275	  If in doubt, say N.
276