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