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 <dariobin@libero.it>
This commit is contained in:
parent
d64b9cdcd4
commit
11326f3793
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue