diff options
author | Giulio Benetti <giulio.benetti@benettiengineering.com> | 2020-04-08 17:10:07 +0200 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2020-04-18 12:54:43 +0200 |
commit | 8cefbe98b16e756b886ebcbe77ba66e05b9392b4 (patch) | |
tree | a98df4f6e9bc3d893e7a9625e38f7377d40370b0 /drivers | |
parent | a5ed4fa95f870d5b1aa4437f1dc9e65f69a58805 (diff) | |
download | u-boot-8cefbe98b16e756b886ebcbe77ba66e05b9392b4.tar.gz u-boot-8cefbe98b16e756b886ebcbe77ba66e05b9392b4.tar.bz2 u-boot-8cefbe98b16e756b886ebcbe77ba66e05b9392b4.zip |
clk: imx: pllv3: add enable_bit
pllv3 PLLs have powerdown/up bits but enable bits too. Specifically
"enable bit" enable the pll output, so when dis/enabling pll by
setting/clearing power_bit we must also set/clear enable_bit.
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/clk/imx/clk-pllv3.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/clk/imx/clk-pllv3.c b/drivers/clk/imx/clk-pllv3.c index 525442debf..b4a9d587e1 100644 --- a/drivers/clk/imx/clk-pllv3.c +++ b/drivers/clk/imx/clk-pllv3.c @@ -25,6 +25,7 @@ #define PLL_DENOM_OFFSET 0x20 #define BM_PLL_POWER (0x1 << 12) +#define BM_PLL_ENABLE (0x1 << 13) #define BM_PLL_LOCK (0x1 << 31) struct clk_pllv3 { @@ -32,6 +33,7 @@ struct clk_pllv3 { void __iomem *base; u32 power_bit; bool powerup_set; + u32 enable_bit; u32 div_mask; u32 div_shift; }; @@ -83,6 +85,9 @@ static int clk_pllv3_generic_enable(struct clk *clk) val |= pll->power_bit; else val &= ~pll->power_bit; + + val |= pll->enable_bit; + writel(val, pll->base); return 0; @@ -98,6 +103,9 @@ static int clk_pllv3_generic_disable(struct clk *clk) val &= ~pll->power_bit; else val |= pll->power_bit; + + val &= ~pll->enable_bit; + writel(val, pll->base); return 0; @@ -238,6 +246,7 @@ struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name, return ERR_PTR(-ENOMEM); pll->power_bit = BM_PLL_POWER; + pll->enable_bit = BM_PLL_ENABLE; switch (type) { case IMX_PLLV3_GENERIC: |