xref: /openbmc/linux/drivers/cpufreq/Kconfig.arm (revision 501c574f)
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_MEDIATEK_CPUFREQ
100	tristate "CPU Frequency scaling support for MediaTek SoCs"
101	depends on ARCH_MEDIATEK && REGULATOR
102	depends on !CPU_THERMAL || THERMAL
103	select PM_OPP
104	help
105	  This adds the CPUFreq driver support for MediaTek SoCs.
106
107config ARM_OMAP2PLUS_CPUFREQ
108	bool "TI OMAP2+"
109	depends on ARCH_OMAP2PLUS
110	default ARCH_OMAP2PLUS
111
112config ARM_S3C_CPUFREQ
113	bool
114	help
115	  Internal configuration node for common cpufreq on Samsung SoC
116
117config ARM_S3C24XX_CPUFREQ
118	bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
119	depends on ARCH_S3C24XX
120	select ARM_S3C_CPUFREQ
121	help
122	  This enables the CPUfreq driver for the Samsung S3C24XX family
123	  of CPUs.
124
125	  For details, take a look at <file:Documentation/cpu-freq>.
126
127	  If in doubt, say N.
128
129config ARM_S3C24XX_CPUFREQ_DEBUG
130	bool "Debug CPUfreq Samsung driver core"
131	depends on ARM_S3C24XX_CPUFREQ
132	help
133	  Enable s3c_freq_dbg for the Samsung S3C CPUfreq core
134
135config ARM_S3C24XX_CPUFREQ_IODEBUG
136	bool "Debug CPUfreq Samsung driver IO timing"
137	depends on ARM_S3C24XX_CPUFREQ
138	help
139	  Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core
140
141config ARM_S3C24XX_CPUFREQ_DEBUGFS
142	bool "Export debugfs for CPUFreq"
143	depends on ARM_S3C24XX_CPUFREQ && DEBUG_FS
144	help
145	  Export status information via debugfs.
146
147config ARM_S3C2410_CPUFREQ
148	bool
149	depends on ARM_S3C24XX_CPUFREQ && CPU_S3C2410
150	select S3C2410_CPUFREQ_UTILS
151	help
152	  CPU Frequency scaling support for S3C2410
153
154config ARM_S3C2412_CPUFREQ
155	bool
156	depends on ARM_S3C24XX_CPUFREQ && CPU_S3C2412
157	default y
158	select S3C2412_IOTIMING
159	help
160	  CPU Frequency scaling support for S3C2412 and S3C2413 SoC CPUs.
161
162config ARM_S3C2416_CPUFREQ
163	bool "S3C2416 CPU Frequency scaling support"
164	depends on CPU_S3C2416
165	help
166	  This adds the CPUFreq driver for the Samsung S3C2416 and
167	  S3C2450 SoC. The S3C2416 supports changing the rate of the
168	  armdiv clock source and also entering a so called dynamic
169	  voltage scaling mode in which it is possible to reduce the
170	  core voltage of the CPU.
171
172	  If in doubt, say N.
173
174config ARM_S3C2416_CPUFREQ_VCORESCALE
175	bool "Allow voltage scaling for S3C2416 arm core"
176	depends on ARM_S3C2416_CPUFREQ && REGULATOR
177	help
178	  Enable CPU voltage scaling when entering the dvs mode.
179	  It uses information gathered through existing hardware and
180	  tests but not documented in any datasheet.
181
182	  If in doubt, say N.
183
184config ARM_S3C2440_CPUFREQ
185	bool "S3C2440/S3C2442 CPU Frequency scaling support"
186	depends on ARM_S3C24XX_CPUFREQ && (CPU_S3C2440 || CPU_S3C2442)
187	select S3C2410_CPUFREQ_UTILS
188	default y
189	help
190	  CPU Frequency scaling support for S3C2440 and S3C2442 SoC CPUs.
191
192config 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
201config 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
211config ARM_SA1100_CPUFREQ
212	bool
213
214config ARM_SA1110_CPUFREQ
215	bool
216
217config ARM_SCPI_CPUFREQ
218        tristate "SCPI based CPUfreq driver"
219	depends on ARM_BIG_LITTLE_CPUFREQ && ARM_SCPI_PROTOCOL && COMMON_CLK_SCPI
220        help
221	  This adds the CPUfreq driver support for ARM big.LITTLE platforms
222	  using SCPI protocol for CPU power management.
223
224	  This driver uses SCPI Message Protocol driver to interact with the
225	  firmware providing the CPU DVFS functionality.
226
227config ARM_SPEAR_CPUFREQ
228	bool "SPEAr CPUFreq support"
229	depends on PLAT_SPEAR
230	default y
231	help
232	  This adds the CPUFreq driver support for SPEAr SOCs.
233
234config ARM_STI_CPUFREQ
235	tristate "STi CPUFreq support"
236	depends on SOC_STIH407
237	help
238	  This driver uses the generic OPP framework to match the running
239	  platform with a predefined set of suitable values.  If not provided
240	  we will fall-back so safe-values contained in Device Tree.  Enable
241	  this config option if you wish to add CPUFreq support for STi based
242	  SoCs.
243
244config ARM_TEGRA20_CPUFREQ
245	bool "Tegra20 CPUFreq support"
246	depends on ARCH_TEGRA
247	default y
248	help
249	  This adds the CPUFreq driver support for Tegra20 SOCs.
250
251config ARM_TEGRA124_CPUFREQ
252	tristate "Tegra124 CPUFreq support"
253	depends on ARCH_TEGRA && CPUFREQ_DT && REGULATOR
254	default y
255	help
256	  This adds the CPUFreq driver support for Tegra124 SOCs.
257
258config ARM_TEGRA186_CPUFREQ
259	tristate "Tegra186 CPUFreq support"
260	depends on ARCH_TEGRA && TEGRA_BPMP
261	help
262	  This adds the CPUFreq driver support for Tegra186 SOCs.
263
264config ARM_TI_CPUFREQ
265	bool "Texas Instruments CPUFreq support"
266	depends on ARCH_OMAP2PLUS
267	help
268	  This driver enables valid OPPs on the running platform based on
269	  values contained within the SoC in use. Enable this in order to
270	  use the cpufreq-dt driver on all Texas Instruments platforms that
271	  provide dt based operating-points-v2 tables with opp-supported-hw
272	  data provided. Required for cpufreq support on AM335x, AM437x,
273	  DRA7x, and AM57x platforms.
274
275config ARM_PXA2xx_CPUFREQ
276	tristate "Intel PXA2xx CPUfreq driver"
277	depends on PXA27x || PXA25x
278	help
279	  This add the CPUFreq driver support for Intel PXA2xx SOCs.
280
281	  If in doubt, say N.
282
283config ACPI_CPPC_CPUFREQ
284	tristate "CPUFreq driver based on the ACPI CPPC spec"
285	depends on ACPI_PROCESSOR
286	select ACPI_CPPC_LIB
287	default n
288	help
289	  This adds a CPUFreq driver which uses CPPC methods
290	  as described in the ACPIv5.1 spec. CPPC stands for
291	  Collaborative Processor Performance Controls. It
292	  is based on an abstract continuous scale of CPU
293	  performance values which allows the remote power
294	  processor to flexibly optimize for power and
295	  performance. CPPC relies on power management firmware
296	  support for its operation.
297
298	  If in doubt, say N.
299