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