aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s3c64xx
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2009-11-03 09:42:12 -0500
committerBen Dooks <ben-linux@fluff.org>2009-11-30 20:35:39 -0500
commite9c08f0d5737a988e735f7371bc0bffb343c485c (patch)
tree5f80c72a4a3611fda72c8a2e67ed93e7c319f601 /arch/arm/plat-s3c64xx
parent43f1069ef9af9a0b1fa1a1d6b49b2b05e1efc998 (diff)
ARM: S3C64XX: Redo voltage ranges for cpufreq
The documentation for the S3C6410 CPU voltage scaling is rather unclear, with omitted values for several speed settings. Originally the code was using only quoted values, resulting in some fairly odd settings. The S3C6410 is also unusual in that the both the maximum and minimum voltages quoted scale as the frequency rises, rather than just the minimum voltage. Clean this up a bit by always using the specified typical settings as the minimum voltage (ignoring any specified minimum voltage) in order to avoid running near the edge of the processor capabilities. Also use the next quoted maximum voltages rather than the typical voltages where no maximum voltage is quoted, allowing operation on a greater range of systems. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/plat-s3c64xx')
-rw-r--r--arch/arm/plat-s3c64xx/cpufreq.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/arch/arm/plat-s3c64xx/cpufreq.c b/arch/arm/plat-s3c64xx/cpufreq.c
index 61276bf73927..74c0e8347de5 100644
--- a/arch/arm/plat-s3c64xx/cpufreq.c
+++ b/arch/arm/plat-s3c64xx/cpufreq.c
@@ -28,11 +28,10 @@ struct s3c64xx_dvfs {
28}; 28};
29 29
30static struct s3c64xx_dvfs s3c64xx_dvfs_table[] = { 30static struct s3c64xx_dvfs s3c64xx_dvfs_table[] = {
31 [0] = { 1000000, 1000000 }, 31 [0] = { 1000000, 1150000 },
32 [1] = { 1000000, 1050000 }, 32 [1] = { 1050000, 1150000 },
33 [2] = { 1050000, 1100000 }, 33 [2] = { 1100000, 1150000 },
34 [3] = { 1050000, 1150000 }, 34 [3] = { 1200000, 1350000 },
35 [4] = { 1250000, 1350000 },
36}; 35};
37 36
38static struct cpufreq_frequency_table s3c64xx_freq_table[] = { 37static struct cpufreq_frequency_table s3c64xx_freq_table[] = {
@@ -42,9 +41,9 @@ static struct cpufreq_frequency_table s3c64xx_freq_table[] = {
42 { 1, 266000 }, 41 { 1, 266000 },
43 { 2, 333000 }, 42 { 2, 333000 },
44 { 2, 400000 }, 43 { 2, 400000 },
45 { 3, 532000 }, 44 { 2, 532000 },
46 { 3, 533000 }, 45 { 2, 533000 },
47 { 4, 667000 }, 46 { 3, 667000 },
48 { 0, CPUFREQ_TABLE_END }, 47 { 0, CPUFREQ_TABLE_END },
49}; 48};
50#endif 49#endif