From: Nobuhiro Iwamatsu Date: Tue, 23 Jul 2013 04:57:24 +0000 (+0900) Subject: sh: timer: Mask bit of timer prescaler X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=861bd4bcf7e7eba165b42e79cea005486851d69b;p=u-boot.git sh: timer: Mask bit of timer prescaler timer_init function sets timer prescaler bit. The previous code so did not mask this bit, this function was to overwrite the bit. This will fix this problem. Signed-off-by: Nobuhiro Iwamatsu Signed-off-by: Nobuhiro Iwamatsu --- diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index 1fe537e83b..8f83d46792 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -17,6 +17,8 @@ #include #include +#define TCR_TPSC 0x07 + static struct tmu_regs *tmu = (struct tmu_regs *)TMU_BASE; static u16 bit; @@ -61,7 +63,7 @@ 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); + writew((readw(&tmu->tcr0) & ~TCR_TPSC) | bit, &tmu->tcr0); tmu_timer_stop(0); tmu_timer_start(0);