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