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