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