Lines Matching refs:rate

59 	u64 rate = (u64)parent_rate * m;  in __pll_params_to_rate()  local
64 rate += DIV_ROUND_UP_ULL(frac_rate, in __pll_params_to_rate()
68 return DIV_ROUND_UP_ULL(rate, n); in __pll_params_to_rate()
97 static unsigned int __pll_params_with_frac(unsigned long rate, in __pll_params_with_frac() argument
104 u64 val = (u64)rate * n; in __pll_params_with_frac()
107 if (rate < parent_rate * m / n) in __pll_params_with_frac()
120 static bool meson_clk_pll_is_better(unsigned long rate, in meson_clk_pll_is_better() argument
127 if (abs(now - rate) < abs(best - rate)) in meson_clk_pll_is_better()
131 if (now <= rate && best < now) in meson_clk_pll_is_better()
152 static unsigned int meson_clk_get_pll_range_m(unsigned long rate, in meson_clk_get_pll_range_m() argument
157 u64 val = (u64)rate * n; in meson_clk_get_pll_range_m()
165 static int meson_clk_get_pll_range_index(unsigned long rate, in meson_clk_get_pll_range_index() argument
180 if (rate <= pll->range->min * parent_rate) { in meson_clk_get_pll_range_index()
183 } else if (rate >= pll->range->max * parent_rate) { in meson_clk_get_pll_range_index()
189 *m = meson_clk_get_pll_range_m(rate, parent_rate, *n, pll); in meson_clk_get_pll_range_index()
198 static int meson_clk_get_pll_get_index(unsigned long rate, in meson_clk_get_pll_get_index() argument
206 return meson_clk_get_pll_range_index(rate, parent_rate, in meson_clk_get_pll_get_index()
214 static int meson_clk_get_pll_settings(unsigned long rate, in meson_clk_get_pll_settings() argument
225 ret = meson_clk_get_pll_get_index(rate, parent_rate, in meson_clk_get_pll_settings()
231 if (meson_clk_pll_is_better(rate, best, now, pll)) { in meson_clk_get_pll_settings()
236 if (now == rate) in meson_clk_get_pll_settings()
253 ret = meson_clk_get_pll_settings(req->rate, req->best_parent_rate, in meson_clk_pll_determine_rate()
260 if (!MESON_PARM_APPLICABLE(&pll->frac) || req->rate == round) { in meson_clk_pll_determine_rate()
261 req->rate = round; in meson_clk_pll_determine_rate()
269 frac = __pll_params_with_frac(req->rate, req->best_parent_rate, m, n, pll); in meson_clk_pll_determine_rate()
270 req->rate = __pll_params_to_rate(req->best_parent_rate, m, n, frac, pll); in meson_clk_pll_determine_rate()
370 static int meson_clk_pll_set_rate(struct clk_hw *hw, unsigned long rate, in meson_clk_pll_set_rate() argument
379 if (parent_rate == 0 || rate == 0) in meson_clk_pll_set_rate()
384 ret = meson_clk_get_pll_settings(rate, parent_rate, &m, &n, pll); in meson_clk_pll_set_rate()
396 frac = __pll_params_with_frac(rate, parent_rate, m, n, pll); in meson_clk_pll_set_rate()