From 48b42616e928ce6eacfe20276a1614e2b27ac4b5 Mon Sep 17 00:00:00 2001 From: wdenk Date: Thu, 19 Jun 2003 23:01:32 +0000 Subject: =?UTF-8?q?*=20Patches=20by=20David=20M=FCller,=2012=20Jun=202003:?= =?UTF-8?q?=20=20=20-=20rewrite=20of=20the=20S3C24X0=20register=20definiti?= =?UTF-8?q?ons=20stuff=20=20=20-=20"driver"=20for=20the=20built-in=20S3C24?= =?UTF-8?q?X0=20RTC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Patches by Yuli Barcohen, 12 Jun 2003: - Add MII support and Ethernet PHY initialization for MPC8260ADS board - Fix incorrect SIUMCR initialisation caused by wrong Hard Reset configuration word supplied by FPGA on some MPC8260ADS boards * Patch by Pantelis Antoniou, 10 Jun 2003: Unify status LED interface --- cpu/arm920t/interrupts.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'cpu/arm920t/interrupts.c') diff --git a/cpu/arm920t/interrupts.c b/cpu/arm920t/interrupts.c index 195fb01..dd944fb 100644 --- a/cpu/arm920t/interrupts.c +++ b/cpu/arm920t/interrupts.c @@ -43,7 +43,12 @@ extern void reset_cpu(ulong addr); int timer_load_val = 0; /* macro to read the 16 bit timer */ -#define READ_TIMER (rTCNTO4 & 0xffff) +static inline ulong READ_TIMER(void) +{ + S3C24X0_TIMERS * const timers = S3C24X0_GetBase_TIMERS(); + + return (timers->TCNTO4 & 0xffff); +} #ifdef CONFIG_USE_IRQ /* enable IRQ interrupts */ @@ -184,9 +189,11 @@ static ulong lastdec; int interrupt_init (void) { + S3C24X0_TIMERS * const timers = S3C24X0_GetBase_TIMERS(); + /* use PWM Timer 4 because it has no output */ /* prescaler for Timer 4 is 16 */ - rTCFG0 = 0x0f00; + timers->TCFG0 = 0x0f00; if (timer_load_val == 0) { /* @@ -197,11 +204,11 @@ int interrupt_init (void) timer_load_val = get_PCLK()/(2 * 16 * 100); } /* load value for 10 ms timeout */ - lastdec = rTCNTB4 = timer_load_val; + lastdec = timers->TCNTB4 = timer_load_val; /* auto load, manual update of Timer 4 */ - rTCON = (rTCON & ~0x0700000) | 0x600000; + timers->TCON = (timers->TCON & ~0x0700000) | 0x600000; /* auto load, start Timer 4 */ - rTCON = (rTCON & ~0x0700000) | 0x500000; + timers->TCON = (timers->TCON & ~0x0700000) | 0x500000; timestamp = 0; return (0); @@ -243,13 +250,13 @@ void udelay (unsigned long usec) void reset_timer_masked (void) { /* reset time */ - lastdec = READ_TIMER; + lastdec = READ_TIMER(); timestamp = 0; } ulong get_timer_masked (void) { - ulong now = READ_TIMER; + ulong now = READ_TIMER(); if (lastdec >= now) { /* normal mode */ -- cgit v1.1