blob: 57f96ebbce4b689c194db460930e9baad8c6e10e [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001menu "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.
102
103config CPU_FREQ_DEFAULT_GOV_INTERACTIVE
104 bool "interactive"
105 select CPU_FREQ_GOV_INTERACTIVE
106 help
107 Use the CPUFreq governor 'interactive' as default. This allows
108 you to get a full dynamic cpu frequency capable system by simply
109 loading your cpufreq low-level hardware driver, using the
110 'interactive' governor for latency-sensitive workloads.
111
112endchoice
113
114config CPU_FREQ_GOV_PERFORMANCE
115 tristate "'performance' governor"
116 help
117 This cpufreq governor sets the frequency statically to the
118 highest available CPU frequency.
119
120 To compile this driver as a module, choose M here: the
121 module will be called cpufreq_performance.
122
123 If in doubt, say Y.
124
125config CPU_FREQ_GOV_POWERSAVE
126 tristate "'powersave' governor"
127 help
128 This cpufreq governor sets the frequency statically to the
129 lowest available CPU frequency.
130
131 To compile this driver as a module, choose M here: the
132 module will be called cpufreq_powersave.
133
134 If in doubt, say Y.
135
136config CPU_FREQ_GOV_USERSPACE
137 tristate "'userspace' governor for userspace frequency scaling"
138 help
139 Enable this cpufreq governor when you either want to set the
140 CPU frequency manually or when a userspace program shall
141 be able to set the CPU dynamically, like on LART
142 <http://www.lartmaker.nl/>.
143
144 To compile this driver as a module, choose M here: the
145 module will be called cpufreq_userspace.
146
147 For details, take a look at <file:Documentation/cpu-freq/>.
148
149 If in doubt, say Y.
150
151config CPU_FREQ_GOV_ONDEMAND
152 tristate "'ondemand' cpufreq policy governor"
153 select CPU_FREQ_TABLE
154 help
155 'ondemand' - This driver adds a dynamic cpufreq policy governor.
156 The governor does a periodic polling and
157 changes frequency based on the CPU utilization.
158 The support for this governor depends on CPU capability to
159 do fast frequency switching (i.e, very low latency frequency
160 transitions).
161
162 To compile this driver as a module, choose M here: the
163 module will be called cpufreq_ondemand.
164
165 For details, take a look at linux/Documentation/cpu-freq.
166
167 If in doubt, say N.
168
169config CPU_FREQ_GOV_INTERACTIVE
170 tristate "'interactive' cpufreq policy governor"
171 help
172 'interactive' - This driver adds a dynamic cpufreq policy governor
173 designed for latency-sensitive workloads.
174
175 This governor attempts to reduce the latency of clock
176 increases so that the system is more responsive to
177 interactive workloads.
178
179 To compile this driver as a module, choose M here: the
180 module will be called cpufreq_interactive.
181
182 For details, take a look at linux/Documentation/cpu-freq.
183
184 If in doubt, say N.
185
186config CPU_FREQ_GOV_CONSERVATIVE
187 tristate "'conservative' cpufreq governor"
188 depends on CPU_FREQ
189 help
190 'conservative' - this driver is rather similar to the 'ondemand'
191 governor both in its source code and its purpose, the difference is
192 its optimisation for better suitability in a battery powered
193 environment. The frequency is gracefully increased and decreased
194 rather than jumping to 100% when speed is required.
195
196 If you have a desktop machine then you should really be considering
197 the 'ondemand' governor instead, however if you are using a laptop,
198 PDA or even an AMD64 based computer (due to the unacceptable
199 step-by-step latency issues between the minimum and maximum frequency
200 transitions in the CPU) you will probably want to use this governor.
201
202 To compile this driver as a module, choose M here: the
203 module will be called cpufreq_conservative.
204
205 For details, take a look at linux/Documentation/cpu-freq.
206
207 If in doubt, say N.
208
209menu "x86 CPU frequency scaling drivers"
210depends on X86
211source "drivers/cpufreq/Kconfig.x86"
212endmenu
213
214menu "ARM CPU frequency scaling drivers"
215depends on ARM
216source "drivers/cpufreq/Kconfig.arm"
217endmenu
218
219menu "PowerPC CPU frequency scaling drivers"
220depends on PPC32 || PPC64
221source "drivers/cpufreq/Kconfig.powerpc"
222endmenu
223
224endif
225endmenu