From c64684887ab49749326e2bab61df431a35ed7272 Mon Sep 17 00:00:00 2001 From: Marcoen Hirschberg Date: Wed, 17 Jan 2007 18:15:50 +0000 Subject: re-enable CPU scaling (between 100 and 300MHz again) with a new implementation git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12047 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/config-gigabeat.h | 3 +-- firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c | 18 ++++++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h index 9f024054b7..6e22e8d7ab 100644 --- a/firmware/export/config-gigabeat.h +++ b/firmware/export/config-gigabeat.h @@ -126,8 +126,7 @@ #define HAVE_HEADPHONE_DETECTION /* Define this if you have adjustable CPU frequency */ -/* Not ready for prime-time */ -/* #define HAVE_ADJUSTABLE_CPU_FREQ */ +#define HAVE_ADJUSTABLE_CPU_FREQ #define BOOTFILE_EXT "gigabeat" #define BOOTFILE "rockbox." BOOTFILE_EXT 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 ca73b38eed..b7e59e66ea 100644 --- a/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c +++ b/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c @@ -75,22 +75,20 @@ 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 */ + asm volatile("mov r0, #0\n" + "mrc p15, 0, r0, c1, c0, 0\n" + "orr r0, r0, #3<<30\n" /* set to Asynchronous mode*/ + "mcr p15, 0, r0, c1, c0, 0" : : : "r0"); - 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 */ + asm volatile("mov r0, #0\n" + "mrc p15, 0, r0, c1, c0, 0\n" + "bic r0, r0, #3<<30\n" /* set to FastBus mode*/ + "mcr p15, 0, r0, c1, c0, 0" : : : "r0"); - MPLLCON = (62 << 12) | (1 << 4) | 2; - CLKDIVN = (1 << 1) | 1; FREQ = CPUFREQ_NORMAL; } } -- cgit v1.2.3