From 6714a8fa7d587b413a3fd02e9a46c0fd9ad51b83 Mon Sep 17 00:00:00 2001 From: Gianfranco Mariotti <gianfranco.mariotti@seco.com> Date: Mon, 6 May 2024 16:50:21 +0200 Subject: [PATCH] [DRIVER] clk: imx: pll14xx: fix and use macros for FDIV_CTL regs Correct the definitions of "Divide and Fraction Data Control" registers, and use them in the appropriate code sections. --- drivers/clk/imx/clk-pll14xx.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/clk/imx/clk-pll14xx.c b/drivers/clk/imx/clk-pll14xx.c index f7cfc5fead90f5..1303e2f5e0db89 100644 --- a/drivers/clk/imx/clk-pll14xx.c +++ b/drivers/clk/imx/clk-pll14xx.c @@ -15,7 +15,8 @@ #include "clk.h" #define GNRL_CTL 0x0 -#define DIV_CTL 0x4 +#define FDIV_CTL0 0x4 +#define FDIV_CTL1 0x8 #define LOCK_STATUS BIT(31) #define LOCK_SEL_MASK BIT(29) #define CLKE_MASK BIT(11) @@ -122,7 +123,7 @@ static unsigned long clk_pll1416x_recalc_rate(struct clk_hw *hw, u32 mdiv, pdiv, sdiv, pll_div; u64 fvco = parent_rate; - pll_div = readl_relaxed(pll->base + 4); + pll_div = readl_relaxed(pll->base + FDIV_CTL0); mdiv = (pll_div & MDIV_MASK) >> MDIV_SHIFT; pdiv = (pll_div & PDIV_MASK) >> PDIV_SHIFT; sdiv = (pll_div & SDIV_MASK) >> SDIV_SHIFT; @@ -144,8 +145,8 @@ static unsigned long clk_pll1443x_recalc_rate(struct clk_hw *hw, long rate = 0; int i; - pll_div_ctl0 = readl_relaxed(pll->base + 4); - pll_div_ctl1 = readl_relaxed(pll->base + 8); + pll_div_ctl0 = readl_relaxed(pll->base + FDIV_CTL0); + pll_div_ctl1 = readl_relaxed(pll->base + FDIV_CTL1); mdiv = (pll_div_ctl0 & MDIV_MASK) >> MDIV_SHIFT; pdiv = (pll_div_ctl0 & PDIV_MASK) >> PDIV_SHIFT; sdiv = (pll_div_ctl0 & SDIV_MASK) >> SDIV_SHIFT; @@ -206,12 +207,12 @@ static int clk_pll1416x_set_rate(struct clk_hw *hw, unsigned long drate, return -EINVAL; } - tmp = readl_relaxed(pll->base + 4); + tmp = readl_relaxed(pll->base + FDIV_CTL0); if (!clk_pll14xx_mp_change(rate, tmp)) { tmp &= ~(SDIV_MASK) << SDIV_SHIFT; tmp |= rate->sdiv << SDIV_SHIFT; - writel_relaxed(tmp, pll->base + 4); + writel_relaxed(tmp, pll->base + FDIV_CTL0); return 0; } @@ -231,7 +232,7 @@ static int clk_pll1416x_set_rate(struct clk_hw *hw, unsigned long drate, div_val = (rate->mdiv << MDIV_SHIFT) | (rate->pdiv << PDIV_SHIFT) | (rate->sdiv << SDIV_SHIFT); - writel_relaxed(div_val, pll->base + 0x4); + writel_relaxed(div_val, pll->base + FDIV_CTL0); /* * According to SPEC, t3 - t2 need to be greater than @@ -272,15 +273,15 @@ static int clk_pll1443x_set_rate(struct clk_hw *hw, unsigned long drate, return -EINVAL; } - tmp = readl_relaxed(pll->base + 4); + tmp = readl_relaxed(pll->base + FDIV_CTL0); if (!clk_pll14xx_mp_change(rate, tmp)) { tmp &= ~(SDIV_MASK) << SDIV_SHIFT; tmp |= rate->sdiv << SDIV_SHIFT; - writel_relaxed(tmp, pll->base + 4); + writel_relaxed(tmp, pll->base + FDIV_CTL0); tmp = rate->kdiv << KDIV_SHIFT; - writel_relaxed(tmp, pll->base + 8); + writel_relaxed(tmp, pll->base + FDIV_CTL1); return 0; } @@ -296,8 +297,8 @@ static int clk_pll1443x_set_rate(struct clk_hw *hw, unsigned long drate, div_val = (rate->mdiv << MDIV_SHIFT) | (rate->pdiv << PDIV_SHIFT) | (rate->sdiv << SDIV_SHIFT); - writel_relaxed(div_val, pll->base + 0x4); - writel_relaxed(rate->kdiv << KDIV_SHIFT, pll->base + 0x8); + writel_relaxed(div_val, pll->base + FDIV_CTL0); + writel_relaxed(rate->kdiv << KDIV_SHIFT, pll->base + FDIV_CTL1); /* * According to SPEC, t3 - t2 need to be greater than @@ -381,9 +382,9 @@ void clk_set_delta_k(struct clk_hw *hw, short int delta_k) short int k; u32 val; - val = readl_relaxed(pll->base + 8); + val = readl_relaxed(pll->base + FDIV_CTL1); k = (val & KDIV_MASK) + delta_k; - writel_relaxed(k << KDIV_SHIFT, pll->base + 8); + writel_relaxed(k << KDIV_SHIFT, pll->base + FDIV_CTL1); } void clk_get_pll_setting(struct clk_hw *hw, u32 *pll_div_ctrl0, @@ -391,8 +392,8 @@ void clk_get_pll_setting(struct clk_hw *hw, u32 *pll_div_ctrl0, { struct clk_pll14xx *pll = to_clk_pll14xx(hw); - *pll_div_ctrl0 = readl_relaxed(pll->base + 4); - *pll_div_ctrl1 = readl_relaxed(pll->base + 8); + *pll_div_ctrl0 = readl_relaxed(pll->base + FDIV_CTL0); + *pll_div_ctrl1 = readl_relaxed(pll->base + FDIV_CTL1); } static const struct clk_ops clk_pll1416x_ops = { -- GitLab