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