Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6961e68 authored by Cyril Chemparathy's avatar Cyril Chemparathy Committed by Kevin Hilman
Browse files

Davinci: configurable pll divider mask



This patch allows socs to override the divider ratio mask by setting an
optional field (div_ratio_mask) in the pll_data structure.

Signed-off-by: default avatarCyril Chemparathy <cyril@ti.com>
Tested-by: default avatarSandeep Paulraj <s-paulraj@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent ce100669
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -279,7 +279,7 @@ static unsigned long clk_sysclk_recalc(struct clk *clk)

	v = __raw_readl(pll->base + clk->div_reg);
	if (v & PLLDIV_EN) {
		plldiv = (v & PLLDIV_RATIO_MASK) + 1;
		plldiv = (v & pll->div_ratio_mask) + 1;
		if (plldiv)
			rate /= plldiv;
	}
@@ -319,7 +319,7 @@ static unsigned long clk_pllclk_recalc(struct clk *clk)
	if (pll->flags & PLL_HAS_PREDIV) {
		prediv = __raw_readl(pll->base + PREDIV);
		if (prediv & PLLDIV_EN)
			prediv = (prediv & PLLDIV_RATIO_MASK) + 1;
			prediv = (prediv & pll->div_ratio_mask) + 1;
		else
			prediv = 1;
	}
@@ -331,7 +331,7 @@ static unsigned long clk_pllclk_recalc(struct clk *clk)
	if (pll->flags & PLL_HAS_POSTDIV) {
		postdiv = __raw_readl(pll->base + POSTDIV);
		if (postdiv & PLLDIV_EN)
			postdiv = (postdiv & PLLDIV_RATIO_MASK) + 1;
			postdiv = (postdiv & pll->div_ratio_mask) + 1;
		else
			postdiv = 1;
	}
@@ -458,6 +458,9 @@ int __init davinci_clk_init(struct clk_lookup *clocks)
				clk->recalc = clk_leafclk_recalc;
		}

		if (clk->pll_data && !clk->pll_data->div_ratio_mask)
			clk->pll_data->div_ratio_mask = PLLDIV_RATIO_MASK;

		if (clk->recalc)
			clk->rate = clk->recalc(clk);

+1 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ struct pll_data {
	u32 num;
	u32 flags;
	u32 input_rate;
	u32 div_ratio_mask;
};
#define PLL_HAS_PREDIV          0x01
#define PLL_HAS_POSTDIV         0x02