From 44870b7415e8fbe4aa52e55e499a6d774cc721cf Mon Sep 17 00:00:00 2001 From: Michael Sparmann Date: Wed, 9 Feb 2011 21:45:57 +0000 Subject: 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 --- firmware/target/arm/s5l8702/ipod6g/cscodec-ipod6g.c | 8 ++++---- firmware/target/arm/s5l8702/ipod6g/pmu-ipod6g.c | 1 + firmware/target/arm/s5l8702/system-s5l8702.c | 7 +++++-- firmware/target/arm/s5l8702/system-target.h | 5 ++--- 4 files changed, 12 insertions(+), 9 deletions(-) (limited to 'firmware/target/arm/s5l8702') 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 -- cgit v1.2.3