aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/Kconfig.arm
diff options
context:
space:
mode:
authorHeiko Stübner <heiko@sntech.de>2012-02-16 05:42:32 -0500
committerDave Jones <davej@redhat.com>2012-02-29 22:24:39 -0500
commit34ee55075265d68ca858f2426e165733664385b4 (patch)
tree38179f54326bfe7e56c76768d561b78552c0565c /drivers/cpufreq/Kconfig.arm
parent063b0ee4026fe87ead0c5528b9c3186635268ec7 (diff)
[CPUFREQ] Add S3C2416/S3C2450 cpufreq driver
The S3C2416/S3C2450 SoCs support two sources for the armclk. The first source is the so called armdiv which divides the msysclk down to provide necessary cpu rates. In this mode the core voltage must be always at 1.3V. The frequency from the armdiv is not allowed to be lower than the hclk frequency. In the second mode the armclk can be sourced directly from the hclk in the so called "dynamic voltags scaling" (dvs) mode. Here the armdiv isn't used at all. Also in this mode the core voltage may be lowered. Existing hardware and tests with it suggest 1.0V as sufficient. When changing the clock source to the armdiv from the hclk, the SoC shows stability issues if the new frequency is higher than the current hclk frequency. Hence the driver always forces the armdiv to the hclk frequency before the source change and lets the cpufreq issue another set_target call for higher frequencies. To mark the hclk frequency as lower as the corresponding armdiv frequency it is set 1MHz below the real frequency. This lets the cpufreq framework change between 133MHz based on hclk and 133MHz based on armdiv at will. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Tested-by: Andrey Gusakov <dron0gus@gmail.com> Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers/cpufreq/Kconfig.arm')
-rw-r--r--drivers/cpufreq/Kconfig.arm22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index c8bde43281c7..dc59abf3360f 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -2,6 +2,28 @@
2# ARM CPU Frequency scaling drivers 2# ARM CPU Frequency scaling drivers
3# 3#
4 4
5config ARM_S3C2416_CPUFREQ
6 bool "S3C2416 CPU Frequency scaling support"
7 depends on CPU_S3C2416
8 help
9 This adds the CPUFreq driver for the Samsung S3C2416 and
10 S3C2450 SoC. The S3C2416 supports changing the rate of the
11 armdiv clock source and also entering a so called dynamic
12 voltage scaling mode in which it is possible to reduce the
13 core voltage of the cpu.
14
15 If in doubt, say N.
16
17config ARM_S3C2416_CPUFREQ_VCORESCALE
18 bool "Allow voltage scaling for S3C2416 arm core (EXPERIMENTAL)"
19 depends on ARM_S3C2416_CPUFREQ && REGULATOR && EXPERIMENTAL
20 help
21 Enable CPU voltage scaling when entering the dvs mode.
22 It uses information gathered through existing hardware and
23 tests but not documented in any datasheet.
24
25 If in doubt, say N.
26
5config ARM_S3C64XX_CPUFREQ 27config ARM_S3C64XX_CPUFREQ
6 bool "Samsung S3C64XX" 28 bool "Samsung S3C64XX"
7 depends on CPU_S3C6410 29 depends on CPU_S3C6410