|  | menu "CPU Frequency scaling" | 
|  |  | 
|  | config CPU_FREQ | 
|  | bool "CPU Frequency scaling" | 
|  | select SRCU | 
|  | 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/cpu-freq>. | 
|  |  | 
|  | If in doubt, say N. | 
|  |  | 
|  | if CPU_FREQ | 
|  |  | 
|  | config CPU_FREQ_GOV_COMMON | 
|  | select IRQ_WORK | 
|  | bool | 
|  |  | 
|  | config CPU_FREQ_BOOST_SW | 
|  | bool | 
|  | depends on THERMAL | 
|  |  | 
|  | config CPU_FREQ_STAT | 
|  | tristate "CPU frequency translation statistics" | 
|  | default y | 
|  | help | 
|  | This driver exports CPU frequency statistics information through sysfs | 
|  | file system. | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called cpufreq_stats. | 
|  |  | 
|  | If in doubt, say N. | 
|  |  | 
|  | config CPU_FREQ_STAT_DETAILS | 
|  | bool "CPU frequency translation statistics details" | 
|  | depends on CPU_FREQ_STAT | 
|  | help | 
|  | This will show detail CPU frequency translation table in sysfs file | 
|  | system. | 
|  |  | 
|  | If in doubt, say N. | 
|  |  | 
|  | choice | 
|  | prompt "Default CPUFreq governor" | 
|  | default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ | 
|  | default CPU_FREQ_DEFAULT_GOV_PERFORMANCE | 
|  | help | 
|  | This option sets which CPUFreq governor shall be loaded at | 
|  | startup. If in doubt, select 'performance'. | 
|  |  | 
|  | 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" | 
|  | 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" | 
|  | 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. | 
|  | 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. | 
|  |  | 
|  | For details, take a look at <file:Documentation/cpu-freq/>. | 
|  |  | 
|  | 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 linux/Documentation/cpu-freq. | 
|  |  | 
|  | 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 linux/Documentation/cpu-freq. | 
|  |  | 
|  | If in doubt, say N. | 
|  |  | 
|  | comment "CPU frequency scaling drivers" | 
|  |  | 
|  | config CPUFREQ_DT | 
|  | tristate "Generic DT based cpufreq driver" | 
|  | depends on HAVE_CLK && OF | 
|  | # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y: | 
|  | depends on !CPU_THERMAL || THERMAL | 
|  | 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 which share clock and voltage across all CPUs. | 
|  |  | 
|  | If in doubt, say N. | 
|  |  | 
|  | if X86 | 
|  | source "drivers/cpufreq/Kconfig.x86" | 
|  | endif | 
|  |  | 
|  | if ARM || ARM64 | 
|  | source "drivers/cpufreq/Kconfig.arm" | 
|  | endif | 
|  |  | 
|  | if PPC32 || PPC64 | 
|  | source "drivers/cpufreq/Kconfig.powerpc" | 
|  | endif | 
|  |  | 
|  | if AVR32 | 
|  | config AVR32_AT32AP_CPUFREQ | 
|  | bool "CPU frequency driver for AT32AP" | 
|  | depends on PLATFORM_AT32AP | 
|  | default n | 
|  | help | 
|  | This enables the CPU frequency driver for AT32AP processors. | 
|  | If in doubt, say N. | 
|  | endif | 
|  |  | 
|  | if IA64 | 
|  | config IA64_ACPI_CPUFREQ | 
|  | tristate "ACPI Processor P-States driver" | 
|  | depends on ACPI_PROCESSOR | 
|  | help | 
|  | This driver adds a CPUFreq driver which utilizes the ACPI | 
|  | Processor Performance States. | 
|  |  | 
|  | For details, take a look at <file:Documentation/cpu-freq/>. | 
|  |  | 
|  | If in doubt, say N. | 
|  | endif | 
|  |  | 
|  | if MIPS | 
|  | config LOONGSON2_CPUFREQ | 
|  | tristate "Loongson2 CPUFreq Driver" | 
|  | help | 
|  | This option adds a CPUFreq driver for loongson processors which | 
|  | support software configurable cpu frequency. | 
|  |  | 
|  | Loongson2F and it's successors support this feature. | 
|  |  | 
|  | For details, take a look at <file:Documentation/cpu-freq/>. | 
|  |  | 
|  | If in doubt, say N. | 
|  |  | 
|  | config LOONGSON1_CPUFREQ | 
|  | tristate "Loongson1 CPUFreq Driver" | 
|  | help | 
|  | This option adds a CPUFreq driver for loongson1 processors which | 
|  | support software configurable cpu frequency. | 
|  |  | 
|  | For details, take a look at <file:Documentation/cpu-freq/>. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | For details, take a look at <file:Documentation/cpu-freq>. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | For details, take a look at <file:Documentation/cpu-freq>. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | For details, take a look at <file:Documentation/cpu-freq>. | 
|  |  | 
|  | If unsure, say N. | 
|  | endif | 
|  |  | 
|  | config QORIQ_CPUFREQ | 
|  | tristate "CPU frequency scaling driver for Freescale QorIQ SoCs" | 
|  | depends on OF && COMMON_CLK && (PPC_E500MC || ARM) | 
|  | depends on !CPU_THERMAL || THERMAL | 
|  | select CLK_QORIQ | 
|  | help | 
|  | This adds the CPUFreq driver support for Freescale QorIQ SoCs | 
|  | which are capable of changing the CPU's frequency dynamically. | 
|  |  | 
|  | endif | 
|  | endmenu |