xref: /openbmc/linux/drivers/cpufreq/Kconfig (revision 0d456bad)
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_TABLE
21	tristate
22
23config CPU_FREQ_STAT
24	tristate "CPU frequency translation statistics"
25	select CPU_FREQ_TABLE
26	default y
27	help
28	  This driver exports CPU frequency statistics information through sysfs
29	  file system.
30
31	  To compile this driver as a module, choose M here: the
32	  module will be called cpufreq_stats.
33
34	  If in doubt, say N.
35
36config CPU_FREQ_STAT_DETAILS
37	bool "CPU frequency translation statistics details"
38	depends on CPU_FREQ_STAT
39	help
40	  This will show detail CPU frequency translation table in sysfs file
41	  system.
42
43	  If in doubt, say N.
44
45choice
46	prompt "Default CPUFreq governor"
47	default CPU_FREQ_DEFAULT_GOV_USERSPACE if CPU_FREQ_SA1100 || CPU_FREQ_SA1110
48	default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
49	help
50	  This option sets which CPUFreq governor shall be loaded at
51	  startup. If in doubt, select 'performance'.
52
53config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
54	bool "performance"
55	select CPU_FREQ_GOV_PERFORMANCE
56	help
57	  Use the CPUFreq governor 'performance' as default. This sets
58	  the frequency statically to the highest frequency supported by
59	  the CPU.
60
61config CPU_FREQ_DEFAULT_GOV_POWERSAVE
62	bool "powersave"
63	depends on EXPERT
64	select CPU_FREQ_GOV_POWERSAVE
65	help
66	  Use the CPUFreq governor 'powersave' as default. This sets
67	  the frequency statically to the lowest frequency supported by
68	  the CPU.
69
70config CPU_FREQ_DEFAULT_GOV_USERSPACE
71	bool "userspace"
72	select CPU_FREQ_GOV_USERSPACE
73	help
74	  Use the CPUFreq governor 'userspace' as default. This allows
75	  you to set the CPU frequency manually or when a userspace
76	  program shall be able to set the CPU dynamically without having
77	  to enable the userspace governor manually.
78
79config CPU_FREQ_DEFAULT_GOV_ONDEMAND
80	bool "ondemand"
81	select CPU_FREQ_GOV_ONDEMAND
82	select CPU_FREQ_GOV_PERFORMANCE
83	help
84	  Use the CPUFreq governor 'ondemand' as default. This allows
85	  you to get a full dynamic frequency capable system by simply
86	  loading your cpufreq low-level hardware driver.
87	  Be aware that not all cpufreq drivers support the ondemand
88	  governor. If unsure have a look at the help section of the
89	  driver. Fallback governor will be the performance governor.
90
91config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
92	bool "conservative"
93	select CPU_FREQ_GOV_CONSERVATIVE
94	select CPU_FREQ_GOV_PERFORMANCE
95	help
96	  Use the CPUFreq governor 'conservative' as default. This allows
97	  you to get a full dynamic frequency capable system by simply
98	  loading your cpufreq low-level hardware driver.
99	  Be aware that not all cpufreq drivers support the conservative
100	  governor. If unsure have a look at the help section of the
101	  driver. Fallback governor will be the performance governor.
102endchoice
103
104config CPU_FREQ_GOV_PERFORMANCE
105	tristate "'performance' governor"
106	help
107	  This cpufreq governor sets the frequency statically to the
108	  highest available CPU frequency.
109
110	  To compile this driver as a module, choose M here: the
111	  module will be called cpufreq_performance.
112
113	  If in doubt, say Y.
114
115config CPU_FREQ_GOV_POWERSAVE
116	tristate "'powersave' governor"
117	help
118	  This cpufreq governor sets the frequency statically to the
119	  lowest available CPU frequency.
120
121	  To compile this driver as a module, choose M here: the
122	  module will be called cpufreq_powersave.
123
124	  If in doubt, say Y.
125
126config CPU_FREQ_GOV_USERSPACE
127	tristate "'userspace' governor for userspace frequency scaling"
128	help
129	  Enable this cpufreq governor when you either want to set the
130	  CPU frequency manually or when a userspace program shall
131	  be able to set the CPU dynamically, like on LART
132	  <http://www.lartmaker.nl/>.
133
134	  To compile this driver as a module, choose M here: the
135	  module will be called cpufreq_userspace.
136
137	  For details, take a look at <file:Documentation/cpu-freq/>.
138
139	  If in doubt, say Y.
140
141config CPU_FREQ_GOV_ONDEMAND
142	tristate "'ondemand' cpufreq policy governor"
143	select CPU_FREQ_TABLE
144	help
145	  'ondemand' - This driver adds a dynamic cpufreq policy governor.
146	  The governor does a periodic polling and
147	  changes frequency based on the CPU utilization.
148	  The support for this governor depends on CPU capability to
149	  do fast frequency switching (i.e, very low latency frequency
150	  transitions).
151
152	  To compile this driver as a module, choose M here: the
153	  module will be called cpufreq_ondemand.
154
155	  For details, take a look at linux/Documentation/cpu-freq.
156
157	  If in doubt, say N.
158
159config CPU_FREQ_GOV_CONSERVATIVE
160	tristate "'conservative' cpufreq governor"
161	depends on CPU_FREQ
162	help
163	  'conservative' - this driver is rather similar to the 'ondemand'
164	  governor both in its source code and its purpose, the difference is
165	  its optimisation for better suitability in a battery powered
166	  environment.  The frequency is gracefully increased and decreased
167	  rather than jumping to 100% when speed is required.
168
169	  If you have a desktop machine then you should really be considering
170	  the 'ondemand' governor instead, however if you are using a laptop,
171	  PDA or even an AMD64 based computer (due to the unacceptable
172	  step-by-step latency issues between the minimum and maximum frequency
173	  transitions in the CPU) you will probably want to use this governor.
174
175	  To compile this driver as a module, choose M here: the
176	  module will be called cpufreq_conservative.
177
178	  For details, take a look at linux/Documentation/cpu-freq.
179
180	  If in doubt, say N.
181
182config GENERIC_CPUFREQ_CPU0
183	bool "Generic CPU0 cpufreq driver"
184	depends on HAVE_CLK && REGULATOR && PM_OPP && OF
185	select CPU_FREQ_TABLE
186	help
187	  This adds a generic cpufreq driver for CPU0 frequency management.
188	  It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
189	  systems which share clock and voltage across all CPUs.
190
191	  If in doubt, say N.
192
193menu "x86 CPU frequency scaling drivers"
194depends on X86
195source "drivers/cpufreq/Kconfig.x86"
196endmenu
197
198menu "ARM CPU frequency scaling drivers"
199depends on ARM
200source "drivers/cpufreq/Kconfig.arm"
201endmenu
202
203menu "PowerPC CPU frequency scaling drivers"
204depends on PPC32 || PPC64
205source "drivers/cpufreq/Kconfig.powerpc"
206endmenu
207
208endif
209endmenu
210