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