summaryrefslogtreecommitdiff
path: root/arch/sh/lib/time.c
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2013-10-22 08:37:46 -0400
committerTom Rini <trini@ti.com>2013-10-22 08:37:46 -0400
commit55aea84b1db277bd86edadb37d11b78d36db7608 (patch)
tree6d3d0ce8cb6b3afe9b5f6151c0236ec9503ad218 /arch/sh/lib/time.c
parent748bde608a8dfea5b64e186af4d9c27642fe7813 (diff)
parent7f2013d47c8c62c2373cafe68d6ba4649099e49a (diff)
Merge branch 'master' of git://git.denx.de/u-boot-sh
Diffstat (limited to 'arch/sh/lib/time.c')
-rw-r--r--arch/sh/lib/time.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c
index 1fe537e83bc..c554fe8b665 100644
--- a/arch/sh/lib/time.c
+++ b/arch/sh/lib/time.c
@@ -17,15 +17,17 @@
#include <asm/io.h>
#include <sh_tmu.h>
+#define TCR_TPSC 0x07
+
static struct tmu_regs *tmu = (struct tmu_regs *)TMU_BASE;
-static u16 bit;
static unsigned long last_tcnt;
static unsigned long long overflow_ticks;
unsigned long get_tbclk(void)
{
- return get_tmu0_clk_rate() >> ((bit + 1) * 2);
+ u16 tmu_bit = (ffs(CONFIG_SYS_TMU_CLK_DIV) >> 1) - 1;
+ return get_tmu0_clk_rate() >> ((tmu_bit + 1) * 2);
}
static inline unsigned long long tick_to_time(unsigned long long tick)
@@ -60,8 +62,8 @@ static void tmu_timer_stop(unsigned int timer)
int timer_init(void)
{
- bit = (ffs(CONFIG_SYS_TMU_CLK_DIV) >> 1) - 1;
- writew(readw(&tmu->tcr0) | bit, &tmu->tcr0);
+ u16 tmu_bit = (ffs(CONFIG_SYS_TMU_CLK_DIV) >> 1) - 1;
+ writew((readw(&tmu->tcr0) & ~TCR_TPSC) | tmu_bit, &tmu->tcr0);
tmu_timer_stop(0);
tmu_timer_start(0);