summaryrefslogtreecommitdiff
path: root/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c
diff options
context:
space:
mode:
authorMarcoen Hirschberg <marcoen@gmail.com>2007-01-16 15:49:29 +0000
committerMarcoen Hirschberg <marcoen@gmail.com>2007-01-16 15:49:29 +0000
commit6309eabc6413acaa91a8e3dd94d3cb382a38dc14 (patch)
tree3a9a097d2d518bb348db7e78c58f808fdaba37b2 /firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c
parent0fedaa205c78858d5b043f9fe432b5ba62b13fbe (diff)
downloadrockbox-6309eabc6413acaa91a8e3dd94d3cb382a38dc14.tar.gz
rockbox-6309eabc6413acaa91a8e3dd94d3cb382a38dc14.zip
add cpu frequency scaling to the gigabeat. default/normal: 100MHz, boosted: 300MHz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12023 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c')
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c
index b922daaaa0..0cb16668f3 100644
--- a/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c
+++ b/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c
@@ -68,4 +68,26 @@ void system_init(void)
68 68
69} 69}
70 70
71void set_cpu_frequency(long frequency)
72{
73 if (frequency == CPUFREQ_MAX)
74 {
75 /* FCLK: 300MHz, HCLK: 100MHz, PCLK: 50MHz */
76 /* MDIV: 97, PDIV: 1, SDIV: 2 */
77 /* HDIV: 3, PDIV: 1 */
78
79 MPLLCON = (97 << 12) | (1 << 4) | 2;
80 CLKDIVN = (3 << 1) | 1;
81 FREQ = CPUFREQ_MAX;
82 }
83 else
84 {
85 /* FCLK: 200MHz, HCLK: 100MHz, PCLK: 50MHz */
86 /* MDIV: 62, PDIV: 1, SDIV: 2 */
87 /* HDIV: 1, PDIV: 1 */
71 88
89 MPLLCON = (62 << 12) | (1 << 4) | 3;
90 CLKDIVN = (0 << 1) | 1;
91 FREQ = CPUFREQ_NORMAL;
92 }
93}