From 6309eabc6413acaa91a8e3dd94d3cb382a38dc14 Mon Sep 17 00:00:00 2001 From: Marcoen Hirschberg Date: Tue, 16 Jan 2007 15:49:29 +0000 Subject: 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 --- .../target/arm/gigabeat/meg-fx/system-meg-fx.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c') 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) } +void set_cpu_frequency(long frequency) +{ + if (frequency == CPUFREQ_MAX) + { + /* FCLK: 300MHz, HCLK: 100MHz, PCLK: 50MHz */ + /* MDIV: 97, PDIV: 1, SDIV: 2 */ + /* HDIV: 3, PDIV: 1 */ + + MPLLCON = (97 << 12) | (1 << 4) | 2; + CLKDIVN = (3 << 1) | 1; + FREQ = CPUFREQ_MAX; + } + else + { + /* FCLK: 200MHz, HCLK: 100MHz, PCLK: 50MHz */ + /* MDIV: 62, PDIV: 1, SDIV: 2 */ + /* HDIV: 1, PDIV: 1 */ + MPLLCON = (62 << 12) | (1 << 4) | 3; + CLKDIVN = (0 << 1) | 1; + FREQ = CPUFREQ_NORMAL; + } +} -- cgit v1.2.3