xref: /linux/drivers/cpufreq/Kconfig (revision 95ceafd46359dfd901f9d3b881b33d3036e4b0ce)
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