summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/export/config-gigabeat.h3
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c18
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 @@
126#define HAVE_HEADPHONE_DETECTION 126#define HAVE_HEADPHONE_DETECTION
127 127
128/* Define this if you have adjustable CPU frequency */ 128/* Define this if you have adjustable CPU frequency */
129/* Not ready for prime-time */ 129#define HAVE_ADJUSTABLE_CPU_FREQ
130/* #define HAVE_ADJUSTABLE_CPU_FREQ */
131 130
132#define BOOTFILE_EXT "gigabeat" 131#define BOOTFILE_EXT "gigabeat"
133#define BOOTFILE "rockbox." BOOTFILE_EXT 132#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)
75{ 75{
76 if (frequency == CPUFREQ_MAX) 76 if (frequency == CPUFREQ_MAX)
77 { 77 {
78 /* FCLK: 300MHz, HCLK: 100MHz, PCLK: 50MHz */ 78 asm volatile("mov r0, #0\n"
79 /* MDIV: 97, PDIV: 1, SDIV: 2 */ 79 "mrc p15, 0, r0, c1, c0, 0\n"
80 /* HDIV: 3, PDIV: 1 */ 80 "orr r0, r0, #3<<30\n" /* set to Asynchronous mode*/
81 "mcr p15, 0, r0, c1, c0, 0" : : : "r0");
81 82
82 MPLLCON = (97 << 12) | (1 << 4) | 2;
83 CLKDIVN = (3 << 1) | 1;
84 FREQ = CPUFREQ_MAX; 83 FREQ = CPUFREQ_MAX;
85 } 84 }
86 else 85 else
87 { 86 {
88 /* FCLK: 200MHz, HCLK: 100MHz, PCLK: 50MHz */ 87 asm volatile("mov r0, #0\n"
89 /* MDIV: 62, PDIV: 1, SDIV: 2 */ 88 "mrc p15, 0, r0, c1, c0, 0\n"
90 /* HDIV: 1, PDIV: 1 */ 89 "bic r0, r0, #3<<30\n" /* set to FastBus mode*/
90 "mcr p15, 0, r0, c1, c0, 0" : : : "r0");
91 91
92 MPLLCON = (62 << 12) | (1 << 4) | 2;
93 CLKDIVN = (1 << 1) | 1;
94 FREQ = CPUFREQ_NORMAL; 92 FREQ = CPUFREQ_NORMAL;
95 } 93 }
96} 94}