Lines Matching refs:rate

22 	u64 rate = parent;  in ccu_nm_calc_rate()  local
24 rate *= n; in ccu_nm_calc_rate()
25 do_div(rate, m); in ccu_nm_calc_rate()
27 return rate; in ccu_nm_calc_rate()
30 static unsigned long ccu_nm_find_best(unsigned long parent, unsigned long rate, in ccu_nm_find_best() argument
42 if (tmp_rate > rate) in ccu_nm_find_best()
45 if ((rate - tmp_rate) < (rate - best_rate)) { in ccu_nm_find_best()
84 unsigned long rate; in ccu_nm_recalc_rate() local
89 rate = ccu_frac_helper_read_rate(&nm->common, &nm->frac); in ccu_nm_recalc_rate()
92 rate /= nm->fixed_post_div; in ccu_nm_recalc_rate()
94 return rate; in ccu_nm_recalc_rate()
112 rate = ccu_sdm_helper_read_rate(&nm->common, &nm->sdm, m, n); in ccu_nm_recalc_rate()
114 rate = ccu_nm_calc_rate(parent_rate, n, m); in ccu_nm_recalc_rate()
117 rate /= nm->fixed_post_div; in ccu_nm_recalc_rate()
119 return rate; in ccu_nm_recalc_rate()
122 static long ccu_nm_round_rate(struct clk_hw *hw, unsigned long rate, in ccu_nm_round_rate() argument
129 rate *= nm->fixed_post_div; in ccu_nm_round_rate()
131 if (rate < nm->min_rate) { in ccu_nm_round_rate()
132 rate = nm->min_rate; in ccu_nm_round_rate()
134 rate /= nm->fixed_post_div; in ccu_nm_round_rate()
135 return rate; in ccu_nm_round_rate()
138 if (nm->max_rate && rate > nm->max_rate) { in ccu_nm_round_rate()
139 rate = nm->max_rate; in ccu_nm_round_rate()
141 rate /= nm->fixed_post_div; in ccu_nm_round_rate()
142 return rate; in ccu_nm_round_rate()
145 if (ccu_frac_helper_has_rate(&nm->common, &nm->frac, rate)) { in ccu_nm_round_rate()
147 rate /= nm->fixed_post_div; in ccu_nm_round_rate()
148 return rate; in ccu_nm_round_rate()
151 if (ccu_sdm_helper_has_rate(&nm->common, &nm->sdm, rate)) { in ccu_nm_round_rate()
153 rate /= nm->fixed_post_div; in ccu_nm_round_rate()
154 return rate; in ccu_nm_round_rate()
162 rate = ccu_nm_find_best(*parent_rate, rate, &_nm); in ccu_nm_round_rate()
165 rate /= nm->fixed_post_div; in ccu_nm_round_rate()
167 return rate; in ccu_nm_round_rate()
170 static int ccu_nm_set_rate(struct clk_hw *hw, unsigned long rate, in ccu_nm_set_rate() argument
180 rate = rate * nm->fixed_post_div; in ccu_nm_set_rate()
182 if (ccu_frac_helper_has_rate(&nm->common, &nm->frac, rate)) { in ccu_nm_set_rate()
195 rate, nm->lock); in ccu_nm_set_rate()
205 if (ccu_sdm_helper_has_rate(&nm->common, &nm->sdm, rate)) { in ccu_nm_set_rate()
206 ccu_sdm_helper_enable(&nm->common, &nm->sdm, rate); in ccu_nm_set_rate()
209 ccu_sdm_helper_get_factors(&nm->common, &nm->sdm, rate, in ccu_nm_set_rate()
213 ccu_nm_find_best(parent_rate, rate, &_nm); in ccu_nm_set_rate()