Merge branch 'lsk-v4.4-eas-v5.2' of git://git.linaro.org/arm/eas/kernel.git
[firefly-linux-kernel-4.4.55.git] / drivers / cpufreq / Kconfig
1 menu "CPU Frequency scaling"
2
3 config CPU_FREQ
4         bool "CPU Frequency scaling"
5         select SRCU
6         help
7           CPU Frequency scaling allows you to change the clock speed of 
8           CPUs on the fly. This is a nice method to save power, because 
9           the lower the CPU clock speed, the less power the CPU consumes.
10
11           Note that this driver doesn't automatically change the CPU
12           clock speed, you need to either enable a dynamic cpufreq governor
13           (see below) after boot, or use a userspace tool.
14
15           For details, take a look at <file:Documentation/cpu-freq>.
16
17           If in doubt, say N.
18
19 if CPU_FREQ
20
21 config CPU_FREQ_GOV_COMMON
22         bool
23
24 config CPU_FREQ_BOOST_SW
25         bool
26         depends on THERMAL
27
28 config CPU_FREQ_STAT
29         tristate "CPU frequency translation statistics"
30         default y
31         help
32           This driver exports CPU frequency statistics information through sysfs
33           file system.
34
35           To compile this driver as a module, choose M here: the
36           module will be called cpufreq_stats.
37
38           If in doubt, say N.
39
40 config CPU_FREQ_STAT_DETAILS
41         bool "CPU frequency translation statistics details"
42         depends on CPU_FREQ_STAT
43         help
44           This will show detail CPU frequency translation table in sysfs file
45           system.
46
47           If in doubt, say N.
48
49 choice
50         prompt "Default CPUFreq governor"
51         default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
52         default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
53         help
54           This option sets which CPUFreq governor shall be loaded at
55           startup. If in doubt, select 'performance'.
56
57 config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
58         bool "performance"
59         select CPU_FREQ_GOV_PERFORMANCE
60         help
61           Use the CPUFreq governor 'performance' as default. This sets
62           the frequency statically to the highest frequency supported by
63           the CPU.
64
65 config CPU_FREQ_DEFAULT_GOV_POWERSAVE
66         bool "powersave"
67         select CPU_FREQ_GOV_POWERSAVE
68         help
69           Use the CPUFreq governor 'powersave' as default. This sets
70           the frequency statically to the lowest frequency supported by
71           the CPU.
72
73 config CPU_FREQ_DEFAULT_GOV_USERSPACE
74         bool "userspace"
75         select CPU_FREQ_GOV_USERSPACE
76         help
77           Use the CPUFreq governor 'userspace' as default. This allows
78           you to set the CPU frequency manually or when a userspace 
79           program shall be able to set the CPU dynamically without having
80           to enable the userspace governor manually.
81
82 config CPU_FREQ_DEFAULT_GOV_ONDEMAND
83         bool "ondemand"
84         select CPU_FREQ_GOV_ONDEMAND
85         select CPU_FREQ_GOV_PERFORMANCE
86         help
87           Use the CPUFreq governor 'ondemand' as default. This allows
88           you to get a full dynamic frequency capable system by simply
89           loading your cpufreq low-level hardware driver.
90           Be aware that not all cpufreq drivers support the ondemand
91           governor. If unsure have a look at the help section of the
92           driver. Fallback governor will be the performance governor.
93
94 config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
95         bool "conservative"
96         select CPU_FREQ_GOV_CONSERVATIVE
97         select CPU_FREQ_GOV_PERFORMANCE
98         help
99           Use the CPUFreq governor 'conservative' as default. This allows
100           you to get a full dynamic frequency capable system by simply
101           loading your cpufreq low-level hardware driver.
102           Be aware that not all cpufreq drivers support the conservative
103           governor. If unsure have a look at the help section of the
104           driver. Fallback governor will be the performance governor.
105
106 config CPU_FREQ_DEFAULT_GOV_INTERACTIVE
107         bool "interactive"
108         select CPU_FREQ_GOV_INTERACTIVE
109         help
110           Use the CPUFreq governor 'interactive' as default. This allows
111           you to get a full dynamic cpu frequency capable system by simply
112           loading your cpufreq low-level hardware driver, using the
113           'interactive' governor for latency-sensitive workloads.
114
115 config CPU_FREQ_DEFAULT_GOV_SCHED
116         bool "sched"
117         select CPU_FREQ_GOV_SCHED
118         help
119           Use the CPUfreq governor 'sched' as default. This scales
120           cpu frequency using CPU utilization estimates from the
121           scheduler.
122 endchoice
123
124 config CPU_FREQ_GOV_PERFORMANCE
125         tristate "'performance' governor"
126         help
127           This cpufreq governor sets the frequency statically to the
128           highest available CPU frequency.
129
130           To compile this driver as a module, choose M here: the
131           module will be called cpufreq_performance.
132
133           If in doubt, say Y.
134
135 config CPU_FREQ_GOV_POWERSAVE
136         tristate "'powersave' governor"
137         help
138           This cpufreq governor sets the frequency statically to the
139           lowest available CPU frequency.
140
141           To compile this driver as a module, choose M here: the
142           module will be called cpufreq_powersave.
143
144           If in doubt, say Y.
145
146 config CPU_FREQ_GOV_USERSPACE
147         tristate "'userspace' governor for userspace frequency scaling"
148         help
149           Enable this cpufreq governor when you either want to set the
150           CPU frequency manually or when a userspace program shall
151           be able to set the CPU dynamically, like on LART 
152           <http://www.lartmaker.nl/>.
153
154           To compile this driver as a module, choose M here: the
155           module will be called cpufreq_userspace.
156
157           For details, take a look at <file:Documentation/cpu-freq/>.
158
159           If in doubt, say Y.
160
161 config CPU_FREQ_GOV_ONDEMAND
162         tristate "'ondemand' cpufreq policy governor"
163         select CPU_FREQ_GOV_COMMON
164         help
165           'ondemand' - This driver adds a dynamic cpufreq policy governor.
166           The governor does a periodic polling and 
167           changes frequency based on the CPU utilization.
168           The support for this governor depends on CPU capability to
169           do fast frequency switching (i.e, very low latency frequency
170           transitions). 
171
172           To compile this driver as a module, choose M here: the
173           module will be called cpufreq_ondemand.
174
175           For details, take a look at linux/Documentation/cpu-freq.
176
177           If in doubt, say N.
178
179 config CPU_FREQ_GOV_INTERACTIVE
180         bool "'interactive' cpufreq policy governor"
181         help
182           'interactive' - This driver adds a dynamic cpufreq policy governor
183           designed for latency-sensitive workloads.
184
185           This governor attempts to reduce the latency of clock
186           increases so that the system is more responsive to
187           interactive workloads.
188
189           For details, take a look at linux/Documentation/cpu-freq.
190
191           If in doubt, say N.
192
193 config CPU_FREQ_GOV_CONSERVATIVE
194         tristate "'conservative' cpufreq governor"
195         depends on CPU_FREQ
196         select CPU_FREQ_GOV_COMMON
197         help
198           'conservative' - this driver is rather similar to the 'ondemand'
199           governor both in its source code and its purpose, the difference is
200           its optimisation for better suitability in a battery powered
201           environment.  The frequency is gracefully increased and decreased
202           rather than jumping to 100% when speed is required.
203
204           If you have a desktop machine then you should really be considering
205           the 'ondemand' governor instead, however if you are using a laptop,
206           PDA or even an AMD64 based computer (due to the unacceptable
207           step-by-step latency issues between the minimum and maximum frequency
208           transitions in the CPU) you will probably want to use this governor.
209
210           To compile this driver as a module, choose M here: the
211           module will be called cpufreq_conservative.
212
213           For details, take a look at linux/Documentation/cpu-freq.
214
215           If in doubt, say N.
216
217 config CPU_FREQ_GOV_SCHED
218         bool "'sched' cpufreq governor"
219         depends on CPU_FREQ
220         select CPU_FREQ_GOV_COMMON
221         help
222           'sched' - this governor scales cpu frequency from the
223           scheduler as a function of cpu capacity utilization. It does
224           not evaluate utilization on a periodic basis (as ondemand
225           does) but instead is event-driven by the scheduler.
226
227           If in doubt, say N.
228
229 comment "CPU frequency scaling drivers"
230
231 config CPUFREQ_DT
232         tristate "Generic DT based cpufreq driver"
233         depends on HAVE_CLK && OF
234         # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
235         depends on !CPU_THERMAL || THERMAL
236         select PM_OPP
237         help
238           This adds a generic DT based cpufreq driver for frequency management.
239           It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
240           systems which share clock and voltage across all CPUs.
241
242           If in doubt, say N.
243
244 if X86
245 source "drivers/cpufreq/Kconfig.x86"
246 endif
247
248 if ARM || ARM64
249 source "drivers/cpufreq/Kconfig.arm"
250 endif
251
252 if PPC32 || PPC64
253 source "drivers/cpufreq/Kconfig.powerpc"
254 endif
255
256 if AVR32
257 config AVR32_AT32AP_CPUFREQ
258         bool "CPU frequency driver for AT32AP"
259         depends on PLATFORM_AT32AP
260         default n
261         help
262           This enables the CPU frequency driver for AT32AP processors.
263           If in doubt, say N.
264 endif
265
266 if IA64
267 config IA64_ACPI_CPUFREQ
268         tristate "ACPI Processor P-States driver"
269         depends on ACPI_PROCESSOR
270         help
271         This driver adds a CPUFreq driver which utilizes the ACPI
272         Processor Performance States.
273
274         For details, take a look at <file:Documentation/cpu-freq/>.
275
276         If in doubt, say N.
277 endif
278
279 if MIPS
280 config LOONGSON2_CPUFREQ
281         tristate "Loongson2 CPUFreq Driver"
282         help
283           This option adds a CPUFreq driver for loongson processors which
284           support software configurable cpu frequency.
285
286           Loongson2F and it's successors support this feature.
287
288           For details, take a look at <file:Documentation/cpu-freq/>.
289
290           If in doubt, say N.
291
292 config LOONGSON1_CPUFREQ
293         tristate "Loongson1 CPUFreq Driver"
294         help
295           This option adds a CPUFreq driver for loongson1 processors which
296           support software configurable cpu frequency.
297
298           For details, take a look at <file:Documentation/cpu-freq/>.
299
300           If in doubt, say N.
301 endif
302
303 if SPARC64
304 config SPARC_US3_CPUFREQ
305         tristate "UltraSPARC-III CPU Frequency driver"
306         help
307           This adds the CPUFreq driver for UltraSPARC-III processors.
308
309           For details, take a look at <file:Documentation/cpu-freq>.
310
311           If in doubt, say N.
312
313 config SPARC_US2E_CPUFREQ
314         tristate "UltraSPARC-IIe CPU Frequency driver"
315         help
316           This adds the CPUFreq driver for UltraSPARC-IIe processors.
317
318           For details, take a look at <file:Documentation/cpu-freq>.
319
320           If in doubt, say N.
321 endif
322
323 if SUPERH
324 config SH_CPU_FREQ
325         tristate "SuperH CPU Frequency driver"
326         help
327           This adds the cpufreq driver for SuperH. Any CPU that supports
328           clock rate rounding through the clock framework can use this
329           driver. While it will make the kernel slightly larger, this is
330           harmless for CPUs that don't support rate rounding. The driver
331           will also generate a notice in the boot log before disabling
332           itself if the CPU in question is not capable of rate rounding.
333
334           For details, take a look at <file:Documentation/cpu-freq>.
335
336           If unsure, say N.
337 endif
338
339 config QORIQ_CPUFREQ
340         tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
341         depends on OF && COMMON_CLK && (PPC_E500MC || ARM)
342         select CLK_QORIQ
343         help
344           This adds the CPUFreq driver support for Freescale QorIQ SoCs
345           which are capable of changing the CPU's frequency dynamically.
346
347 endif
348 endmenu