xref: /openbmc/linux/drivers/cpufreq/Kconfig (revision afb46f79)
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 && REGULATOR && OF && THERMAL && CPU_THERMAL
189	select PM_OPP
190	help
191	  This adds a generic cpufreq driver for CPU0 frequency management.
192	  It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
193	  systems which share clock and voltage across all CPUs.
194
195	  If in doubt, say N.
196
197menu "x86 CPU frequency scaling drivers"
198depends on X86
199source "drivers/cpufreq/Kconfig.x86"
200endmenu
201
202menu "ARM CPU frequency scaling drivers"
203depends on ARM || ARM64
204source "drivers/cpufreq/Kconfig.arm"
205endmenu
206
207menu "AVR32 CPU frequency scaling drivers"
208depends on AVR32
209
210config AVR32_AT32AP_CPUFREQ
211	bool "CPU frequency driver for AT32AP"
212	depends on PLATFORM_AT32AP
213	default n
214	help
215	  This enables the CPU frequency driver for AT32AP processors.
216	  If in doubt, say N.
217
218endmenu
219
220menu "CPUFreq processor drivers"
221depends on IA64
222
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.
233
234endmenu
235
236menu "MIPS CPUFreq processor drivers"
237depends on MIPS
238
239config LOONGSON2_CPUFREQ
240	tristate "Loongson2 CPUFreq Driver"
241	help
242	  This option adds a CPUFreq driver for loongson processors which
243	  support software configurable cpu frequency.
244
245	  Loongson2F and it's successors support this feature.
246
247	  For details, take a look at <file:Documentation/cpu-freq/>.
248
249	  If in doubt, say N.
250
251endmenu
252
253menu "PowerPC CPU frequency scaling drivers"
254depends on PPC32 || PPC64
255source "drivers/cpufreq/Kconfig.powerpc"
256endmenu
257
258menu "SPARC CPU frequency scaling drivers"
259depends on 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.
277endmenu
278
279menu "SH CPU Frequency scaling"
280depends on SUPERH
281config SH_CPU_FREQ
282	tristate "SuperH CPU Frequency driver"
283	help
284	  This adds the cpufreq driver for SuperH. Any CPU that supports
285	  clock rate rounding through the clock framework can use this
286	  driver. While it will make the kernel slightly larger, this is
287	  harmless for CPUs that don't support rate rounding. The driver
288	  will also generate a notice in the boot log before disabling
289	  itself if the CPU in question is not capable of rate rounding.
290
291	  For details, take a look at <file:Documentation/cpu-freq>.
292
293	  If unsure, say N.
294endmenu
295
296endif
297endmenu
298