Lines Matching refs:rate

138 static int calc_dsor_exp(unsigned long rate, unsigned long realrate)  in calc_dsor_exp()  argument
157 if (realrate <= rate) in calc_dsor_exp()
172 clk->rate = p_rate / dsor; in omap1_ckctl_recalc()
173 return clk->rate; in omap1_ckctl_recalc()
230 int omap1_select_table_rate(struct omap1_clk *clk, unsigned long rate, unsigned long p_rate) in omap1_select_table_rate() argument
236 ref_rate = ck_ref_p->rate; in omap1_select_table_rate()
238 for (ptr = omap1_rate_table; ptr->rate; ptr++) { in omap1_select_table_rate()
246 if (ptr->rate <= rate) in omap1_select_table_rate()
250 if (!ptr->rate) in omap1_select_table_rate()
260 ck_dpll1_p->rate = ptr->pll_rate; in omap1_select_table_rate()
265 int omap1_clk_set_rate_dsp_domain(struct omap1_clk *clk, unsigned long rate, unsigned long p_rate) in omap1_clk_set_rate_dsp_domain() argument
270 dsor_exp = calc_dsor_exp(rate, p_rate); in omap1_clk_set_rate_dsp_domain()
280 clk->rate = p_rate / (1 << dsor_exp); in omap1_clk_set_rate_dsp_domain()
285 long omap1_clk_round_rate_ckctl_arm(struct omap1_clk *clk, unsigned long rate, in omap1_clk_round_rate_ckctl_arm() argument
288 int dsor_exp = calc_dsor_exp(rate, *p_rate); in omap1_clk_round_rate_ckctl_arm()
297 int omap1_clk_set_rate_ckctl_arm(struct omap1_clk *clk, unsigned long rate, unsigned long p_rate) in omap1_clk_set_rate_ckctl_arm() argument
303 dsor_exp = calc_dsor_exp(rate, p_rate); in omap1_clk_set_rate_ckctl_arm()
317 clk->rate = p_rate / (1 << dsor_exp); in omap1_clk_set_rate_ckctl_arm()
324 long omap1_round_to_table_rate(struct omap1_clk *clk, unsigned long rate, unsigned long *p_rate) in omap1_round_to_table_rate() argument
331 ref_rate = ck_ref_p->rate; in omap1_round_to_table_rate()
335 for (ptr = omap1_rate_table; ptr->rate; ptr++) { in omap1_round_to_table_rate()
342 highest_rate = ptr->rate; in omap1_round_to_table_rate()
345 if (ptr->rate <= rate) in omap1_round_to_table_rate()
352 static unsigned calc_ext_dsor(unsigned long rate) in calc_ext_dsor() argument
368 if (rate >= 96000000 / dsor) in calc_ext_dsor()
375 long omap1_round_uart_rate(struct omap1_clk *clk, unsigned long rate, unsigned long *p_rate) in omap1_round_uart_rate() argument
377 return rate > 24000000 ? 48000000 : 12000000; in omap1_round_uart_rate()
380 int omap1_set_uart_rate(struct omap1_clk *clk, unsigned long rate, unsigned long p_rate) in omap1_set_uart_rate() argument
385 if (rate == 12000000) in omap1_set_uart_rate()
387 else if (rate == 48000000) in omap1_set_uart_rate()
400 clk->rate = rate; in omap1_set_uart_rate()
406 int omap1_set_ext_clk_rate(struct omap1_clk *clk, unsigned long rate, unsigned long p_rate) in omap1_set_ext_clk_rate() argument
412 dsor = calc_ext_dsor(rate); in omap1_set_ext_clk_rate()
413 clk->rate = 96000000 / dsor; in omap1_set_ext_clk_rate()
430 static int calc_div_sossi(unsigned long rate, unsigned long p_rate) in calc_div_sossi() argument
435 div = (p_rate + rate - 1) / rate; in calc_div_sossi()
440 long omap1_round_sossi_rate(struct omap1_clk *clk, unsigned long rate, unsigned long *p_rate) in omap1_round_sossi_rate() argument
444 div = calc_div_sossi(rate, *p_rate); in omap1_round_sossi_rate()
453 int omap1_set_sossi_rate(struct omap1_clk *clk, unsigned long rate, unsigned long p_rate) in omap1_set_sossi_rate() argument
459 div = calc_div_sossi(rate, p_rate); in omap1_set_sossi_rate()
471 clk->rate = p_rate / (div + 1); in omap1_set_sossi_rate()
478 long omap1_round_ext_clk_rate(struct omap1_clk *clk, unsigned long rate, unsigned long *p_rate) in omap1_round_ext_clk_rate() argument
480 return 96000000 / calc_ext_dsor(rate); in omap1_round_ext_clk_rate()
498 clk-> rate = 96000000 / dsor; in omap1_init_ext_clk()
705 return clk->rate; in omap1_clk_recalc_rate()
708 static long omap1_clk_round_rate(struct clk_hw *hw, unsigned long rate, unsigned long *p_rate) in omap1_clk_round_rate() argument
713 return clk->round_rate(clk, rate, p_rate); in omap1_clk_round_rate()
718 static int omap1_clk_set_rate(struct clk_hw *hw, unsigned long rate, unsigned long p_rate) in omap1_clk_set_rate() argument
724 ret = clk->set_rate(clk, rate, p_rate); in omap1_clk_set_rate()