summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorMichael Sparmann <theseven@rockbox.org>2011-02-09 21:45:57 +0000
committerMichael Sparmann <theseven@rockbox.org>2011-02-09 21:45:57 +0000
commit44870b7415e8fbe4aa52e55e499a6d774cc721cf (patch)
tree80d1931d8d8cbdeadf07ac17a9817caa05adb5a5 /firmware/target
parentacf54bed55752c1d2af6e9067e84b43d278cf01a (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.c8
-rw-r--r--firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c1
-rw-r--r--firmware/target/arm/s5l8702/system-s5l8702.c7
-rw-r--r--firmware/target/arm/s5l8702/system-target.h5
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