Browse Source

rtc: brcmstb-waketimer: Set wktmr prescaler

The HW default is one tick per second, however instead of assuming this,
lets make sure the waketimer is actually one tick per second before
arming the alarm.

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Justin Chen <justinpopo6@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Justin Chen 7 years ago
parent
commit
58d3d5e79e
1 changed files with 3 additions and 0 deletions
  1. 3 0
      drivers/rtc/rtc-brcmstb-waketimer.c

+ 3 - 0
drivers/rtc/rtc-brcmstb-waketimer.c

@@ -60,6 +60,9 @@ static void brcmstb_waketmr_set_alarm(struct brcmstb_waketmr *timer,
 {
 {
 	brcmstb_waketmr_clear_alarm(timer);
 	brcmstb_waketmr_clear_alarm(timer);
 
 
+	/* Make sure we are actually counting in seconds */
+	writel_relaxed(timer->rate, timer->base + BRCMSTB_WKTMR_PRESCALER);
+
 	writel_relaxed(secs + 1, timer->base + BRCMSTB_WKTMR_ALARM);
 	writel_relaxed(secs + 1, timer->base + BRCMSTB_WKTMR_ALARM);
 }
 }