Lines Matching refs:mdiv
104 static long pll14xx_calc_rate(struct clk_pll14xx *pll, int mdiv, int pdiv,
110 fvco *= (mdiv * 65536 + kdiv);
118 static long pll1443x_calc_kdiv(int mdiv, int pdiv, int sdiv,
123 /* calc kdiv = round(rate * pdiv * 65536 * 2^sdiv / prate) - (mdiv * 65536) */
124 kdiv = ((rate * ((pdiv * 65536) << sdiv) + prate / 2) / prate) - (mdiv * 65536);
133 int mdiv, pdiv, sdiv, kdiv;
154 t->mdiv = tt->mdiv;
162 mdiv = FIELD_GET(MDIV_MASK, pll_div_ctl0);
168 rate_min = pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, KDIV_MIN, prate);
169 rate_max = pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, KDIV_MAX, prate);
172 kdiv = pll1443x_calc_kdiv(mdiv, pdiv, sdiv, rate, prate);
176 fvco = pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, kdiv, prate);
178 t->mdiv = mdiv;
188 /* calc mdiv = round(rate * pdiv * 2^sdiv) / prate) */
189 mdiv = DIV_ROUND_CLOSEST(rate * (pdiv << sdiv), prate);
190 mdiv = clamp(mdiv, 64, 1023);
192 kdiv = pll1443x_calc_kdiv(mdiv, pdiv, sdiv, rate, prate);
193 fvco = pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, kdiv, prate);
200 t->mdiv = mdiv;
211 pr_debug("%s: in=%ld, want=%ld got=%d (pdiv=%d sdiv=%d mdiv=%d kdiv=%d)\n",
213 t->mdiv, t->kdiv);
247 u32 mdiv, pdiv, sdiv, kdiv, pll_div_ctl0, pll_div_ctl1;
250 mdiv = FIELD_GET(MDIV_MASK, pll_div_ctl0);
261 return pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, kdiv, parent_rate);
272 return rate->mdiv != old_mdiv || rate->pdiv != old_pdiv;
321 div_val = FIELD_PREP(MDIV_MASK, rate->mdiv) | FIELD_PREP(PDIV_MASK, rate->pdiv) |
382 div_ctl0 = FIELD_PREP(MDIV_MASK, rate.mdiv) |