summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-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}