Lines Matching refs:parent_rate

64 						unsigned long parent_rate)  in sun6i_ahb1_clk_recalc_rate()  argument
75 parent_rate /= SUN6I_AHB1_PLL6_DIV_GET(reg) + 1; in sun6i_ahb1_clk_recalc_rate()
78 rate = parent_rate >> SUN6I_AHB1_DIV_GET(reg); in sun6i_ahb1_clk_recalc_rate()
84 u8 parent, unsigned long parent_rate) in sun6i_ahb1_clk_round() argument
92 if (parent_rate && rate > parent_rate) in sun6i_ahb1_clk_round()
93 rate = parent_rate; in sun6i_ahb1_clk_round()
95 div = DIV_ROUND_UP(parent_rate, rate); in sun6i_ahb1_clk_round()
120 return (parent_rate / calcm) >> calcp; in sun6i_ahb1_clk_round()
128 unsigned long parent_rate, best = 0, child_rate, best_child_rate = 0; in sun6i_ahb1_clk_determine_rate() local
137 parent_rate = clk_hw_round_rate(parent, req->rate); in sun6i_ahb1_clk_determine_rate()
139 parent_rate = clk_hw_get_rate(parent); in sun6i_ahb1_clk_determine_rate()
142 parent_rate); in sun6i_ahb1_clk_determine_rate()
146 best = parent_rate; in sun6i_ahb1_clk_determine_rate()
162 unsigned long parent_rate) in sun6i_ahb1_clk_set_rate() argument
175 sun6i_ahb1_clk_round(rate, &div, &pre_div, parent, parent_rate); in sun6i_ahb1_clk_set_rate()
249 static void sun4i_get_pll1_factors(u32 *freq, u32 parent_rate, in sun4i_get_pll1_factors() argument
300 static void sun6i_a31_get_pll1_factors(u32 *freq, u32 parent_rate, in sun6i_a31_get_pll1_factors() argument
308 u32 parent_freq_mhz = parent_rate / 1000000; in sun6i_a31_get_pll1_factors()
385 static void sun8i_a23_get_pll1_factors(u32 *freq, u32 parent_rate, in sun8i_a23_get_pll1_factors() argument
433 static void sun4i_get_pll5_factors(u32 *freq, u32 parent_rate, in sun4i_get_pll5_factors() argument
439 div = *freq / parent_rate; in sun4i_get_pll5_factors()
440 *freq = parent_rate * div; in sun4i_get_pll5_factors()
465 static void sun6i_a31_get_pll6_factors(u32 *freq, u32 parent_rate, in sun6i_a31_get_pll6_factors() argument
471 div = *freq / parent_rate; in sun6i_a31_get_pll6_factors()
472 *freq = parent_rate * div; in sun6i_a31_get_pll6_factors()
491 static void sun5i_a13_get_ahb_factors(u32 *freq, u32 parent_rate, in sun5i_a13_get_ahb_factors() argument
497 if (parent_rate < *freq) in sun5i_a13_get_ahb_factors()
498 *freq = parent_rate; in sun5i_a13_get_ahb_factors()
509 div = order_base_2(DIV_ROUND_UP(parent_rate, *freq)); in sun5i_a13_get_ahb_factors()
515 *freq = parent_rate >> div; in sun5i_a13_get_ahb_factors()
530 static void sun4i_get_apb1_factors(u32 *freq, u32 parent_rate, in sun4i_get_apb1_factors() argument
535 if (parent_rate < *freq) in sun4i_get_apb1_factors()
536 *freq = parent_rate; in sun4i_get_apb1_factors()
538 parent_rate = DIV_ROUND_UP(parent_rate, *freq); in sun4i_get_apb1_factors()
541 if (parent_rate > 32) in sun4i_get_apb1_factors()
544 if (parent_rate <= 4) in sun4i_get_apb1_factors()
546 else if (parent_rate <= 8) in sun4i_get_apb1_factors()
548 else if (parent_rate <= 16) in sun4i_get_apb1_factors()
553 calcm = (parent_rate >> calcp) - 1; in sun4i_get_apb1_factors()
555 *freq = (parent_rate >> calcp) / (calcm + 1); in sun4i_get_apb1_factors()
574 static void sun7i_a20_get_out_factors(u32 *freq, u32 parent_rate, in sun7i_a20_get_out_factors() argument
581 if (*freq > parent_rate) in sun7i_a20_get_out_factors()
582 *freq = parent_rate; in sun7i_a20_get_out_factors()
584 div = DIV_ROUND_UP(parent_rate, *freq); in sun7i_a20_get_out_factors()
597 *freq = (parent_rate >> calcp) / calcm; in sun7i_a20_get_out_factors()