Lines Matching refs:pll
12 #define pr_fmt(fmt) "clk-vco-pll: " fmt
31 * pll_rate = pll/2^p
33 * vco and pll are very closely bound to each other, "vco needs to program:
34 * mode, m & n" and "pll needs to program p", both share common enable/disable
37 * clk_register_vco_pll() registers instances of both vco & pll.
38 * CLK_SET_RATE_PARENT flag is forced for pll, as it will always pass its
68 /* Calculates pll clk rate for specific value of mode, m, n and p */
87 struct clk_pll *pll = to_clk_pll(hw);
93 pr_err("%s: prate is must for pll clk\n", __func__);
97 for (*index = 0; *index < pll->vco->rtbl_cnt; (*index)++) {
100 *prate = pll_calc_rate(pll->vco->rtbl, vco_parent_rate, *index,
127 struct clk_pll *pll = to_clk_pll(hw);
131 if (pll->vco->lock)
132 spin_lock_irqsave(pll->vco->lock, flags);
134 p = readl_relaxed(pll->vco->cfg_reg);
136 if (pll->vco->lock)
137 spin_unlock_irqrestore(pll->vco->lock, flags);
147 struct clk_pll *pll = to_clk_pll(hw);
148 struct pll_rate_tbl *rtbl = pll->vco->rtbl;
154 if (pll->vco->lock)
155 spin_lock_irqsave(pll->vco->lock, flags);
157 val = readl_relaxed(pll->vco->cfg_reg);
160 writel_relaxed(val, pll->vco->cfg_reg);
162 if (pll->vco->lock)
163 spin_unlock_irqrestore(pll->vco->lock, flags);
283 struct clk_pll *pll;
300 pll = kzalloc(sizeof(*pll), GFP_KERNEL);
301 if (!pll) {
302 pr_err("could not allocate pll clk\n");
314 pll->vco = vco;
315 pll->hw.init = &pll_init;
346 tpll_clk = clk_register(NULL, &pll->hw);
356 kfree(pll);
360 pr_err("Failed to register vco pll clock\n");