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