davinci: use divide ratio limits from pll_data
This patch modifies the sysclk rate setting code to use the divider mask specified in pll_data. Without this, devices with different divider ranges (e.g. tnetv107x) fail. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
This commit is contained in:
parent
6d1c57c84c
commit
b1d05be61f
@ -336,7 +336,7 @@ int davinci_set_sysclk_rate(struct clk *clk, unsigned long rate)
|
|||||||
ratio--;
|
ratio--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ratio > PLLDIV_RATIO_MASK)
|
if (ratio > pll->div_ratio_mask)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
@ -344,7 +344,7 @@ int davinci_set_sysclk_rate(struct clk *clk, unsigned long rate)
|
|||||||
} while (v & PLLSTAT_GOSTAT);
|
} while (v & PLLSTAT_GOSTAT);
|
||||||
|
|
||||||
v = __raw_readl(pll->base + clk->div_reg);
|
v = __raw_readl(pll->base + clk->div_reg);
|
||||||
v &= ~PLLDIV_RATIO_MASK;
|
v &= ~pll->div_ratio_mask;
|
||||||
v |= ratio | PLLDIV_EN;
|
v |= ratio | PLLDIV_EN;
|
||||||
__raw_writel(v, pll->base + clk->div_reg);
|
__raw_writel(v, pll->base + clk->div_reg);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user