summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJon Hunter <jon-hunter@ti.com>2013-04-09 16:41:33 -0500
committerTom Rini <trini@ti.com>2013-04-10 16:03:02 -0400
commiteef6da0326834cc90b9f3b2e80dec71ee8e39e9a (patch)
tree71988017403378991d72d24b627971927e861d8c /arch
parent54ef1f6774a2ced26789a072249c048201dc8987 (diff)
downloadu-boot-imx-eef6da0326834cc90b9f3b2e80dec71ee8e39e9a.zip
u-boot-imx-eef6da0326834cc90b9f3b2e80dec71ee8e39e9a.tar.gz
u-boot-imx-eef6da0326834cc90b9f3b2e80dec71ee8e39e9a.tar.bz2
omap5912-osk: Fix get_timer() and CONFIG_SYS_HZ
The function get_timer() should return time in ms and CONFIG_SYS_HZ should be set to 1000 by default. Fix both of these items. Signed-off-by: Jon Hunter <jon-hunter@ti.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/cpu/arm926ejs/omap/timer.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/arm/cpu/arm926ejs/omap/timer.c b/arch/arm/cpu/arm926ejs/omap/timer.c
index 34ec7b2..16530b0 100644
--- a/arch/arm/cpu/arm926ejs/omap/timer.c
+++ b/arch/arm/cpu/arm926ejs/omap/timer.c
@@ -36,11 +36,14 @@
*/
#include <common.h>
+#include <asm/io.h>
-#define TIMER_LOAD_VAL 0xffffffff
+#define TIMER_CLOCK (CONFIG_SYS_CLK_FREQ / (2 << CONFIG_SYS_PTV))
+#define TIMER_LOAD_VAL 0xffffffff
/* macro to read the 32 bit timer */
-#define READ_TIMER (*(volatile ulong *)(CONFIG_SYS_TIMERBASE+8))
+#define READ_TIMER readl(CONFIG_SYS_TIMERBASE+8) \
+ / (TIMER_CLOCK / CONFIG_SYS_HZ)
DECLARE_GLOBAL_DATA_PTR;
@@ -114,7 +117,8 @@ ulong get_timer_masked (void)
* (TLV-now) amount of time after passing though -1
* nts = new "advancing time stamp"...it could also roll and cause problems.
*/
- timestamp += lastdec + TIMER_LOAD_VAL - now;
+ timestamp += lastdec + (TIMER_LOAD_VAL / (TIMER_CLOCK /
+ CONFIG_SYS_HZ)) - now;
}
lastdec = now;
@@ -160,8 +164,5 @@ unsigned long long get_ticks(void)
*/
ulong get_tbclk (void)
{
- ulong tbclk;
-
- tbclk = CONFIG_SYS_HZ;
- return tbclk;
+ return CONFIG_SYS_HZ;
}