From d1faf8b39cf9492d1cd6f2e26b916dce0fe0354f Mon Sep 17 00:00:00 2001 From: Bertrik Sikken Date: Fri, 12 Jun 2009 21:11:45 +0000 Subject: FS#10317 - Sansa AMS 32-bit timers. Configure the timers for 32-bit mode instead of the default 16-bit mode. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21266 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/as3525/kernel-as3525.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'firmware/target') diff --git a/firmware/target/arm/as3525/kernel-as3525.c b/firmware/target/arm/as3525/kernel-as3525.c index d8f0e23d30..966d3bf349 100644 --- a/firmware/target/arm/as3525/kernel-as3525.c +++ b/firmware/target/arm/as3525/kernel-as3525.c @@ -61,26 +61,18 @@ void INT_TIMER2(void) void tick_start(unsigned int interval_in_ms) { - int phi = 0; /* prescaler bits */ - int prescale = 1; int cycles = KERNEL_TIMER_FREQ / 1000 * interval_in_ms; - while(cycles > 0x10000) - { - phi++; - prescale <<= 4; - cycles >>= 4; - } - - if(prescale > 256) - panicf("%s : interval too big", __func__); - CGU_PERI |= CGU_TIMER2_CLOCK_ENABLE; /* enable peripheral */ VIC_INT_ENABLE |= INTERRUPT_TIMER2; /* enable interrupt */ TIMER2_LOAD = TIMER2_BGLOAD = cycles; /* timer period */ /* /!\ bit 4 (reserved) must not be modified - * periodic mode, interrupt enabled, 16 bits counter */ - TIMER2_CONTROL = (TIMER2_CONTROL & (1<<4)) | 0xe0 | (phi<<2); + * periodic mode, interrupt enabled, no prescale, 32 bits counter */ + TIMER2_CONTROL = (TIMER2_CONTROL & (1<<4)) | + TIMER_ENABLE | + TIMER_PERIODIC | + TIMER_INT_ENABLE | + TIMER_32_BIT; } -- cgit v1.2.3