From 8f1709f434e88546f556e8971312b8e2162dbca7 Mon Sep 17 00:00:00 2001 From: Michael Sparmann Date: Sat, 17 Oct 2009 22:32:46 +0000 Subject: Adjust iPod Nano 2G CPU speed to 192MHz, which measurements show it to be. Timers will be more accurate now. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23237 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/config-ipodnano2g.h | 2 +- firmware/export/s5l8700.h | 3 ++- firmware/target/arm/s5l8700/kernel-s5l8700.c | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/firmware/export/config-ipodnano2g.h b/firmware/export/config-ipodnano2g.h index e733aa95e3..25e9eff3f0 100644 --- a/firmware/export/config-ipodnano2g.h +++ b/firmware/export/config-ipodnano2g.h @@ -147,7 +147,7 @@ #define FLASH_SIZE 0x400000 /* Define this to the CPU frequency */ -#define CPU_FREQ 200000000 +#define CPU_FREQ 192000000 /* Define this if you have ATA power-off control */ //#define HAVE_ATA_POWER_OFF diff --git a/firmware/export/s5l8700.h b/firmware/export/s5l8700.h index f08abee8ff..fe1d9ea7b5 100644 --- a/firmware/export/s5l8700.h +++ b/firmware/export/s5l8700.h @@ -25,7 +25,7 @@ #define REG16_PTR_T volatile uint16_t * #define REG32_PTR_T volatile uint32_t * -#define TIMER_FREQ 50000000L +#define TIMER_FREQ 48000000L /* 04. CALMADM2E */ @@ -132,6 +132,7 @@ #define INTMSK_TIMERC (1<<5) #define INTMSK_TIMERD (1<<5) #define INTMSK_ECC (1<<19) +#define INTMSK_USB_OTG (1<<16) #else #define INTMSK_TIMERA (1<<5) #define INTMSK_TIMERB (1<<7) diff --git a/firmware/target/arm/s5l8700/kernel-s5l8700.c b/firmware/target/arm/s5l8700/kernel-s5l8700.c index 61466af970..b7028ebd1f 100644 --- a/firmware/target/arm/s5l8700/kernel-s5l8700.c +++ b/firmware/target/arm/s5l8700/kernel-s5l8700.c @@ -24,7 +24,7 @@ /* S5L8700 driver for the kernel timer - Timer B is configured as a 10 kHz timer (assuming PCLK = 100 MHz) + Timer B is configured as a 10 kHz timer (assuming PCLK = 48 MHz) */ void INT_TIMERB(void) @@ -37,14 +37,14 @@ void INT_TIMERB(void) void tick_start(unsigned int interval_in_ms) { - int cycles = 5 * interval_in_ms; + int cycles = 10 * interval_in_ms; /* enable timer clock */ PWRCON &= ~(1 << 4); /* configure timer for 10 kHz */ TBCMD = (1 << 1); /* TB_CLR */ - TBPRE = 625 - 1; /* prescaler */ + TBPRE = 300 - 1; /* prescaler */ TBCON = (0 << 13) | /* TB_INT1_EN */ (1 << 12) | /* TB_INT0_EN */ (0 << 11) | /* TB_START */ -- cgit v1.2.3