|
|
|
@ -40,6 +40,7 @@ |
|
|
|
|
#include <div64.h> |
|
|
|
|
#include <asm/io.h> |
|
|
|
|
#include <asm/arch/imx-regs.h> |
|
|
|
|
#include <asm/arch/clock.h> |
|
|
|
|
|
|
|
|
|
DECLARE_GLOBAL_DATA_PTR; |
|
|
|
|
|
|
|
|
@ -55,28 +56,27 @@ DECLARE_GLOBAL_DATA_PTR; |
|
|
|
|
static inline unsigned long long tick_to_time(unsigned long long tick) |
|
|
|
|
{ |
|
|
|
|
tick *= CONFIG_SYS_HZ; |
|
|
|
|
do_div(tick, CONFIG_MX25_CLK32); |
|
|
|
|
do_div(tick, MXC_CLK32); |
|
|
|
|
return tick; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline unsigned long long time_to_tick(unsigned long long time) |
|
|
|
|
{ |
|
|
|
|
time *= CONFIG_MX25_CLK32; |
|
|
|
|
time *= MXC_CLK32; |
|
|
|
|
do_div(time, CONFIG_SYS_HZ); |
|
|
|
|
return time; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static inline unsigned long long us_to_tick(unsigned long long us) |
|
|
|
|
{ |
|
|
|
|
us = us * CONFIG_MX25_CLK32 + 999999; |
|
|
|
|
us = us * MXC_CLK32 + 999999; |
|
|
|
|
do_div(us, 1000000); |
|
|
|
|
return us; |
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
/* ~2% error */ |
|
|
|
|
#define TICK_PER_TIME ((CONFIG_MX25_CLK32 + CONFIG_SYS_HZ / 2) / \ |
|
|
|
|
CONFIG_SYS_HZ) |
|
|
|
|
#define US_PER_TICK (1000000 / CONFIG_MX25_CLK32) |
|
|
|
|
#define TICK_PER_TIME ((MXC_CLK32 + CONFIG_SYS_HZ / 2) / CONFIG_SYS_HZ) |
|
|
|
|
#define US_PER_TICK (1000000 / MXC_CLK32) |
|
|
|
|
|
|
|
|
|
static inline unsigned long long tick_to_time(unsigned long long tick) |
|
|
|
|
{ |
|
|
|
@ -144,7 +144,7 @@ ulong get_timer_masked(void) |
|
|
|
|
{ |
|
|
|
|
/*
|
|
|
|
|
* get_ticks() returns a long long (64 bit), it wraps in |
|
|
|
|
* 2^64 / CONFIG_MX25_CLK32 = 2^64 / 2^15 = 2^49 ~ 5 * 10^14 (s) ~ |
|
|
|
|
* 2^64 / MXC_CLK32 = 2^64 / 2^15 = 2^49 ~ 5 * 10^14 (s) ~ |
|
|
|
|
* 5 * 10^9 days... and get_ticks() * CONFIG_SYS_HZ wraps in |
|
|
|
|
* 5 * 10^6 days - long enough. |
|
|
|
|
*/ |
|
|
|
@ -177,6 +177,6 @@ ulong get_tbclk(void) |
|
|
|
|
{ |
|
|
|
|
ulong tbclk; |
|
|
|
|
|
|
|
|
|
tbclk = CONFIG_MX25_CLK32; |
|
|
|
|
tbclk = MXC_CLK32; |
|
|
|
|
return tbclk; |
|
|
|
|
} |
|
|
|
|