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