diff options
Diffstat (limited to 'firmware/target/arm/gigabeat')
-rw-r--r-- | firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c | 22 |
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 | ||
71 | void 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 | } | ||