Kconfig 9.9 KB

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