1bb0a56ecSDave Jonesmenu "CPU Frequency scaling" 2bb0a56ecSDave Jones 31da177e4SLinus Torvaldsconfig CPU_FREQ 41da177e4SLinus Torvalds bool "CPU Frequency scaling" 51da177e4SLinus Torvalds help 61da177e4SLinus Torvalds CPU Frequency scaling allows you to change the clock speed of 71da177e4SLinus Torvalds CPUs on the fly. This is a nice method to save power, because 81da177e4SLinus Torvalds the lower the CPU clock speed, the less power the CPU consumes. 91da177e4SLinus Torvalds 101da177e4SLinus Torvalds Note that this driver doesn't automatically change the CPU 111da177e4SLinus Torvalds clock speed, you need to either enable a dynamic cpufreq governor 121da177e4SLinus Torvalds (see below) after boot, or use a userspace tool. 131da177e4SLinus Torvalds 141da177e4SLinus Torvalds For details, take a look at <file:Documentation/cpu-freq>. 151da177e4SLinus Torvalds 161da177e4SLinus Torvalds If in doubt, say N. 171da177e4SLinus Torvalds 181da177e4SLinus Torvaldsif CPU_FREQ 191da177e4SLinus Torvalds 201da177e4SLinus Torvaldsconfig CPU_FREQ_TABLE 21f0ec313aSAdrian Bunk tristate 221da177e4SLinus Torvalds 231da177e4SLinus Torvaldsconfig CPU_FREQ_STAT 241da177e4SLinus Torvalds tristate "CPU frequency translation statistics" 251da177e4SLinus Torvalds select CPU_FREQ_TABLE 261da177e4SLinus Torvalds default y 271da177e4SLinus Torvalds help 281da177e4SLinus Torvalds This driver exports CPU frequency statistics information through sysfs 299101be53SMike Frysinger file system. 309101be53SMike Frysinger 319101be53SMike Frysinger To compile this driver as a module, choose M here: the 329101be53SMike Frysinger module will be called cpufreq_stats. 339101be53SMike Frysinger 349101be53SMike Frysinger If in doubt, say N. 351da177e4SLinus Torvalds 361da177e4SLinus Torvaldsconfig CPU_FREQ_STAT_DETAILS 371da177e4SLinus Torvalds bool "CPU frequency translation statistics details" 381da177e4SLinus Torvalds depends on CPU_FREQ_STAT 391da177e4SLinus Torvalds help 401da177e4SLinus Torvalds This will show detail CPU frequency translation table in sysfs file 419101be53SMike Frysinger system. 429101be53SMike Frysinger 439101be53SMike Frysinger If in doubt, say N. 441da177e4SLinus Torvalds 451da177e4SLinus Torvaldschoice 461da177e4SLinus Torvalds prompt "Default CPUFreq governor" 471da177e4SLinus Torvalds default CPU_FREQ_DEFAULT_GOV_USERSPACE if CPU_FREQ_SA1100 || CPU_FREQ_SA1110 481da177e4SLinus Torvalds default CPU_FREQ_DEFAULT_GOV_PERFORMANCE 491da177e4SLinus Torvalds help 501da177e4SLinus Torvalds This option sets which CPUFreq governor shall be loaded at 511da177e4SLinus Torvalds startup. If in doubt, select 'performance'. 521da177e4SLinus Torvalds 531da177e4SLinus Torvaldsconfig CPU_FREQ_DEFAULT_GOV_PERFORMANCE 541da177e4SLinus Torvalds bool "performance" 551da177e4SLinus Torvalds select CPU_FREQ_GOV_PERFORMANCE 561da177e4SLinus Torvalds help 571da177e4SLinus Torvalds Use the CPUFreq governor 'performance' as default. This sets 581da177e4SLinus Torvalds the frequency statically to the highest frequency supported by 591da177e4SLinus Torvalds the CPU. 601da177e4SLinus Torvalds 6130d221dbSAlessandro Guidoconfig CPU_FREQ_DEFAULT_GOV_POWERSAVE 6230d221dbSAlessandro Guido bool "powersave" 636a108a14SDavid Rientjes depends on EXPERT 6430d221dbSAlessandro Guido select CPU_FREQ_GOV_POWERSAVE 6530d221dbSAlessandro Guido help 6630d221dbSAlessandro Guido Use the CPUFreq governor 'powersave' as default. This sets 6730d221dbSAlessandro Guido the frequency statically to the lowest frequency supported by 6830d221dbSAlessandro Guido the CPU. 6930d221dbSAlessandro Guido 701da177e4SLinus Torvaldsconfig CPU_FREQ_DEFAULT_GOV_USERSPACE 711da177e4SLinus Torvalds bool "userspace" 721da177e4SLinus Torvalds select CPU_FREQ_GOV_USERSPACE 731da177e4SLinus Torvalds help 741da177e4SLinus Torvalds Use the CPUFreq governor 'userspace' as default. This allows 750211a9c8SFrederik Schwarzer you to set the CPU frequency manually or when a userspace 761da177e4SLinus Torvalds program shall be able to set the CPU dynamically without having 771da177e4SLinus Torvalds to enable the userspace governor manually. 781da177e4SLinus Torvalds 791c256245SThomas Renningerconfig CPU_FREQ_DEFAULT_GOV_ONDEMAND 801c256245SThomas Renninger bool "ondemand" 811c256245SThomas Renninger select CPU_FREQ_GOV_ONDEMAND 821c256245SThomas Renninger select CPU_FREQ_GOV_PERFORMANCE 831c256245SThomas Renninger help 841c256245SThomas Renninger Use the CPUFreq governor 'ondemand' as default. This allows 851c256245SThomas Renninger you to get a full dynamic frequency capable system by simply 861c256245SThomas Renninger loading your cpufreq low-level hardware driver. 871c256245SThomas Renninger Be aware that not all cpufreq drivers support the ondemand 881c256245SThomas Renninger governor. If unsure have a look at the help section of the 891c256245SThomas Renninger driver. Fallback governor will be the performance governor. 901c256245SThomas Renninger 911c256245SThomas Renningerconfig CPU_FREQ_DEFAULT_GOV_CONSERVATIVE 921c256245SThomas Renninger bool "conservative" 931c256245SThomas Renninger select CPU_FREQ_GOV_CONSERVATIVE 941c256245SThomas Renninger select CPU_FREQ_GOV_PERFORMANCE 951c256245SThomas Renninger help 961c256245SThomas Renninger Use the CPUFreq governor 'conservative' as default. This allows 971c256245SThomas Renninger you to get a full dynamic frequency capable system by simply 981c256245SThomas Renninger loading your cpufreq low-level hardware driver. 991c256245SThomas Renninger Be aware that not all cpufreq drivers support the conservative 1001c256245SThomas Renninger governor. If unsure have a look at the help section of the 1011c256245SThomas Renninger driver. Fallback governor will be the performance governor. 1021da177e4SLinus Torvaldsendchoice 1031da177e4SLinus Torvalds 1041da177e4SLinus Torvaldsconfig CPU_FREQ_GOV_PERFORMANCE 1051da177e4SLinus Torvalds tristate "'performance' governor" 1061da177e4SLinus Torvalds help 1071da177e4SLinus Torvalds This cpufreq governor sets the frequency statically to the 1081da177e4SLinus Torvalds highest available CPU frequency. 1091da177e4SLinus Torvalds 1109101be53SMike Frysinger To compile this driver as a module, choose M here: the 1119101be53SMike Frysinger module will be called cpufreq_performance. 1129101be53SMike Frysinger 1131da177e4SLinus Torvalds If in doubt, say Y. 1141da177e4SLinus Torvalds 1151da177e4SLinus Torvaldsconfig CPU_FREQ_GOV_POWERSAVE 1161da177e4SLinus Torvalds tristate "'powersave' governor" 1171da177e4SLinus Torvalds help 1181da177e4SLinus Torvalds This cpufreq governor sets the frequency statically to the 1191da177e4SLinus Torvalds lowest available CPU frequency. 1201da177e4SLinus Torvalds 1219101be53SMike Frysinger To compile this driver as a module, choose M here: the 1229101be53SMike Frysinger module will be called cpufreq_powersave. 1239101be53SMike Frysinger 1241da177e4SLinus Torvalds If in doubt, say Y. 1251da177e4SLinus Torvalds 1261da177e4SLinus Torvaldsconfig CPU_FREQ_GOV_USERSPACE 1271da177e4SLinus Torvalds tristate "'userspace' governor for userspace frequency scaling" 1281da177e4SLinus Torvalds help 1291da177e4SLinus Torvalds Enable this cpufreq governor when you either want to set the 1300211a9c8SFrederik Schwarzer CPU frequency manually or when a userspace program shall 1311da177e4SLinus Torvalds be able to set the CPU dynamically, like on LART 1324c41251eSErik Mouw <http://www.lartmaker.nl/>. 1331da177e4SLinus Torvalds 1349101be53SMike Frysinger To compile this driver as a module, choose M here: the 1359101be53SMike Frysinger module will be called cpufreq_userspace. 1369101be53SMike Frysinger 1371da177e4SLinus Torvalds For details, take a look at <file:Documentation/cpu-freq/>. 1381da177e4SLinus Torvalds 1391da177e4SLinus Torvalds If in doubt, say Y. 1401da177e4SLinus Torvalds 1411da177e4SLinus Torvaldsconfig CPU_FREQ_GOV_ONDEMAND 1421da177e4SLinus Torvalds tristate "'ondemand' cpufreq policy governor" 1436af6e1efSDave Jones select CPU_FREQ_TABLE 1441da177e4SLinus Torvalds help 1451da177e4SLinus Torvalds 'ondemand' - This driver adds a dynamic cpufreq policy governor. 1461da177e4SLinus Torvalds The governor does a periodic polling and 1471da177e4SLinus Torvalds changes frequency based on the CPU utilization. 1481da177e4SLinus Torvalds The support for this governor depends on CPU capability to 1491da177e4SLinus Torvalds do fast frequency switching (i.e, very low latency frequency 1501da177e4SLinus Torvalds transitions). 1511da177e4SLinus Torvalds 1529101be53SMike Frysinger To compile this driver as a module, choose M here: the 1539101be53SMike Frysinger module will be called cpufreq_ondemand. 1549101be53SMike Frysinger 1551da177e4SLinus Torvalds For details, take a look at linux/Documentation/cpu-freq. 1561da177e4SLinus Torvalds 1571da177e4SLinus Torvalds If in doubt, say N. 1581da177e4SLinus Torvalds 159b9170836SDave Jonesconfig CPU_FREQ_GOV_CONSERVATIVE 160b9170836SDave Jones tristate "'conservative' cpufreq governor" 161b9170836SDave Jones depends on CPU_FREQ 162b9170836SDave Jones help 163b9170836SDave Jones 'conservative' - this driver is rather similar to the 'ondemand' 164b9170836SDave Jones governor both in its source code and its purpose, the difference is 165b9170836SDave Jones its optimisation for better suitability in a battery powered 166b9170836SDave Jones environment. The frequency is gracefully increased and decreased 167b9170836SDave Jones rather than jumping to 100% when speed is required. 168b9170836SDave Jones 169b9170836SDave Jones If you have a desktop machine then you should really be considering 170b9170836SDave Jones the 'ondemand' governor instead, however if you are using a laptop, 171b9170836SDave Jones PDA or even an AMD64 based computer (due to the unacceptable 172b9170836SDave Jones step-by-step latency issues between the minimum and maximum frequency 173b9170836SDave Jones transitions in the CPU) you will probably want to use this governor. 174b9170836SDave Jones 1759101be53SMike Frysinger To compile this driver as a module, choose M here: the 1769101be53SMike Frysinger module will be called cpufreq_conservative. 1779101be53SMike Frysinger 178b9170836SDave Jones For details, take a look at linux/Documentation/cpu-freq. 179b9170836SDave Jones 180b9170836SDave Jones If in doubt, say N. 181b9170836SDave Jones 182*95ceafd4SShawn Guoconfig GENERIC_CPUFREQ_CPU0 183*95ceafd4SShawn Guo bool "Generic CPU0 cpufreq driver" 184*95ceafd4SShawn Guo depends on HAVE_CLK && REGULATOR && PM_OPP && OF 185*95ceafd4SShawn Guo select CPU_FREQ_TABLE 186*95ceafd4SShawn Guo help 187*95ceafd4SShawn Guo This adds a generic cpufreq driver for CPU0 frequency management. 188*95ceafd4SShawn Guo It supports both uniprocessor (UP) and symmetric multiprocessor (SMP) 189*95ceafd4SShawn Guo systems which share clock and voltage across all CPUs. 190*95ceafd4SShawn Guo 191*95ceafd4SShawn Guo If in doubt, say N. 192*95ceafd4SShawn Guo 193bb0a56ecSDave Jonesmenu "x86 CPU frequency scaling drivers" 194bb0a56ecSDave Jonesdepends on X86 195bb0a56ecSDave Jonessource "drivers/cpufreq/Kconfig.x86" 196bb0a56ecSDave Jonesendmenu 197bb0a56ecSDave Jones 198f7d77079SKukjin Kimmenu "ARM CPU frequency scaling drivers" 199f7d77079SKukjin Kimdepends on ARM 200f7d77079SKukjin Kimsource "drivers/cpufreq/Kconfig.arm" 201f7d77079SKukjin Kimendmenu 202f7d77079SKukjin Kim 2035d8c6658SDmitry Eremin-Solenikovmenu "PowerPC CPU frequency scaling drivers" 2045d8c6658SDmitry Eremin-Solenikovdepends on PPC32 || PPC64 2055d8c6658SDmitry Eremin-Solenikovsource "drivers/cpufreq/Kconfig.powerpc" 2065d8c6658SDmitry Eremin-Solenikovendmenu 2075d8c6658SDmitry Eremin-Solenikov 208bb0a56ecSDave Jonesendif 209bb0a56ecSDave Jonesendmenu 210