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