diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2011-09-02 02:52:10 -0400 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2011-10-26 17:19:47 -0400 |
commit | 6283e328fb8148a8a5753e95c04c16aaef2287c0 (patch) | |
tree | 48f7e4d623b3f4a7cd55dca5451766c701a7dd1f /drivers/cpufreq | |
parent | ded84337ac820700f1b9dda724201e64b2ad3536 (diff) |
[CPUFREQ] db8500: support all frequencies
This adds support for the 200 MHz frequency mode of the
DB8500 SoC, and prints the available frequencies at init
time.
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r-- | drivers/cpufreq/db8500-cpufreq.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/cpufreq/db8500-cpufreq.c b/drivers/cpufreq/db8500-cpufreq.c index b87236add6be..eedfc99c75f6 100644 --- a/drivers/cpufreq/db8500-cpufreq.c +++ b/drivers/cpufreq/db8500-cpufreq.c | |||
@@ -18,24 +18,29 @@ | |||
18 | static struct cpufreq_frequency_table freq_table[] = { | 18 | static struct cpufreq_frequency_table freq_table[] = { |
19 | [0] = { | 19 | [0] = { |
20 | .index = 0, | 20 | .index = 0, |
21 | .frequency = 300000, | 21 | .frequency = 200000, |
22 | }, | 22 | }, |
23 | [1] = { | 23 | [1] = { |
24 | .index = 1, | 24 | .index = 1, |
25 | .frequency = 600000, | 25 | .frequency = 300000, |
26 | }, | 26 | }, |
27 | [2] = { | 27 | [2] = { |
28 | /* Used for MAX_OPP, if available */ | ||
29 | .index = 2, | 28 | .index = 2, |
30 | .frequency = CPUFREQ_TABLE_END, | 29 | .frequency = 600000, |
31 | }, | 30 | }, |
32 | [3] = { | 31 | [3] = { |
32 | /* Used for MAX_OPP, if available */ | ||
33 | .index = 3, | 33 | .index = 3, |
34 | .frequency = CPUFREQ_TABLE_END, | 34 | .frequency = CPUFREQ_TABLE_END, |
35 | }, | 35 | }, |
36 | [4] = { | ||
37 | .index = 4, | ||
38 | .frequency = CPUFREQ_TABLE_END, | ||
39 | }, | ||
36 | }; | 40 | }; |
37 | 41 | ||
38 | static enum arm_opp idx2opp[] = { | 42 | static enum arm_opp idx2opp[] = { |
43 | ARM_EXTCLK, | ||
39 | ARM_50_OPP, | 44 | ARM_50_OPP, |
40 | ARM_100_OPP, | 45 | ARM_100_OPP, |
41 | ARM_MAX_OPP | 46 | ARM_MAX_OPP |
@@ -108,12 +113,15 @@ static int __cpuinit db8500_cpufreq_init(struct cpufreq_policy *policy) | |||
108 | 113 | ||
109 | BUILD_BUG_ON(ARRAY_SIZE(idx2opp) + 1 != ARRAY_SIZE(freq_table)); | 114 | BUILD_BUG_ON(ARRAY_SIZE(idx2opp) + 1 != ARRAY_SIZE(freq_table)); |
110 | 115 | ||
111 | if (cpu_is_u8500v2() && !prcmu_is_u8400()) { | 116 | if (!prcmu_is_u8400()) { |
112 | freq_table[0].frequency = 400000; | 117 | freq_table[1].frequency = 400000; |
113 | freq_table[1].frequency = 800000; | 118 | freq_table[2].frequency = 800000; |
114 | if (prcmu_has_arm_maxopp()) | 119 | if (prcmu_has_arm_maxopp()) |
115 | freq_table[2].frequency = 1000000; | 120 | freq_table[3].frequency = 1000000; |
116 | } | 121 | } |
122 | pr_info("db8500-cpufreq : Available frequencies:\n"); | ||
123 | while (freq_table[i].frequency != CPUFREQ_TABLE_END) | ||
124 | pr_info(" %d Mhz\n", freq_table[i++].frequency/1000); | ||
117 | 125 | ||
118 | /* get policy fields based on the table */ | 126 | /* get policy fields based on the table */ |
119 | res = cpufreq_frequency_table_cpuinfo(policy, freq_table); | 127 | res = cpufreq_frequency_table_cpuinfo(policy, freq_table); |