MX28: Fix get_timer() / get_tbclk() issue
authorMarek Vasut <marek.vasut@gmail.com>
Tue, 7 Feb 2012 06:47:31 +0000 (06:47 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Mon, 27 Feb 2012 20:19:23 +0000 (21:19 +0100)
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Detlev Zundel <dzu@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
arch/arm/cpu/arm926ejs/mx28/timer.c

index dbc904d087e91c9904620476cde9683e4eb5ef17..5b73f4a2b3e1a4a297f131b0fd67bef610585018 100644 (file)
@@ -82,7 +82,7 @@ int timer_init(void)
        return 0;
 }
 
-ulong get_timer(ulong base)
+unsigned long long get_ticks(void)
 {
        struct mx28_timrot_regs *timrot_regs =
                (struct mx28_timrot_regs *)MXS_TIMROT_BASE;
@@ -103,7 +103,17 @@ ulong get_timer(ulong base)
        }
        lastdec = now;
 
-       return tick_to_time(timestamp) - base;
+       return timestamp;
+}
+
+ulong get_timer_masked(void)
+{
+       return tick_to_time(get_ticks());
+}
+
+ulong get_timer(ulong base)
+{
+       return get_timer_masked() - base;
 }
 
 /* We use the HW_DIGCTL_MICROSECONDS register for sub-millisecond timer. */
@@ -139,3 +149,8 @@ void __udelay(unsigned long usec)
                old = new;
        }
 }
+
+ulong get_tbclk(void)
+{
+       return MX28_INCREMENTER_HZ;
+}