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
This commit is contained in:
Michael Sparmann 2011-02-09 21:45:57 +00:00
parent acf54bed55
commit 44870b7415
6 changed files with 30 additions and 16 deletions

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;

View file

@ -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