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