diff options
author | Jaecheol Lee <jc.lee@samsung.com> | 2012-07-19 00:19:57 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2012-07-19 00:20:25 -0400 |
commit | bb3e815b8011bc22451ee05e7dccb73c5ee979a8 (patch) | |
tree | 8cbc0401f9424a511240754d9934ba632fa9c3ca /drivers/cpufreq/exynos5250-cpufreq.c | |
parent | 6c6c185b45568dd3bc887d7248228476e3a6906a (diff) |
[CPUFREQ] EXYNOS5250: Add support max 1.7GHz for EXYNOS5250
This patch adds support 1.7GHz max frequency for EXYNOS5250
Signed-off-by: Jaecheol Lee <jc.lee@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'drivers/cpufreq/exynos5250-cpufreq.c')
-rw-r--r-- | drivers/cpufreq/exynos5250-cpufreq.c | 55 |
1 files changed, 24 insertions, 31 deletions
diff --git a/drivers/cpufreq/exynos5250-cpufreq.c b/drivers/cpufreq/exynos5250-cpufreq.c index a88331644ebf..e64c253cb169 100644 --- a/drivers/cpufreq/exynos5250-cpufreq.c +++ b/drivers/cpufreq/exynos5250-cpufreq.c | |||
@@ -65,20 +65,20 @@ static unsigned int clkdiv_cpu0_5250[CPUFREQ_LEVEL_END][8] = { | |||
65 | * Clock divider value for following | 65 | * Clock divider value for following |
66 | * { ARM, CPUD, ACP, PERIPH, ATB, PCLK_DBG, APLL, ARM2 } | 66 | * { ARM, CPUD, ACP, PERIPH, ATB, PCLK_DBG, APLL, ARM2 } |
67 | */ | 67 | */ |
68 | { 0, 3, 7, 7, 6, 1, 3, 0 }, /* 1700 MHz - N/A */ | 68 | { 0, 3, 7, 7, 7, 3, 5, 0 }, /* 1700 MHz */ |
69 | { 0, 3, 7, 7, 6, 1, 3, 0 }, /* 1600 MHz - N/A */ | 69 | { 0, 3, 7, 7, 7, 1, 4, 0 }, /* 1600 MHz */ |
70 | { 0, 3, 7, 7, 5, 1, 3, 0 }, /* 1500 MHz - N/A */ | 70 | { 0, 2, 7, 7, 7, 1, 4, 0 }, /* 1500 MHz */ |
71 | { 0, 3, 7, 7, 6, 1, 3, 0 }, /* 1400 MHz */ | 71 | { 0, 2, 7, 7, 6, 1, 4, 0 }, /* 1400 MHz */ |
72 | { 0, 3, 7, 7, 6, 1, 3, 0 }, /* 1300 MHz */ | 72 | { 0, 2, 7, 7, 6, 1, 3, 0 }, /* 1300 MHz */ |
73 | { 0, 3, 7, 7, 5, 1, 3, 0 }, /* 1200 MHz */ | 73 | { 0, 2, 7, 7, 5, 1, 3, 0 }, /* 1200 MHz */ |
74 | { 0, 2, 7, 7, 5, 1, 2, 0 }, /* 1100 MHz */ | 74 | { 0, 3, 7, 7, 5, 1, 3, 0 }, /* 1100 MHz */ |
75 | { 0, 2, 7, 7, 4, 1, 2, 0 }, /* 1000 MHz */ | 75 | { 0, 1, 7, 7, 4, 1, 2, 0 }, /* 1000 MHz */ |
76 | { 0, 2, 7, 7, 4, 1, 2, 0 }, /* 900 MHz */ | 76 | { 0, 1, 7, 7, 4, 1, 2, 0 }, /* 900 MHz */ |
77 | { 0, 2, 7, 7, 3, 1, 1, 0 }, /* 800 MHz */ | 77 | { 0, 1, 7, 7, 4, 1, 2, 0 }, /* 800 MHz */ |
78 | { 0, 1, 7, 7, 3, 1, 1, 0 }, /* 700 MHz */ | 78 | { 0, 1, 7, 7, 3, 1, 1, 0 }, /* 700 MHz */ |
79 | { 0, 1, 7, 7, 2, 1, 1, 0 }, /* 600 MHz */ | 79 | { 0, 1, 7, 7, 3, 1, 1, 0 }, /* 600 MHz */ |
80 | { 0, 1, 7, 7, 2, 1, 1, 0 }, /* 500 MHz */ | 80 | { 0, 1, 7, 7, 2, 1, 1, 0 }, /* 500 MHz */ |
81 | { 0, 1, 7, 7, 1, 1, 1, 0 }, /* 400 MHz */ | 81 | { 0, 1, 7, 7, 2, 1, 1, 0 }, /* 400 MHz */ |
82 | { 0, 1, 7, 7, 1, 1, 1, 0 }, /* 300 MHz */ | 82 | { 0, 1, 7, 7, 1, 1, 1, 0 }, /* 300 MHz */ |
83 | { 0, 1, 7, 7, 1, 1, 1, 0 }, /* 200 MHz */ | 83 | { 0, 1, 7, 7, 1, 1, 1, 0 }, /* 200 MHz */ |
84 | }; | 84 | }; |
@@ -87,9 +87,9 @@ static unsigned int clkdiv_cpu1_5250[CPUFREQ_LEVEL_END][2] = { | |||
87 | /* Clock divider value for following | 87 | /* Clock divider value for following |
88 | * { COPY, HPM } | 88 | * { COPY, HPM } |
89 | */ | 89 | */ |
90 | { 0, 2 }, /* 1700 MHz - N/A */ | 90 | { 0, 2 }, /* 1700 MHz */ |
91 | { 0, 2 }, /* 1600 MHz - N/A */ | 91 | { 0, 2 }, /* 1600 MHz */ |
92 | { 0, 2 }, /* 1500 MHz - N/A */ | 92 | { 0, 2 }, /* 1500 MHz */ |
93 | { 0, 2 }, /* 1400 MHz */ | 93 | { 0, 2 }, /* 1400 MHz */ |
94 | { 0, 2 }, /* 1300 MHz */ | 94 | { 0, 2 }, /* 1300 MHz */ |
95 | { 0, 2 }, /* 1200 MHz */ | 95 | { 0, 2 }, /* 1200 MHz */ |
@@ -106,10 +106,10 @@ static unsigned int clkdiv_cpu1_5250[CPUFREQ_LEVEL_END][2] = { | |||
106 | }; | 106 | }; |
107 | 107 | ||
108 | static unsigned int exynos5_apll_pms_table[CPUFREQ_LEVEL_END] = { | 108 | static unsigned int exynos5_apll_pms_table[CPUFREQ_LEVEL_END] = { |
109 | (0), /* 1700 MHz - N/A */ | 109 | ((425 << 16) | (6 << 8) | 0), /* 1700 MHz */ |
110 | (0), /* 1600 MHz - N/A */ | 110 | ((200 << 16) | (3 << 8) | 0), /* 1600 MHz */ |
111 | (0), /* 1500 MHz - N/A */ | 111 | ((250 << 16) | (4 << 8) | 0), /* 1500 MHz */ |
112 | (0), /* 1400 MHz */ | 112 | ((175 << 16) | (3 << 8) | 0), /* 1400 MHz */ |
113 | ((325 << 16) | (6 << 8) | 0), /* 1300 MHz */ | 113 | ((325 << 16) | (6 << 8) | 0), /* 1300 MHz */ |
114 | ((200 << 16) | (4 << 8) | 0), /* 1200 MHz */ | 114 | ((200 << 16) | (4 << 8) | 0), /* 1200 MHz */ |
115 | ((275 << 16) | (6 << 8) | 0), /* 1100 MHz */ | 115 | ((275 << 16) | (6 << 8) | 0), /* 1100 MHz */ |
@@ -126,9 +126,10 @@ static unsigned int exynos5_apll_pms_table[CPUFREQ_LEVEL_END] = { | |||
126 | 126 | ||
127 | /* ASV group voltage table */ | 127 | /* ASV group voltage table */ |
128 | static const unsigned int asv_voltage_5250[CPUFREQ_LEVEL_END] = { | 128 | static const unsigned int asv_voltage_5250[CPUFREQ_LEVEL_END] = { |
129 | 0, 0, 0, 0, 0, 0, 0, /* 1700 MHz ~ 1100 MHz Not supported */ | 129 | 1300000, 1250000, 1225000, 1200000, 1150000, |
130 | 1175000, 1125000, 1075000, 1050000, 1000000, | 130 | 1125000, 1100000, 1075000, 1050000, 1025000, |
131 | 950000, 925000, 925000, 900000 | 131 | 1012500, 1000000, 975000, 950000, 937500, |
132 | 925000 | ||
132 | }; | 133 | }; |
133 | 134 | ||
134 | static void set_clkdiv(unsigned int div_index) | 135 | static void set_clkdiv(unsigned int div_index) |
@@ -248,15 +249,7 @@ static void __init set_volt_table(void) | |||
248 | { | 249 | { |
249 | unsigned int i; | 250 | unsigned int i; |
250 | 251 | ||
251 | exynos5250_freq_table[L0].frequency = CPUFREQ_ENTRY_INVALID; | 252 | max_support_idx = L0; |
252 | exynos5250_freq_table[L1].frequency = CPUFREQ_ENTRY_INVALID; | ||
253 | exynos5250_freq_table[L2].frequency = CPUFREQ_ENTRY_INVALID; | ||
254 | exynos5250_freq_table[L3].frequency = CPUFREQ_ENTRY_INVALID; | ||
255 | exynos5250_freq_table[L4].frequency = CPUFREQ_ENTRY_INVALID; | ||
256 | exynos5250_freq_table[L5].frequency = CPUFREQ_ENTRY_INVALID; | ||
257 | exynos5250_freq_table[L6].frequency = CPUFREQ_ENTRY_INVALID; | ||
258 | |||
259 | max_support_idx = L7; | ||
260 | 253 | ||
261 | for (i = 0 ; i < CPUFREQ_LEVEL_END ; i++) | 254 | for (i = 0 ; i < CPUFREQ_LEVEL_END ; i++) |
262 | exynos5250_volt_table[i] = asv_voltage_5250[i]; | 255 | exynos5250_volt_table[i] = asv_voltage_5250[i]; |