summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8702
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/arm/s5l8702
parentacf54bed55752c1d2af6e9067e84b43d278cf01a (diff)
downloadrockbox-44870b7415e8fbe4aa52e55e499a6d774cc721cf.tar.gz
rockbox-44870b7415e8fbe4aa52e55e499a6d774cc721cf.zip
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/arm/s5l8702')
-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)
53 53
54void cscodec_reset(bool state) 54void cscodec_reset(bool state)
55{ 55{
56 if (state) PDAT(3) &= ~8; 56 if (state) PDAT(3) &= ~8;
57 else PDAT(3) |= 8; 57 else PDAT(3) |= 8;
58} 58}
59 59
60void cscodec_clock(bool state) 60void cscodec_clock(bool state)
61{ 61{
62 if (state) CLKCON0C &= ~0xffff; 62 if (state) CLKCON3 &= ~0xffff;
63 else CLKCON0C |= 0x8000; 63 else CLKCON3 |= 0x8000;
64} 64}
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)
79/* milliamps */ 79/* milliamps */
80int pmu_read_battery_current(void) 80int pmu_read_battery_current(void)
81{ 81{
82//TODO: Figure out how to read the battery current
82// return pmu_read_adc(2); 83// return pmu_read_adc(2);
83 return 0; 84 return 0;
84} 85}
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)
253 if (cpu_frequency == frequency) 253 if (cpu_frequency == frequency)
254 return; 254 return;
255 255
256 //TODO: Need to understand this better
256 if (frequency == CPUFREQ_MAX) 257 if (frequency == CPUFREQ_MAX)
257 { 258 {
258 //TODO: Figure out and implement 259 CLKCON0 = 0x3011;
260 CLKCON1 = 0x4001;
259 } 261 }
260 else 262 else
261 { 263 {
262 //TODO: Figure out and implement 264 CLKCON1 = 0x404101;
265 CLKCON0 = 0x3000;
263 } 266 }
264 267
265 cpu_frequency = frequency; 268 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 @@
24#include "system-arm.h" 24#include "system-arm.h"
25#include "mmu-arm.h" 25#include "mmu-arm.h"
26 26
27//TODO: Figure out exact values
28#define CPUFREQ_SLEEP 32768 27#define CPUFREQ_SLEEP 32768
29#define CPUFREQ_MAX 216000000 28#define CPUFREQ_MAX 216000000
30#define CPUFREQ_DEFAULT 216000000 29#define CPUFREQ_DEFAULT 108000000
31#define CPUFREQ_NORMAL 216000000 30#define CPUFREQ_NORMAL 108000000
32 31
33#define STORAGE_WANTS_ALIGN 32#define STORAGE_WANTS_ALIGN
34 33