From: Dario Binacchi Date: Tue, 29 Dec 2020 23:16:22 +0000 (+0100) Subject: omap: timer: fix the rate setting X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=11326f379329d979bc39d26896190b799103a407;p=u-boot.git omap: timer: fix the rate setting The prescaler (PTV) setting must be taken into account even when the timer input clock frequency has been set. Signed-off-by: Dario Binacchi --- diff --git a/drivers/timer/omap-timer.c b/drivers/timer/omap-timer.c index 7ac20d78dd..721e385fd1 100644 --- a/drivers/timer/omap-timer.c +++ b/drivers/timer/omap-timer.c @@ -19,8 +19,6 @@ #define TCLR_PRE_EN BIT(5) /* Pre-scaler enable */ #define TCLR_PTV_SHIFT (2) /* Pre-scaler shift value */ -#define TIMER_CLOCK (V_SCLK / (2 << CONFIG_SYS_PTV)) - struct omap_gptimer_regs { unsigned int tidr; /* offset 0x00 */ unsigned char res1[12]; @@ -61,7 +59,9 @@ static int omap_timer_probe(struct udevice *dev) struct omap_timer_priv *priv = dev_get_priv(dev); if (!uc_priv->clock_rate) - uc_priv->clock_rate = TIMER_CLOCK; + uc_priv->clock_rate = V_SCLK; + + uc_priv->clock_rate /= (2 << CONFIG_SYS_PTV); /* start the counter ticking up, reload value on overflow */ writel(0, &priv->regs->tldr);