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