diff options
author | Jaecheol Lee <jc.lee@samsung.com> | 2011-12-06 21:43:56 -0500 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2011-12-09 10:38:02 -0500 |
commit | ba9d78031116a216d0e53aa629a584932e813375 (patch) | |
tree | c3515d2bcd6dfa94efb0cbd63c261768e5b564a9 /drivers/cpufreq | |
parent | c8c430e2f65adf124b3a2b6cfffa4dfc8a6e49c2 (diff) |
[CPUFREQ] EXYNOS4210: Update frequency table for cpu divider
This patch is changes frequency table for cpu divider for stable frequency.
Signed-off-by: Jaecheol Lee <jc.lee@samsung.com>
Signed-off-by: Jongpill Lee <boyko.lee@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r-- | drivers/cpufreq/exynos4210-cpufreq.c | 69 |
1 files changed, 41 insertions, 28 deletions
diff --git a/drivers/cpufreq/exynos4210-cpufreq.c b/drivers/cpufreq/exynos4210-cpufreq.c index 578956c5ee71..ba579e0a5c3f 100644 --- a/drivers/cpufreq/exynos4210-cpufreq.c +++ b/drivers/cpufreq/exynos4210-cpufreq.c | |||
@@ -41,14 +41,15 @@ static bool frequency_locked; | |||
41 | static DEFINE_MUTEX(cpufreq_lock); | 41 | static DEFINE_MUTEX(cpufreq_lock); |
42 | 42 | ||
43 | enum cpufreq_level_index { | 43 | enum cpufreq_level_index { |
44 | L0, L1, L2, L3, CPUFREQ_LEVEL_END, | 44 | L0, L1, L2, L3, L4, CPUFREQ_LEVEL_END, |
45 | }; | 45 | }; |
46 | 46 | ||
47 | static struct cpufreq_frequency_table exynos4_freq_table[] = { | 47 | static struct cpufreq_frequency_table exynos4_freq_table[] = { |
48 | {L0, 1000*1000}, | 48 | {L0, 1200*1000}, |
49 | {L1, 800*1000}, | 49 | {L1, 1000*1000}, |
50 | {L2, 400*1000}, | 50 | {L2, 800*1000}, |
51 | {L3, 100*1000}, | 51 | {L3, 500*1000}, |
52 | {L4, 200*1000}, | ||
52 | {0, CPUFREQ_TABLE_END}, | 53 | {0, CPUFREQ_TABLE_END}, |
53 | }; | 54 | }; |
54 | 55 | ||
@@ -59,17 +60,20 @@ static unsigned int clkdiv_cpu0[CPUFREQ_LEVEL_END][7] = { | |||
59 | * DIVATB, DIVPCLK_DBG, DIVAPLL } | 60 | * DIVATB, DIVPCLK_DBG, DIVAPLL } |
60 | */ | 61 | */ |
61 | 62 | ||
62 | /* ARM L0: 1000MHz */ | 63 | /* ARM L0: 1200MHz */ |
63 | { 0, 3, 7, 3, 3, 0, 1 }, | 64 | { 0, 3, 7, 3, 4, 1, 7 }, |
64 | 65 | ||
65 | /* ARM L1: 800MHz */ | 66 | /* ARM L1: 1000MHz */ |
66 | { 0, 3, 7, 3, 3, 0, 1 }, | 67 | { 0, 3, 7, 3, 4, 1, 7 }, |
67 | 68 | ||
68 | /* ARM L2: 400MHz */ | 69 | /* ARM L2: 800MHz */ |
69 | { 0, 1, 3, 1, 3, 0, 1 }, | 70 | { 0, 3, 7, 3, 3, 1, 7 }, |
70 | 71 | ||
71 | /* ARM L3: 100MHz */ | 72 | /* ARM L3: 500MHz */ |
72 | { 0, 0, 1, 0, 3, 1, 1 }, | 73 | { 0, 3, 7, 3, 3, 1, 7 }, |
74 | |||
75 | /* ARM L4: 200MHz */ | ||
76 | { 0, 1, 3, 1, 3, 1, 0 }, | ||
73 | }; | 77 | }; |
74 | 78 | ||
75 | static unsigned int clkdiv_cpu1[CPUFREQ_LEVEL_END][2] = { | 79 | static unsigned int clkdiv_cpu1[CPUFREQ_LEVEL_END][2] = { |
@@ -78,16 +82,19 @@ static unsigned int clkdiv_cpu1[CPUFREQ_LEVEL_END][2] = { | |||
78 | * { DIVCOPY, DIVHPM } | 82 | * { DIVCOPY, DIVHPM } |
79 | */ | 83 | */ |
80 | 84 | ||
81 | /* ARM L0: 1000MHz */ | 85 | /* ARM L0: 1200MHz */ |
82 | { 3, 0 }, | 86 | { 5, 0 }, |
87 | |||
88 | /* ARM L1: 1000MHz */ | ||
89 | { 4, 0 }, | ||
83 | 90 | ||
84 | /* ARM L1: 800MHz */ | 91 | /* ARM L2: 800MHz */ |
85 | { 3, 0 }, | 92 | { 3, 0 }, |
86 | 93 | ||
87 | /* ARM L2: 400MHz */ | 94 | /* ARM L3: 500MHz */ |
88 | { 3, 0 }, | 95 | { 3, 0 }, |
89 | 96 | ||
90 | /* ARM L3: 100MHz */ | 97 | /* ARM L4: 200MHz */ |
91 | { 3, 0 }, | 98 | { 3, 0 }, |
92 | }; | 99 | }; |
93 | 100 | ||
@@ -99,31 +106,37 @@ struct cpufreq_voltage_table { | |||
99 | static struct cpufreq_voltage_table exynos4_volt_table[CPUFREQ_LEVEL_END] = { | 106 | static struct cpufreq_voltage_table exynos4_volt_table[CPUFREQ_LEVEL_END] = { |
100 | { | 107 | { |
101 | .index = L0, | 108 | .index = L0, |
102 | .arm_volt = 1200000, | 109 | .arm_volt = 1350000, |
103 | }, { | 110 | }, { |
104 | .index = L1, | 111 | .index = L1, |
105 | .arm_volt = 1100000, | 112 | .arm_volt = 1300000, |
106 | }, { | 113 | }, { |
107 | .index = L2, | 114 | .index = L2, |
108 | .arm_volt = 1000000, | 115 | .arm_volt = 1200000, |
109 | }, { | 116 | }, { |
110 | .index = L3, | 117 | .index = L3, |
111 | .arm_volt = 900000, | 118 | .arm_volt = 1100000, |
119 | }, { | ||
120 | .index = L4, | ||
121 | .arm_volt = 1050000, | ||
112 | }, | 122 | }, |
113 | }; | 123 | }; |
114 | 124 | ||
115 | static unsigned int exynos4_apll_pms_table[CPUFREQ_LEVEL_END] = { | 125 | static unsigned int exynos4_apll_pms_table[CPUFREQ_LEVEL_END] = { |
116 | /* APLL FOUT L0: 1000MHz */ | 126 | /* APLL FOUT L0: 1200MHz */ |
127 | ((150 << 16) | (3 << 8) | 1), | ||
128 | |||
129 | /* APLL FOUT L1: 1000MHz */ | ||
117 | ((250 << 16) | (6 << 8) | 1), | 130 | ((250 << 16) | (6 << 8) | 1), |
118 | 131 | ||
119 | /* APLL FOUT L1: 800MHz */ | 132 | /* APLL FOUT L2: 800MHz */ |
120 | ((200 << 16) | (6 << 8) | 1), | 133 | ((200 << 16) | (6 << 8) | 1), |
121 | 134 | ||
122 | /* APLL FOUT L2 : 400MHz */ | 135 | /* APLL FOUT L3: 500MHz */ |
123 | ((200 << 16) | (6 << 8) | 2), | 136 | ((250 << 16) | (6 << 8) | 2), |
124 | 137 | ||
125 | /* APLL FOUT L3: 100MHz */ | 138 | /* APLL FOUT L4: 200MHz */ |
126 | ((200 << 16) | (6 << 8) | 4), | 139 | ((200 << 16) | (6 << 8) | 3), |
127 | }; | 140 | }; |
128 | 141 | ||
129 | static int exynos4_verify_speed(struct cpufreq_policy *policy) | 142 | static int exynos4_verify_speed(struct cpufreq_policy *policy) |