652361691e18f03fa1e2f97481bfe3077ccb7ed0
[GitHub/LineageOS/android_kernel_motorola_exynos9610.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_BOOST_SW
30 bool
31 depends on THERMAL
32
33 config CPU_FREQ_STAT
34 bool "CPU frequency transition statistics"
35 help
36 Export CPU frequency statistics information through sysfs.
37
38 If in doubt, say N.
39
40 config CPU_FREQ_TIMES
41 bool "CPU frequency time-in-state statistics"
42 help
43 Export CPU time-in-state information through procfs.
44
45 If in doubt, say N.
46
47 choice
48 prompt "Default CPUFreq governor"
49 default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
50 default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
51 help
52 This option sets which CPUFreq governor shall be loaded at
53 startup. If in doubt, select 'performance'.
54
55 config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
56 bool "performance"
57 select CPU_FREQ_GOV_PERFORMANCE
58 help
59 Use the CPUFreq governor 'performance' as default. This sets
60 the frequency statically to the highest frequency supported by
61 the CPU.
62
63 config CPU_FREQ_DEFAULT_GOV_POWERSAVE
64 bool "powersave"
65 select CPU_FREQ_GOV_POWERSAVE
66 help
67 Use the CPUFreq governor 'powersave' as default. This sets
68 the frequency statically to the lowest frequency supported by
69 the CPU.
70
71 config CPU_FREQ_DEFAULT_GOV_USERSPACE
72 bool "userspace"
73 select CPU_FREQ_GOV_USERSPACE
74 help
75 Use the CPUFreq governor 'userspace' as default. This allows
76 you to set the CPU frequency manually or when a userspace
77 program shall be able to set the CPU dynamically without having
78 to enable the userspace governor manually.
79
80 config CPU_FREQ_DEFAULT_GOV_ONDEMAND
81 bool "ondemand"
82 select CPU_FREQ_GOV_ONDEMAND
83 select CPU_FREQ_GOV_PERFORMANCE
84 help
85 Use the CPUFreq governor 'ondemand' as default. This allows
86 you to get a full dynamic frequency capable system by simply
87 loading your cpufreq low-level hardware driver.
88 Be aware that not all cpufreq drivers support the ondemand
89 governor. If unsure have a look at the help section of the
90 driver. Fallback governor will be the performance governor.
91
92 config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
93 bool "conservative"
94 select CPU_FREQ_GOV_CONSERVATIVE
95 select CPU_FREQ_GOV_PERFORMANCE
96 help
97 Use the CPUFreq governor 'conservative' as default. This allows
98 you to get a full dynamic frequency capable system by simply
99 loading your cpufreq low-level hardware driver.
100 Be aware that not all cpufreq drivers support the conservative
101 governor. If unsure have a look at the help section of the
102 driver. Fallback governor will be the performance governor.
103
104 config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
105 bool "schedutil"
106 depends on SMP
107 select CPU_FREQ_GOV_SCHEDUTIL
108 help
109 Use the 'schedutil' CPUFreq governor by default. If unsure,
110 have a look at the help section of that governor. The fallback
111 governor will be 'performance'.
112
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_SCHEDUTIL
195 bool "'schedutil' cpufreq policy governor"
196 depends on CPU_FREQ && SMP
197 select CPU_FREQ_GOV_ATTR_SET
198 select IRQ_WORK
199 help
200 This governor makes decisions based on the utilization data provided
201 by the scheduler. It sets the CPU frequency to be proportional to
202 the utilization/capacity ratio coming from the scheduler. If the
203 utilization is frequency-invariant, the new frequency is also
204 proportional to the maximum available frequency. If that is not the
205 case, it is proportional to the current frequency of the CPU. The
206 frequency tipping point is at utilization/capacity equal to 80% in
207 both cases.
208
209 If in doubt, say N.
210
211 config FREQVAR_TUNE
212 bool "CPU frequency variant tuner"
213 depends on SCHED_EMS && CPU_FREQ_GOV_SCHEDUTIL
214 help
215 This option provides the controller which tunes system performance
216 as frequency variant.
217
218 Say N if unsure.
219
220 comment "CPU frequency scaling drivers"
221
222 config CPUFREQ_DT
223 tristate "Generic DT based cpufreq driver"
224 depends on HAVE_CLK && OF
225 # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
226 depends on !CPU_THERMAL || THERMAL
227 select CPUFREQ_DT_PLATDEV
228 select PM_OPP
229 help
230 This adds a generic DT based cpufreq driver for frequency management.
231 It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
232 systems.
233
234 If in doubt, say N.
235
236 config CPUFREQ_DT_PLATDEV
237 bool
238 help
239 This adds a generic DT based cpufreq platdev driver for frequency
240 management. This creates a 'cpufreq-dt' platform device, on the
241 supported platforms.
242
243 If in doubt, say N.
244
245 if X86
246 source "drivers/cpufreq/Kconfig.x86"
247 endif
248
249 if ARM || ARM64
250 source "drivers/cpufreq/Kconfig.arm"
251 endif
252
253 if PPC32 || PPC64
254 source "drivers/cpufreq/Kconfig.powerpc"
255 endif
256
257 if AVR32
258 config AVR32_AT32AP_CPUFREQ
259 bool "CPU frequency driver for AT32AP"
260 depends on PLATFORM_AT32AP
261 default n
262 help
263 This enables the CPU frequency driver for AT32AP processors.
264 If in doubt, say N.
265 endif
266
267 if IA64
268 config IA64_ACPI_CPUFREQ
269 tristate "ACPI Processor P-States driver"
270 depends on ACPI_PROCESSOR
271 help
272 This driver adds a CPUFreq driver which utilizes the ACPI
273 Processor Performance States.
274
275 For details, take a look at <file:Documentation/cpu-freq/>.
276
277 If in doubt, say N.
278 endif
279
280 if MIPS
281 config BMIPS_CPUFREQ
282 tristate "BMIPS CPUfreq Driver"
283 help
284 This option adds a CPUfreq driver for BMIPS processors with
285 support for configurable CPU frequency.
286
287 For now, BMIPS5 chips are supported (such as the Broadcom 7425).
288
289 If in doubt, say N.
290
291 config LOONGSON2_CPUFREQ
292 tristate "Loongson2 CPUFreq Driver"
293 depends on LEMOTE_MACH2F
294 help
295 This option adds a CPUFreq driver for loongson processors which
296 support software configurable cpu frequency.
297
298 Loongson2F and it's successors support this feature.
299
300 For details, take a look at <file:Documentation/cpu-freq/>.
301
302 If in doubt, say N.
303
304 config LOONGSON1_CPUFREQ
305 tristate "Loongson1 CPUFreq Driver"
306 depends on LOONGSON1_LS1B
307 help
308 This option adds a CPUFreq driver for loongson1 processors which
309 support software configurable cpu frequency.
310
311 For details, take a look at <file:Documentation/cpu-freq/>.
312
313 If in doubt, say N.
314 endif
315
316 if SPARC64
317 config SPARC_US3_CPUFREQ
318 tristate "UltraSPARC-III CPU Frequency driver"
319 help
320 This adds the CPUFreq driver for UltraSPARC-III processors.
321
322 For details, take a look at <file:Documentation/cpu-freq>.
323
324 If in doubt, say N.
325
326 config SPARC_US2E_CPUFREQ
327 tristate "UltraSPARC-IIe CPU Frequency driver"
328 help
329 This adds the CPUFreq driver for UltraSPARC-IIe processors.
330
331 For details, take a look at <file:Documentation/cpu-freq>.
332
333 If in doubt, say N.
334 endif
335
336 if SUPERH
337 config SH_CPU_FREQ
338 tristate "SuperH CPU Frequency driver"
339 help
340 This adds the cpufreq driver for SuperH. Any CPU that supports
341 clock rate rounding through the clock framework can use this
342 driver. While it will make the kernel slightly larger, this is
343 harmless for CPUs that don't support rate rounding. The driver
344 will also generate a notice in the boot log before disabling
345 itself if the CPU in question is not capable of rate rounding.
346
347 For details, take a look at <file:Documentation/cpu-freq>.
348
349 If unsure, say N.
350 endif
351
352 config QORIQ_CPUFREQ
353 tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
354 depends on OF && COMMON_CLK && (PPC_E500MC || ARM || ARM64)
355 depends on !CPU_THERMAL || THERMAL
356 select CLK_QORIQ
357 help
358 This adds the CPUFreq driver support for Freescale QorIQ SoCs
359 which are capable of changing the CPU's frequency dynamically.
360
361 comment "P-state Boost Solutions"
362
363 choice EXYNOS_PSTATE
364 prompt "P-state Boost Solution"
365 default EXYNOS_PSTATE_DISABLE
366 depends on ARCH_EXYNOS
367 depends on CPU_FREQ
368 help
369 Default status of P-state boost is disable.
370
371 config EXYNOS_PSTATE_DISABLE
372 bool "disable"
373 help
374 This option sets P-state boost solution as disable.
375 If in doubt, set this config.
376
377 config EXYNOS_PSTATE_HAFM
378 bool "Exynos HAFM"
379 help
380 This option sets P-state boost solution as HAFM.
381 The config makes HIU just deliver frequency level and power budget
382 given from CPUFreq driver and register set.
383
384 config EXYNOS_PSTATE_HAFM_TB
385 bool "Exynos HAFM-TB"
386 help
387 This option sets P-state boost solution as HAFM-TB.
388
389 config EXYNOS_PSTATE_MODE_CHANGER
390 bool "Exynos Mode Changer"
391 depends on HOTPLUG_CPU
392 help
393 This option sets P-state boost solution as EMC.
394
395 endchoice
396
397 endif
398 endmenu