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