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