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