diff options
author | Michael Sparmann <theseven@rockbox.org> | 2011-02-09 21:45:57 +0000 |
---|---|---|
committer | Michael Sparmann <theseven@rockbox.org> | 2011-02-09 21:45:57 +0000 |
commit | 44870b7415e8fbe4aa52e55e499a6d774cc721cf (patch) | |
tree | 80d1931d8d8cbdeadf07ac17a9817caa05adb5a5 /firmware/target | |
parent | acf54bed55752c1d2af6e9067e84b43d278cf01a (diff) |
iPod Classic: Enable boosting by switching the CPU between 1x and 2x AHB clock
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29265 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/s5l8702/ipod6g/cscodec-ipod6g.c | 8 | ||||
-rw-r--r-- | firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c | 1 | ||||
-rw-r--r-- | firmware/target/arm/s5l8702/system-s5l8702.c | 7 | ||||
-rw-r--r-- | firmware/target/arm/s5l8702/system-target.h | 5 |
4 files changed, 12 insertions, 9 deletions
diff --git a/firmware/target/arm/s5l8702/ipod6g/cscodec-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/cscodec-ipod6g.c index 460b254730..41531de4e3 100644 --- a/firmware/target/arm/s5l8702/ipod6g/cscodec-ipod6g.c +++ b/firmware/target/arm/s5l8702/ipod6g/cscodec-ipod6g.c @@ -53,12 +53,12 @@ void cscodec_power(bool state) void cscodec_reset(bool state) { - if (state) PDAT(3) &= ~8;
- else PDAT(3) |= 8;
+ if (state) PDAT(3) &= ~8; + else PDAT(3) |= 8; } void cscodec_clock(bool state) { - if (state) CLKCON0C &= ~0xffff;
- else CLKCON0C |= 0x8000;
+ if (state) CLKCON3 &= ~0xffff; + else CLKCON3 |= 0x8000; } diff --git a/firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c index 73d8f98083..c11c0ad416 100644 --- a/firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c +++ b/firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c @@ -79,6 +79,7 @@ int pmu_read_battery_voltage(void) /* milliamps */ int pmu_read_battery_current(void) { +//TODO: Figure out how to read the battery current // return pmu_read_adc(2); return 0; } diff --git a/firmware/target/arm/s5l8702/system-s5l8702.c b/firmware/target/arm/s5l8702/system-s5l8702.c index 6973738790..a4e82feef9 100644 --- a/firmware/target/arm/s5l8702/system-s5l8702.c +++ b/firmware/target/arm/s5l8702/system-s5l8702.c @@ -253,13 +253,16 @@ void set_cpu_frequency(long frequency) if (cpu_frequency == frequency) return; + //TODO: Need to understand this better if (frequency == CPUFREQ_MAX) { - //TODO: Figure out and implement + CLKCON0 = 0x3011; + CLKCON1 = 0x4001; } else { - //TODO: Figure out and implement + CLKCON1 = 0x404101; + CLKCON0 = 0x3000; } cpu_frequency = frequency; diff --git a/firmware/target/arm/s5l8702/system-target.h b/firmware/target/arm/s5l8702/system-target.h index ed48eba6c4..30e53ad6ea 100644 --- a/firmware/target/arm/s5l8702/system-target.h +++ b/firmware/target/arm/s5l8702/system-target.h @@ -24,11 +24,10 @@ #include "system-arm.h"
#include "mmu-arm.h"
-//TODO: Figure out exact values
#define CPUFREQ_SLEEP 32768
#define CPUFREQ_MAX 216000000
-#define CPUFREQ_DEFAULT 216000000
-#define CPUFREQ_NORMAL 216000000
+#define CPUFREQ_DEFAULT 108000000
+#define CPUFREQ_NORMAL 108000000
#define STORAGE_WANTS_ALIGN
|