Lines Matching refs:rate
61 unsigned long rate = parent_rate / conf->div; in s5_calc_freq() local
68 rate = mult_frac(rate, divt, divb); in s5_calc_freq()
69 rate = roundup(rate, 1000); in s5_calc_freq()
72 return rate; in s5_calc_freq()
75 static void s5_search_fractional(unsigned long rate, in s5_search_fractional() argument
81 ulong cur_offset, best_offset = rate; in s5_search_fractional()
95 cur_offset = abs(rate - conf->freq); in s5_search_fractional()
108 static unsigned long s5_calc_params(unsigned long rate, in s5_calc_params() argument
112 if (parent_rate % rate) { in s5_calc_params()
116 div = DIV_ROUND_CLOSEST_ULL(parent_rate, rate); in s5_calc_params()
117 s5_search_fractional(rate, parent_rate, div, &alt1); in s5_calc_params()
120 if (alt1.freq == rate) { in s5_calc_params()
124 div = parent_rate / rate; in s5_calc_params()
126 s5_search_fractional(rate, parent_rate, div, in s5_calc_params()
129 if (abs(rate - alt1.freq) < in s5_calc_params()
130 abs(rate - alt2.freq)) in s5_calc_params()
139 conf->div = parent_rate / rate; in s5_calc_params()
166 unsigned long rate, in s5_pll_set_rate() argument
174 eff_rate = s5_calc_params(rate, parent_rate, &conf); in s5_pll_set_rate()
175 if (eff_rate != rate) in s5_pll_set_rate()
216 static long s5_pll_round_rate(struct clk_hw *hw, unsigned long rate, in s5_pll_round_rate() argument
221 return s5_calc_params(rate, *parent_rate, &conf); in s5_pll_round_rate()