mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-11-28 14:11:29 +01:00
ARM: tegra: enable PLLX only once it's been fully configured
This programming sequence is correct per Jimmy Zhang, and makes sense too! Signed-off-by: Stephen Warren <swarren@nvidia.com> Tested-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
This commit is contained in:
parent
cad38a57d3
commit
41447fb2cf
@ -144,18 +144,23 @@ int pllx_set_rate(struct clk_pll_simple *pll , u32 divn, u32 divm,
|
|||||||
reg |= (1 << PLL_DCCON_SHIFT);
|
reg |= (1 << PLL_DCCON_SHIFT);
|
||||||
writel(reg, &pll->pll_misc);
|
writel(reg, &pll->pll_misc);
|
||||||
|
|
||||||
/* Enable PLLX */
|
|
||||||
reg = readl(&pll->pll_base);
|
|
||||||
reg |= PLL_ENABLE_MASK;
|
|
||||||
|
|
||||||
/* Disable BYPASS */
|
/* Disable BYPASS */
|
||||||
|
reg = readl(&pll->pll_base);
|
||||||
reg &= ~PLL_BYPASS_MASK;
|
reg &= ~PLL_BYPASS_MASK;
|
||||||
writel(reg, &pll->pll_base);
|
writel(reg, &pll->pll_base);
|
||||||
|
debug("pllx_set_rate: base = 0x%08X\n", reg);
|
||||||
|
|
||||||
/* Set lock_enable to PLLX_MISC */
|
/* Set lock_enable to PLLX_MISC */
|
||||||
reg = readl(&pll->pll_misc);
|
reg = readl(&pll->pll_misc);
|
||||||
reg |= PLL_LOCK_ENABLE_MASK;
|
reg |= PLL_LOCK_ENABLE_MASK;
|
||||||
writel(reg, &pll->pll_misc);
|
writel(reg, &pll->pll_misc);
|
||||||
|
debug("pllx_set_rate: misc = 0x%08X\n", reg);
|
||||||
|
|
||||||
|
/* Enable PLLX last, once it's all configured */
|
||||||
|
reg = readl(&pll->pll_base);
|
||||||
|
reg |= PLL_ENABLE_MASK;
|
||||||
|
writel(reg, &pll->pll_base);
|
||||||
|
debug("pllx_set_rate: base final = 0x%08X\n", reg);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user