aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/basic
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-05-02 17:23:08 +0200
committerOlof Johansson <olof@lixom.net>2012-05-09 02:15:56 -0700
commit70888a4b412abd55c1710e2d36a9a00f4d23f474 (patch)
treeedcc428dcb5062823c0505deab3f6093c0fb40a5 /scripts/basic
parentMerge tag 'at91-for-next-dt' of git://github.com/at91linux/linux-at91 into next/dt (diff)
parentARM: ux500: Enable PRCMU Timer 4 (clocksource) for Device Tree (diff)
Merge branch 'ux500-devicetree-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/dt
From: Linus Walleij <linus.walleij@linaro.org>: Four core patches paving the way for device tree enablement of the Snowball and ux500 at large by Lee Jones. * 'ux500-devicetree-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: ux500: Enable PRCMU Timer 4 (clocksource) for Device Tree ARM: ux500: Disable SMSC911x platform code registration when DT is enabled ARM: ux500: Fork cpu-db8500 platform_devs for sequential DT enablement ARM: ux500: Do not attempt to register non-existent i2c devices on Snowball Signed-off-by: Arnd Bergmann <arnd@arndb.de> [olof: rebuilt branch due to drop of an early merge] Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions
56' href='#n156'>156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
# SPDX-License-Identifier: GPL-2.0-only
menu "CPU Frequency scaling"

config CPU_FREQ
	bool "CPU Frequency scaling"
	help
	  CPU Frequency scaling allows you to change the clock speed of 
	  CPUs on the fly. This is a nice method to save power, because 
	  the lower the CPU clock speed, the less power the CPU consumes.

	  Note that this driver doesn't automatically change the CPU
	  clock speed, you need to either enable a dynamic cpufreq governor
	  (see below) after boot, or use a userspace tool.

	  For details, take a look at
	  <file:Documentation/admin-guide/pm/cpufreq.rst>.

	  If in doubt, say N.

if CPU_FREQ

config CPU_FREQ_GOV_ATTR_SET
	bool

config CPU_FREQ_GOV_COMMON
	select CPU_FREQ_GOV_ATTR_SET
	select IRQ_WORK
	bool

config CPU_FREQ_STAT
	bool "CPU frequency transition statistics"
	help
	  Export CPU frequency statistics information through sysfs.

	  If in doubt, say N.

choice
	prompt "Default CPUFreq governor"
	default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1110_CPUFREQ
	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if ARM64 || ARM
	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if (X86_INTEL_PSTATE || X86_AMD_PSTATE) && SMP
	default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
	help
	  This option sets which CPUFreq governor shall be loaded at
	  startup. If in doubt, use the default setting.

config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
	bool "performance"
	select CPU_FREQ_GOV_PERFORMANCE
	help
	  Use the CPUFreq governor 'performance' as default. This sets
	  the frequency statically to the highest frequency supported by
	  the CPU.

config CPU_FREQ_DEFAULT_GOV_POWERSAVE
	bool "powersave"
	select CPU_FREQ_GOV_POWERSAVE
	help
	  Use the CPUFreq governor 'powersave' as default. This sets
	  the frequency statically to the lowest frequency supported by
	  the CPU.

config CPU_FREQ_DEFAULT_GOV_USERSPACE
	bool "userspace"
	select CPU_FREQ_GOV_USERSPACE
	help
	  Use the CPUFreq governor 'userspace' as default. This allows
	  you to set the CPU frequency manually or when a userspace 
	  program shall be able to set the CPU dynamically without having
	  to enable the userspace governor manually.

config CPU_FREQ_DEFAULT_GOV_ONDEMAND
	bool "ondemand"
	depends on !(X86_INTEL_PSTATE && SMP)
	select CPU_FREQ_GOV_ONDEMAND
	select CPU_FREQ_GOV_PERFORMANCE
	help
	  Use the CPUFreq governor 'ondemand' as default. This allows
	  you to get a full dynamic frequency capable system by simply
	  loading your cpufreq low-level hardware driver.
	  Be aware that not all cpufreq drivers support the ondemand
	  governor. If unsure have a look at the help section of the
	  driver. Fallback governor will be the performance governor.

config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
	bool "conservative"
	depends on !(X86_INTEL_PSTATE && SMP)
	select CPU_FREQ_GOV_CONSERVATIVE
	select CPU_FREQ_GOV_PERFORMANCE
	help
	  Use the CPUFreq governor 'conservative' as default. This allows
	  you to get a full dynamic frequency capable system by simply
	  loading your cpufreq low-level hardware driver.
	  Be aware that not all cpufreq drivers support the conservative
	  governor. If unsure have a look at the help section of the
	  driver. Fallback governor will be the performance governor.

config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
	bool "schedutil"
	depends on SMP
	select CPU_FREQ_GOV_SCHEDUTIL
	select CPU_FREQ_GOV_PERFORMANCE
	help
	  Use the 'schedutil' CPUFreq governor by default. If unsure,
	  have a look at the help section of that governor. The fallback
	  governor will be 'performance'.

endchoice

config CPU_FREQ_GOV_PERFORMANCE
	tristate "'performance' governor"
	help
	  This cpufreq governor sets the frequency statically to the
	  highest available CPU frequency.

	  To compile this driver as a module, choose M here: the
	  module will be called cpufreq_performance.

	  If in doubt, say Y.

config CPU_FREQ_GOV_POWERSAVE
	tristate "'powersave' governor"
	help
	  This cpufreq governor sets the frequency statically to the
	  lowest available CPU frequency.

	  To compile this driver as a module, choose M here: the
	  module will be called cpufreq_powersave.

	  If in doubt, say Y.

config CPU_FREQ_GOV_USERSPACE
	tristate "'userspace' governor for userspace frequency scaling"
	help
	  Enable this cpufreq governor when you either want to set the
	  CPU frequency manually or when a userspace program shall
	  be able to set the CPU dynamically, like on LART 
	  <http://www.lartmaker.nl/>.

	  To compile this driver as a module, choose M here: the
	  module will be called cpufreq_userspace.

	  If in doubt, say Y.

config CPU_FREQ_GOV_ONDEMAND
	tristate "'ondemand' cpufreq policy governor"
	select CPU_FREQ_GOV_COMMON
	help
	  'ondemand' - This driver adds a dynamic cpufreq policy governor.
	  The governor does a periodic polling and 
	  changes frequency based on the CPU utilization.
	  The support for this governor depends on CPU capability to
	  do fast frequency switching (i.e, very low latency frequency
	  transitions). 

	  To compile this driver as a module, choose M here: the
	  module will be called cpufreq_ondemand.

	  For details, take a look at
	  <file:Documentation/admin-guide/pm/cpufreq.rst>.

	  If in doubt, say N.

config CPU_FREQ_GOV_CONSERVATIVE
	tristate "'conservative' cpufreq governor"
	depends on CPU_FREQ
	select CPU_FREQ_GOV_COMMON
	help
	  'conservative' - this driver is rather similar to the 'ondemand'
	  governor both in its source code and its purpose, the difference is
	  its optimisation for better suitability in a battery powered
	  environment.  The frequency is gracefully increased and decreased
	  rather than jumping to 100% when speed is required.

	  If you have a desktop machine then you should really be considering
	  the 'ondemand' governor instead, however if you are using a laptop,
	  PDA or even an AMD64 based computer (due to the unacceptable
	  step-by-step latency issues between the minimum and maximum frequency
	  transitions in the CPU) you will probably want to use this governor.

	  To compile this driver as a module, choose M here: the
	  module will be called cpufreq_conservative.

	  For details, take a look at
	  <file:Documentation/admin-guide/pm/cpufreq.rst>.

	  If in doubt, say N.

config CPU_FREQ_GOV_SCHEDUTIL
	bool "'schedutil' cpufreq policy governor"
	depends on CPU_FREQ && SMP
	select CPU_FREQ_GOV_ATTR_SET
	select IRQ_WORK
	help
	  This governor makes decisions based on the utilization data provided
	  by the scheduler.  It sets the CPU frequency to be proportional to
	  the utilization/capacity ratio coming from the scheduler.  If the
	  utilization is frequency-invariant, the new frequency is also
	  proportional to the maximum available frequency.  If that is not the
	  case, it is proportional to the current frequency of the CPU.  The
	  frequency tipping point is at utilization/capacity equal to 80% in
	  both cases.

	  If in doubt, say N.

comment "CPU frequency scaling drivers"

config CPUFREQ_DT
	tristate "Generic DT based cpufreq driver"
	depends on HAVE_CLK && OF
	select CPUFREQ_DT_PLATDEV
	select PM_OPP
	help
	  This adds a generic DT based cpufreq driver for frequency management.
	  It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
	  systems.

	  If in doubt, say N.

config CPUFREQ_VIRT
	tristate "Virtual cpufreq driver"
	depends on GENERIC_ARCH_TOPOLOGY
	help
	  This adds a virtualized cpufreq driver for guest kernels that
	  read/writes to a MMIO region for a virtualized cpufreq device to
	  communicate with the host. It sends performance requests to the host
	  which gets used as a hint to schedule vCPU threads and select CPU
	  frequency. If a VM does not support a virtualized FIE such as AMUs,
	  it updates the frequency scaling factor by polling host CPU frequency
	  to enable accurate Per-Entity Load Tracking for tasks running in the guest.

	  If in doubt, say N.

config CPUFREQ_DT_PLATDEV
	bool "Generic DT based cpufreq platdev driver"
	depends on OF
	help
	  This adds a generic DT based cpufreq platdev driver for frequency
	  management.  This creates a 'cpufreq-dt' platform device, on the
	  supported platforms.

	  If in doubt, say N.

if X86
source "drivers/cpufreq/Kconfig.x86"
endif

source "drivers/cpufreq/Kconfig.arm"

if PPC32 || PPC64
source "drivers/cpufreq/Kconfig.powerpc"
endif

if MIPS
config BMIPS_CPUFREQ
	tristate "BMIPS CPUfreq Driver"
	help
	  This option adds a CPUfreq driver for BMIPS processors with
	  support for configurable CPU frequency.

	  For now, BMIPS5 chips are supported (such as the Broadcom 7425).

	  If in doubt, say N.

config LOONGSON2_CPUFREQ
	tristate "Loongson2 CPUFreq Driver"
	depends on LEMOTE_MACH2F
	help
	  This option adds a CPUFreq driver for loongson processors which
	  support software configurable cpu frequency.

	  Loongson2F and its successors support this feature.

	  If in doubt, say N.
endif

if LOONGARCH
config LOONGSON3_CPUFREQ
	tristate "Loongson3 CPUFreq Driver"
	help
	  This option adds a CPUFreq driver for Loongson processors which
	  support software configurable cpu frequency.

	  Loongson-3 family processors support this feature.

	  If in doubt, say N.
endif

if SPARC64
config SPARC_US3_CPUFREQ
	tristate "UltraSPARC-III CPU Frequency driver"
	help
	  This adds the CPUFreq driver for UltraSPARC-III processors.

	  If in doubt, say N.

config SPARC_US2E_CPUFREQ
	tristate "UltraSPARC-IIe CPU Frequency driver"
	help
	  This adds the CPUFreq driver for UltraSPARC-IIe processors.

	  If in doubt, say N.
endif

if SUPERH
config SH_CPU_FREQ
	tristate "SuperH CPU Frequency driver"
	help
	  This adds the cpufreq driver for SuperH. Any CPU that supports
	  clock rate rounding through the clock framework can use this
	  driver. While it will make the kernel slightly larger, this is
	  harmless for CPUs that don't support rate rounding. The driver
	  will also generate a notice in the boot log before disabling
	  itself if the CPU in question is not capable of rate rounding.

	  If unsure, say N.
endif

config QORIQ_CPUFREQ
	tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
	depends on OF && COMMON_CLK
	depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
	select CLK_QORIQ
	help
	  This adds the CPUFreq driver support for Freescale QorIQ SoCs
	  which are capable of changing the CPU's frequency dynamically.

config ACPI_CPPC_CPUFREQ
	tristate "CPUFreq driver based on the ACPI CPPC spec"
	depends on ACPI_PROCESSOR
	depends on ARM || ARM64 || RISCV
	select ACPI_CPPC_LIB
	help
	  This adds a CPUFreq driver which uses CPPC methods
	  as described in the ACPIv5.1 spec. CPPC stands for
	  Collaborative Processor Performance Controls. It
	  is based on an abstract continuous scale of CPU
	  performance values which allows the remote power
	  processor to flexibly optimize for power and
	  performance. CPPC relies on power management firmware
	  support for its operation.

	  If in doubt, say N.

config ACPI_CPPC_CPUFREQ_FIE
	bool "Frequency Invariance support for CPPC cpufreq driver"
	depends on ACPI_CPPC_CPUFREQ && GENERIC_ARCH_TOPOLOGY
	depends on ARM || ARM64 || RISCV
	default y
	help
	  This extends frequency invariance support in the CPPC cpufreq driver,
	  by using CPPC delivered and reference performance counters.

	  If in doubt, say N.

endif

endmenu