diff options
Diffstat (limited to 'arch/arm/mach-omap2/clock34xx.c')
-rw-r--r-- | arch/arm/mach-omap2/clock34xx.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c index cb5e068feb56..fdfc7d582913 100644 --- a/arch/arm/mach-omap2/clock34xx.c +++ b/arch/arm/mach-omap2/clock34xx.c | |||
@@ -563,14 +563,17 @@ static int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel) | |||
563 | /* 3430 ES2 TRM: 4.7.6.9 DPLL Programming Sequence */ | 563 | /* 3430 ES2 TRM: 4.7.6.9 DPLL Programming Sequence */ |
564 | _omap3_noncore_dpll_bypass(clk); | 564 | _omap3_noncore_dpll_bypass(clk); |
565 | 565 | ||
566 | /* Set jitter correction */ | ||
567 | v = __raw_readl(dd->control_reg); | ||
568 | v &= ~dd->freqsel_mask; | ||
569 | v |= freqsel << __ffs(dd->freqsel_mask); | ||
570 | __raw_writel(v, dd->control_reg); | ||
571 | |||
572 | /* Set DPLL multiplier, divider */ | ||
566 | v = __raw_readl(dd->mult_div1_reg); | 573 | v = __raw_readl(dd->mult_div1_reg); |
567 | v &= ~(dd->mult_mask | dd->div1_mask); | 574 | v &= ~(dd->mult_mask | dd->div1_mask); |
568 | |||
569 | /* Set mult (M), div1 (N), freqsel */ | ||
570 | v |= m << __ffs(dd->mult_mask); | 575 | v |= m << __ffs(dd->mult_mask); |
571 | v |= n << __ffs(dd->div1_mask); | 576 | v |= (n - 1) << __ffs(dd->div1_mask); |
572 | v |= freqsel << __ffs(dd->freqsel_mask); | ||
573 | |||
574 | __raw_writel(v, dd->mult_div1_reg); | 577 | __raw_writel(v, dd->mult_div1_reg); |
575 | 578 | ||
576 | /* We let the clock framework set the other output dividers later */ | 579 | /* We let the clock framework set the other output dividers later */ |