diff options
Diffstat (limited to 'arch/arm/cpu/arm1176/bcm2835/timer.c')
| -rw-r--r-- | arch/arm/cpu/arm1176/bcm2835/timer.c | 14 | 
1 files changed, 11 insertions, 3 deletions
| diff --git a/arch/arm/cpu/arm1176/bcm2835/timer.c b/arch/arm/cpu/arm1176/bcm2835/timer.c index d232d7e06..2edd6711d 100644 --- a/arch/arm/cpu/arm1176/bcm2835/timer.c +++ b/arch/arm/cpu/arm1176/bcm2835/timer.c @@ -23,7 +23,7 @@ int timer_init(void)  	return 0;  } -ulong get_timer(ulong base) +ulong get_timer_us(ulong base)  {  	struct bcm2835_timer_regs *regs =  		(struct bcm2835_timer_regs *)BCM2835_TIMER_PHYSADDR; @@ -31,6 +31,14 @@ ulong get_timer(ulong base)  	return readl(®s->clo) - base;  } +ulong get_timer(ulong base) +{ +	ulong us = get_timer_us(0); +	us /= (1000000 / CONFIG_SYS_HZ); +	us -= base; +	return us; +} +  unsigned long long get_ticks(void)  {  	return get_timer(0); @@ -46,10 +54,10 @@ void __udelay(unsigned long usec)  	ulong endtime;  	signed long diff; -	endtime = get_timer(0) + usec; +	endtime = get_timer_us(0) + usec;  	do { -		ulong now = get_timer(0); +		ulong now = get_timer_us(0);  		diff = endtime - now;  	} while (diff >= 0);  } |