Merge tag 'linux-kselftest-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.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_ATTR_SET
22         bool
23
24 config CPU_FREQ_GOV_COMMON
25         select CPU_FREQ_GOV_ATTR_SET
26         select IRQ_WORK
27         bool
28
29 config CPU_FREQ_STAT
30         bool "CPU frequency transition statistics"
31         help
32           Export CPU frequency statistics information through sysfs.
33
34           If in doubt, say N.
35
36 choice
37         prompt "Default CPUFreq governor"
38         default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
39         default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
40         help
41           This option sets which CPUFreq governor shall be loaded at
42           startup. If in doubt, select 'performance'.
43
44 config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
45         bool "performance"
46         select CPU_FREQ_GOV_PERFORMANCE
47         help
48           Use the CPUFreq governor 'performance' as default. This sets
49           the frequency statically to the highest frequency supported by
50           the CPU.
51
52 config CPU_FREQ_DEFAULT_GOV_POWERSAVE
53         bool "powersave"
54         select CPU_FREQ_GOV_POWERSAVE
55         help
56           Use the CPUFreq governor 'powersave' as default. This sets
57           the frequency statically to the lowest frequency supported by
58           the CPU.
59
60 config CPU_FREQ_DEFAULT_GOV_USERSPACE
61         bool "userspace"
62         select CPU_FREQ_GOV_USERSPACE
63         help
64           Use the CPUFreq governor 'userspace' as default. This allows
65           you to set the CPU frequency manually or when a userspace 
66           program shall be able to set the CPU dynamically without having
67           to enable the userspace governor manually.
68
69 config CPU_FREQ_DEFAULT_GOV_ONDEMAND
70         bool "ondemand"
71         select CPU_FREQ_GOV_ONDEMAND
72         select CPU_FREQ_GOV_PERFORMANCE
73         help
74           Use the CPUFreq governor 'ondemand' as default. This allows
75           you to get a full dynamic frequency capable system by simply
76           loading your cpufreq low-level hardware driver.
77           Be aware that not all cpufreq drivers support the ondemand
78           governor. If unsure have a look at the help section of the
79           driver. Fallback governor will be the performance governor.
80
81 config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
82         bool "conservative"
83         select CPU_FREQ_GOV_CONSERVATIVE
84         select CPU_FREQ_GOV_PERFORMANCE
85         help
86           Use the CPUFreq governor 'conservative' as default. This allows
87           you to get a full dynamic frequency capable system by simply
88           loading your cpufreq low-level hardware driver.
89           Be aware that not all cpufreq drivers support the conservative
90           governor. If unsure have a look at the help section of the
91           driver. Fallback governor will be the performance governor.
92
93 config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
94         bool "schedutil"
95         depends on SMP
96         select CPU_FREQ_GOV_SCHEDUTIL
97         select CPU_FREQ_GOV_PERFORMANCE
98         help
99           Use the 'schedutil' CPUFreq governor by default. If unsure,
100           have a look at the help section of that governor. The fallback
101           governor will be 'performance'.
102
103 endchoice
104
105 config CPU_FREQ_GOV_PERFORMANCE
106         tristate "'performance' governor"
107         help
108           This cpufreq governor sets the frequency statically to the
109           highest available CPU frequency.
110
111           To compile this driver as a module, choose M here: the
112           module will be called cpufreq_performance.
113
114           If in doubt, say Y.
115
116 config CPU_FREQ_GOV_POWERSAVE
117         tristate "'powersave' governor"
118         help
119           This cpufreq governor sets the frequency statically to the
120           lowest available CPU frequency.
121
122           To compile this driver as a module, choose M here: the
123           module will be called cpufreq_powersave.
124
125           If in doubt, say Y.
126
127 config CPU_FREQ_GOV_USERSPACE
128         tristate "'userspace' governor for userspace frequency scaling"
129         help
130           Enable this cpufreq governor when you either want to set the
131           CPU frequency manually or when a userspace program shall
132           be able to set the CPU dynamically, like on LART 
133           <http://www.lartmaker.nl/>.
134
135           To compile this driver as a module, choose M here: the
136           module will be called cpufreq_userspace.
137
138           For details, take a look at <file:Documentation/cpu-freq/>.
139
140           If in doubt, say Y.
141
142 config CPU_FREQ_GOV_ONDEMAND
143         tristate "'ondemand' cpufreq policy governor"
144         select CPU_FREQ_GOV_COMMON
145         help
146           'ondemand' - This driver adds a dynamic cpufreq policy governor.
147           The governor does a periodic polling and 
148           changes frequency based on the CPU utilization.
149           The support for this governor depends on CPU capability to
150           do fast frequency switching (i.e, very low latency frequency
151           transitions). 
152
153           To compile this driver as a module, choose M here: the
154           module will be called cpufreq_ondemand.
155
156           For details, take a look at linux/Documentation/cpu-freq.
157
158           If in doubt, say N.
159
160 config CPU_FREQ_GOV_CONSERVATIVE
161         tristate "'conservative' cpufreq governor"
162         depends on CPU_FREQ
163         select CPU_FREQ_GOV_COMMON
164         help
165           'conservative' - this driver is rather similar to the 'ondemand'
166           governor both in its source code and its purpose, the difference is
167           its optimisation for better suitability in a battery powered
168           environment.  The frequency is gracefully increased and decreased
169           rather than jumping to 100% when speed is required.
170
171           If you have a desktop machine then you should really be considering
172           the 'ondemand' governor instead, however if you are using a laptop,
173           PDA or even an AMD64 based computer (due to the unacceptable
174           step-by-step latency issues between the minimum and maximum frequency
175           transitions in the CPU) you will probably want to use this governor.
176
177           To compile this driver as a module, choose M here: the
178           module will be called cpufreq_conservative.
179
180           For details, take a look at linux/Documentation/cpu-freq.
181
182           If in doubt, say N.
183
184 config CPU_FREQ_GOV_SCHEDUTIL
185         bool "'schedutil' cpufreq policy governor"
186         depends on CPU_FREQ && SMP
187         select CPU_FREQ_GOV_ATTR_SET
188         select IRQ_WORK
189         help
190           This governor makes decisions based on the utilization data provided
191           by the scheduler.  It sets the CPU frequency to be proportional to
192           the utilization/capacity ratio coming from the scheduler.  If the
193           utilization is frequency-invariant, the new frequency is also
194           proportional to the maximum available frequency.  If that is not the
195           case, it is proportional to the current frequency of the CPU.  The
196           frequency tipping point is at utilization/capacity equal to 80% in
197           both cases.
198
199           If in doubt, say N.
200
201 comment "CPU frequency scaling drivers"
202
203 config CPUFREQ_DT
204         tristate "Generic DT based cpufreq driver"
205         depends on HAVE_CLK && OF
206         select CPUFREQ_DT_PLATDEV
207         select PM_OPP
208         help
209           This adds a generic DT based cpufreq driver for frequency management.
210           It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
211           systems.
212
213           If in doubt, say N.
214
215 config CPUFREQ_DT_PLATDEV
216         bool
217         help
218           This adds a generic DT based cpufreq platdev driver for frequency
219           management.  This creates a 'cpufreq-dt' platform device, on the
220           supported platforms.
221
222           If in doubt, say N.
223
224 if X86
225 source "drivers/cpufreq/Kconfig.x86"
226 endif
227
228 if ARM || ARM64
229 source "drivers/cpufreq/Kconfig.arm"
230 endif
231
232 if PPC32 || PPC64
233 source "drivers/cpufreq/Kconfig.powerpc"
234 endif
235
236 if IA64
237 config IA64_ACPI_CPUFREQ
238         tristate "ACPI Processor P-States driver"
239         depends on ACPI_PROCESSOR
240         help
241         This driver adds a CPUFreq driver which utilizes the ACPI
242         Processor Performance States.
243
244         For details, take a look at <file:Documentation/cpu-freq/>.
245
246         If in doubt, say N.
247 endif
248
249 if MIPS
250 config BMIPS_CPUFREQ
251         tristate "BMIPS CPUfreq Driver"
252         help
253           This option adds a CPUfreq driver for BMIPS processors with
254           support for configurable CPU frequency.
255
256           For now, BMIPS5 chips are supported (such as the Broadcom 7425).
257
258           If in doubt, say N.
259
260 config LOONGSON2_CPUFREQ
261         tristate "Loongson2 CPUFreq Driver"
262         depends on LEMOTE_MACH2F
263         help
264           This option adds a CPUFreq driver for loongson processors which
265           support software configurable cpu frequency.
266
267           Loongson2F and it's successors support this feature.
268
269           For details, take a look at <file:Documentation/cpu-freq/>.
270
271           If in doubt, say N.
272
273 config LOONGSON1_CPUFREQ
274         tristate "Loongson1 CPUFreq Driver"
275         depends on LOONGSON1_LS1B
276         help
277           This option adds a CPUFreq driver for loongson1 processors which
278           support software configurable cpu frequency.
279
280           For details, take a look at <file:Documentation/cpu-freq/>.
281
282           If in doubt, say N.
283 endif
284
285 if SPARC64
286 config SPARC_US3_CPUFREQ
287         tristate "UltraSPARC-III CPU Frequency driver"
288         help
289           This adds the CPUFreq driver for UltraSPARC-III processors.
290
291           For details, take a look at <file:Documentation/cpu-freq>.
292
293           If in doubt, say N.
294
295 config SPARC_US2E_CPUFREQ
296         tristate "UltraSPARC-IIe CPU Frequency driver"
297         help
298           This adds the CPUFreq driver for UltraSPARC-IIe processors.
299
300           For details, take a look at <file:Documentation/cpu-freq>.
301
302           If in doubt, say N.
303 endif
304
305 if SUPERH
306 config SH_CPU_FREQ
307         tristate "SuperH CPU Frequency driver"
308         help
309           This adds the cpufreq driver for SuperH. Any CPU that supports
310           clock rate rounding through the clock framework can use this
311           driver. While it will make the kernel slightly larger, this is
312           harmless for CPUs that don't support rate rounding. The driver
313           will also generate a notice in the boot log before disabling
314           itself if the CPU in question is not capable of rate rounding.
315
316           For details, take a look at <file:Documentation/cpu-freq>.
317
318           If unsure, say N.
319 endif
320
321 config QORIQ_CPUFREQ
322         tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
323         depends on OF && COMMON_CLK && (PPC_E500MC || ARM || ARM64)
324         select CLK_QORIQ
325         help
326           This adds the CPUFreq driver support for Freescale QorIQ SoCs
327           which are capable of changing the CPU's frequency dynamically.
328
329 endif
330 endmenu