DEBUG: schedtune: add tracepoint for schedtune_tasks_update() values
[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_SCHED
107         bool "sched"
108         select CPU_FREQ_GOV_SCHED
109         help
110           Use the CPUfreq governor 'sched' as default. This scales
111           cpu frequency using CPU utilization estimates from the
112           scheduler.
113 endchoice
114
115 config CPU_FREQ_GOV_PERFORMANCE
116         tristate "'performance' governor"
117         help
118           This cpufreq governor sets the frequency statically to the
119           highest available CPU frequency.
120
121           To compile this driver as a module, choose M here: the
122           module will be called cpufreq_performance.
123
124           If in doubt, say Y.
125
126 config CPU_FREQ_GOV_POWERSAVE
127         tristate "'powersave' governor"
128         help
129           This cpufreq governor sets the frequency statically to the
130           lowest available CPU frequency.
131
132           To compile this driver as a module, choose M here: the
133           module will be called cpufreq_powersave.
134
135           If in doubt, say Y.
136
137 config CPU_FREQ_GOV_USERSPACE
138         tristate "'userspace' governor for userspace frequency scaling"
139         help
140           Enable this cpufreq governor when you either want to set the
141           CPU frequency manually or when a userspace program shall
142           be able to set the CPU dynamically, like on LART 
143           <http://www.lartmaker.nl/>.
144
145           To compile this driver as a module, choose M here: the
146           module will be called cpufreq_userspace.
147
148           For details, take a look at <file:Documentation/cpu-freq/>.
149
150           If in doubt, say Y.
151
152 config CPU_FREQ_GOV_ONDEMAND
153         tristate "'ondemand' cpufreq policy governor"
154         select CPU_FREQ_GOV_COMMON
155         help
156           'ondemand' - This driver adds a dynamic cpufreq policy governor.
157           The governor does a periodic polling and 
158           changes frequency based on the CPU utilization.
159           The support for this governor depends on CPU capability to
160           do fast frequency switching (i.e, very low latency frequency
161           transitions). 
162
163           To compile this driver as a module, choose M here: the
164           module will be called cpufreq_ondemand.
165
166           For details, take a look at linux/Documentation/cpu-freq.
167
168           If in doubt, say N.
169
170 config CPU_FREQ_GOV_CONSERVATIVE
171         tristate "'conservative' cpufreq governor"
172         depends on CPU_FREQ
173         select CPU_FREQ_GOV_COMMON
174         help
175           'conservative' - this driver is rather similar to the 'ondemand'
176           governor both in its source code and its purpose, the difference is
177           its optimisation for better suitability in a battery powered
178           environment.  The frequency is gracefully increased and decreased
179           rather than jumping to 100% when speed is required.
180
181           If you have a desktop machine then you should really be considering
182           the 'ondemand' governor instead, however if you are using a laptop,
183           PDA or even an AMD64 based computer (due to the unacceptable
184           step-by-step latency issues between the minimum and maximum frequency
185           transitions in the CPU) you will probably want to use this governor.
186
187           To compile this driver as a module, choose M here: the
188           module will be called cpufreq_conservative.
189
190           For details, take a look at linux/Documentation/cpu-freq.
191
192           If in doubt, say N.
193
194 config CPU_FREQ_GOV_SCHED
195         bool "'sched' cpufreq governor"
196         depends on CPU_FREQ
197         select CPU_FREQ_GOV_COMMON
198         help
199           'sched' - this governor scales cpu frequency from the
200           scheduler as a function of cpu capacity utilization. It does
201           not evaluate utilization on a periodic basis (as ondemand
202           does) but instead is event-driven by the scheduler.
203
204           If in doubt, say N.
205
206 comment "CPU frequency scaling drivers"
207
208 config CPUFREQ_DT
209         tristate "Generic DT based cpufreq driver"
210         depends on HAVE_CLK && OF
211         # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
212         depends on !CPU_THERMAL || THERMAL
213         select PM_OPP
214         help
215           This adds a generic DT based cpufreq driver for frequency management.
216           It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
217           systems which share clock and voltage across all CPUs.
218
219           If in doubt, say N.
220
221 if X86
222 source "drivers/cpufreq/Kconfig.x86"
223 endif
224
225 if ARM || ARM64
226 source "drivers/cpufreq/Kconfig.arm"
227 endif
228
229 if PPC32 || PPC64
230 source "drivers/cpufreq/Kconfig.powerpc"
231 endif
232
233 if AVR32
234 config AVR32_AT32AP_CPUFREQ
235         bool "CPU frequency driver for AT32AP"
236         depends on PLATFORM_AT32AP
237         default n
238         help
239           This enables the CPU frequency driver for AT32AP processors.
240           If in doubt, say N.
241 endif
242
243 if IA64
244 config IA64_ACPI_CPUFREQ
245         tristate "ACPI Processor P-States driver"
246         depends on ACPI_PROCESSOR
247         help
248         This driver adds a CPUFreq driver which utilizes the ACPI
249         Processor Performance States.
250
251         For details, take a look at <file:Documentation/cpu-freq/>.
252
253         If in doubt, say N.
254 endif
255
256 if MIPS
257 config LOONGSON2_CPUFREQ
258         tristate "Loongson2 CPUFreq Driver"
259         help
260           This option adds a CPUFreq driver for loongson processors which
261           support software configurable cpu frequency.
262
263           Loongson2F and it's successors support this feature.
264
265           For details, take a look at <file:Documentation/cpu-freq/>.
266
267           If in doubt, say N.
268
269 config LOONGSON1_CPUFREQ
270         tristate "Loongson1 CPUFreq Driver"
271         help
272           This option adds a CPUFreq driver for loongson1 processors which
273           support software configurable cpu frequency.
274
275           For details, take a look at <file:Documentation/cpu-freq/>.
276
277           If in doubt, say N.
278 endif
279
280 if SPARC64
281 config SPARC_US3_CPUFREQ
282         tristate "UltraSPARC-III CPU Frequency driver"
283         help
284           This adds the CPUFreq driver for UltraSPARC-III processors.
285
286           For details, take a look at <file:Documentation/cpu-freq>.
287
288           If in doubt, say N.
289
290 config SPARC_US2E_CPUFREQ
291         tristate "UltraSPARC-IIe CPU Frequency driver"
292         help
293           This adds the CPUFreq driver for UltraSPARC-IIe processors.
294
295           For details, take a look at <file:Documentation/cpu-freq>.
296
297           If in doubt, say N.
298 endif
299
300 if SUPERH
301 config SH_CPU_FREQ
302         tristate "SuperH CPU Frequency driver"
303         help
304           This adds the cpufreq driver for SuperH. Any CPU that supports
305           clock rate rounding through the clock framework can use this
306           driver. While it will make the kernel slightly larger, this is
307           harmless for CPUs that don't support rate rounding. The driver
308           will also generate a notice in the boot log before disabling
309           itself if the CPU in question is not capable of rate rounding.
310
311           For details, take a look at <file:Documentation/cpu-freq>.
312
313           If unsure, say N.
314 endif
315
316 config QORIQ_CPUFREQ
317         tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
318         depends on OF && COMMON_CLK && (PPC_E500MC || ARM)
319         select CLK_QORIQ
320         help
321           This adds the CPUFreq driver support for Freescale QorIQ SoCs
322           which are capable of changing the CPU's frequency dynamically.
323
324 endif
325 endmenu