diff options
| author | Ladislav Michl <ladis@linux-mips.org> | 2009-03-30 18:58:41 +0200 | 
|---|---|---|
| committer | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2009-03-30 18:58:41 +0200 | 
| commit | 89c00fb15859213788f0ad089934c376fb356099 (patch) | |
| tree | e69b04ac08a54d0ee26308163af978f3c10ea1ee /cpu/arm925t/interrupts.c | |
| parent | 81472d893fa565c9d300928a40e504a689bde131 (diff) | |
| download | olio-uboot-2014.01-89c00fb15859213788f0ad089934c376fb356099.tar.xz olio-uboot-2014.01-89c00fb15859213788f0ad089934c376fb356099.zip  | |
OMAP: use {read,write}l to access timer registers
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Diffstat (limited to 'cpu/arm925t/interrupts.c')
| -rw-r--r-- | cpu/arm925t/interrupts.c | 21 | 
1 files changed, 9 insertions, 12 deletions
diff --git a/cpu/arm925t/interrupts.c b/cpu/arm925t/interrupts.c index 361047bd2..e5c77f7a0 100644 --- a/cpu/arm925t/interrupts.c +++ b/cpu/arm925t/interrupts.c @@ -35,24 +35,21 @@  #include <common.h>  #include <arm925t.h>  #include <configs/omap1510.h> +#include <asm/io.h>  #define TIMER_LOAD_VAL 0xffffffff -/* macro to read the 32 bit timer */ -#define READ_TIMER (*(volatile ulong *)(CONFIG_SYS_TIMERBASE+8)) - -static ulong timestamp; -static ulong lastdec; +static uint32_t timestamp; +static uint32_t lastdec;  /* nothing really to do with interrupts, just starts up a counter. */  int interrupt_init (void)  { -	int32_t val; -  	/* Start the decrementer ticking down from 0xffffffff */ -	*((int32_t *) (CONFIG_SYS_TIMERBASE + LOAD_TIM)) = TIMER_LOAD_VAL; -	val = MPUTIM_ST | MPUTIM_AR | MPUTIM_CLOCK_ENABLE | (CONFIG_SYS_PTV << MPUTIM_PTV_BIT); -	*((int32_t *) (CONFIG_SYS_TIMERBASE + CNTL_TIMER)) = val; +	__raw_writel(TIMER_LOAD_VAL, CONFIG_SYS_TIMERBASE + LOAD_TIM); +	__raw_writel(MPUTIM_ST | MPUTIM_AR | MPUTIM_CLOCK_ENABLE | +		(CONFIG_SYS_PTV << MPUTIM_PTV_BIT), +		CONFIG_SYS_TIMERBASE + CNTL_TIMER);  	/* init the timestamp and lastdec value */  	reset_timer_masked(); @@ -106,13 +103,13 @@ void udelay (unsigned long usec)  void reset_timer_masked (void)  {  	/* reset time */ -	lastdec = READ_TIMER;  /* capure current decrementer value time */ +	lastdec = __raw_readl(CONFIG_SYS_TIMERBASE + READ_TIM);  	timestamp = 0;	       /* start "advancing" time stamp from 0 */  }  ulong get_timer_masked (void)  { -	ulong now = READ_TIMER;		/* current tick value */ +	uint32_t now = __raw_readl(CONFIG_SYS_TIMERBASE + READ_TIM);  	if (lastdec >= now) {		/* normal mode (non roll) */  		/* normal mode */  |