/openbmc/linux/drivers/clk/imx/ |
H A D | clk-pllv3.c | 117 return (div == 1) ? parent_rate * 22 : parent_rate * 20; in clk_pllv3_recalc_rate() 125 return (rate >= parent_rate * 22) ? parent_rate * 22 : in clk_pllv3_round_rate() 126 parent_rate * 20; in clk_pllv3_round_rate() 130 unsigned long parent_rate) in clk_pllv3_set_rate() argument 186 unsigned long parent_rate) in clk_pllv3_sys_set_rate() argument 246 mfd = parent_rate; in clk_pllv3_av_round_rate() 248 div = rate / parent_rate; in clk_pllv3_av_round_rate() 254 temp64 = (u64)parent_rate; in clk_pllv3_av_round_rate() 276 mfd = parent_rate; in clk_pllv3_av_set_rate() 278 div = rate / parent_rate; in clk_pllv3_av_set_rate() [all …]
|
H A D | clk-pllv4.c | 79 unsigned long parent_rate) in clk_pllv4_recalc_rate() argument 91 temp64 = parent_rate; in clk_pllv4_recalc_rate() 111 do_div(temp64, parent_rate); in clk_pllv4_round_rate() 134 if (parent_rate <= MAX_MFD) in clk_pllv4_round_rate() 135 mfd = parent_rate; in clk_pllv4_round_rate() 139 do_div(temp64, parent_rate); in clk_pllv4_round_rate() 151 temp64 = (u64)parent_rate; in clk_pllv4_round_rate() 184 mult = rate / parent_rate; in clk_pllv4_set_rate() 189 if (parent_rate <= MAX_MFD) in clk_pllv4_set_rate() 190 mfd = parent_rate; in clk_pllv4_set_rate() [all …]
|
H A D | clk-frac-pll.c | 97 unsigned long parent_rate) in clk_pll_recalc_rate() argument 101 u64 temp64 = parent_rate; in clk_pll_recalc_rate() 125 u64 parent_rate = *prate; in clk_pll_round_rate() local 129 parent_rate *= 8; in clk_pll_round_rate() 132 do_div(temp64, parent_rate); in clk_pll_round_rate() 136 do_div(temp64, parent_rate); in clk_pll_round_rate() 139 temp64 = parent_rate; in clk_pll_round_rate() 163 parent_rate *= 8; in clk_pll_set_rate() 165 divfi = rate / parent_rate; in clk_pll_set_rate() 166 temp64 = parent_rate * divfi; in clk_pll_set_rate() [all …]
|
/openbmc/linux/drivers/clk/at91/ |
H A D | clk-h32mx.c | 29 unsigned long parent_rate) in clk_sama5d4_h32mx_recalc_rate() argument 36 return parent_rate / 2; in clk_sama5d4_h32mx_recalc_rate() 38 if (parent_rate > H32MX_MAX_FREQ) in clk_sama5d4_h32mx_recalc_rate() 40 return parent_rate; in clk_sama5d4_h32mx_recalc_rate() 48 if (rate > *parent_rate) in clk_sama5d4_h32mx_round_rate() 49 return *parent_rate; in clk_sama5d4_h32mx_round_rate() 50 div = *parent_rate / 2; in clk_sama5d4_h32mx_round_rate() 57 return *parent_rate; in clk_sama5d4_h32mx_round_rate() 61 unsigned long parent_rate) in clk_sama5d4_h32mx_set_rate() argument 66 if (parent_rate != rate && (parent_rate / 2) != rate) in clk_sama5d4_h32mx_set_rate() [all …]
|
H A D | clk-plldiv.c | 23 unsigned long parent_rate) in clk_plldiv_recalc_rate() argument 31 return parent_rate / 2; in clk_plldiv_recalc_rate() 33 return parent_rate; in clk_plldiv_recalc_rate() 37 unsigned long *parent_rate) in clk_plldiv_round_rate() argument 41 if (rate > *parent_rate) in clk_plldiv_round_rate() 42 return *parent_rate; in clk_plldiv_round_rate() 43 div = *parent_rate / 2; in clk_plldiv_round_rate() 47 if (rate - div < *parent_rate - rate) in clk_plldiv_round_rate() 50 return *parent_rate; in clk_plldiv_round_rate() 54 unsigned long parent_rate) in clk_plldiv_set_rate() argument [all …]
|
H A D | clk-audio-pll.c | 188 unsigned long parent_rate) in clk_audio_pll_pad_recalc_rate() argument 217 unsigned long parent_rate, in clk_audio_pll_frac_compute_frac() argument 227 rem = do_div(tmp, parent_rate); in clk_audio_pll_frac_compute_frac() 274 unsigned long *parent_rate) in clk_audio_pll_pad_round_rate() argument 286 rate, *parent_rate); in clk_audio_pll_pad_round_rate() 325 unsigned long *parent_rate) in clk_audio_pll_pmc_round_rate() argument 336 rate, *parent_rate); in clk_audio_pll_pmc_round_rate() 372 parent_rate); in clk_audio_pll_frac_set_rate() 394 rate, parent_rate); in clk_audio_pll_pad_set_rate() 399 tmp_div = parent_rate / rate; in clk_audio_pll_pad_set_rate() [all …]
|
/openbmc/linux/drivers/clk/actions/ |
H A D | owl-factor.c | 79 parent_rate = *best_parent_rate; in owl_clk_val_best() 106 *best_parent_rate = parent_rate; in owl_clk_val_best() 122 unsigned long *parent_rate) in owl_factor_helper_round_rate() argument 130 return *parent_rate * mul / div; in owl_factor_helper_round_rate() 134 unsigned long *parent_rate) in owl_factor_round_rate() argument 140 rate, parent_rate); in owl_factor_round_rate() 145 unsigned long parent_rate) in owl_factor_helper_recalc_rate() argument 164 return parent_rate; in owl_factor_helper_recalc_rate() 174 unsigned long parent_rate) in owl_factor_recalc_rate() argument 186 unsigned long parent_rate) in owl_factor_helper_set_rate() argument [all …]
|
H A D | owl-divider.c | 19 unsigned long *parent_rate) in owl_divider_helper_round_rate() argument 21 return divider_round_rate(&common->hw, rate, parent_rate, in owl_divider_helper_round_rate() 27 unsigned long *parent_rate) in owl_divider_round_rate() argument 32 rate, parent_rate); in owl_divider_round_rate() 37 unsigned long parent_rate) in owl_divider_helper_recalc_rate() argument 46 return divider_recalc_rate(&common->hw, parent_rate, in owl_divider_helper_recalc_rate() 53 unsigned long parent_rate) in owl_divider_recalc_rate() argument 58 &div->div_hw, parent_rate); in owl_divider_recalc_rate() 64 unsigned long parent_rate) in owl_divider_helper_set_rate() argument 82 unsigned long parent_rate) in owl_divider_set_rate() argument [all …]
|
H A D | owl-composite.c | 72 unsigned long parent_rate) in owl_comp_div_recalc_rate() argument 77 parent_rate); in owl_comp_div_recalc_rate() 81 unsigned long parent_rate) in owl_comp_div_set_rate() argument 86 rate, parent_rate); in owl_comp_div_set_rate() 106 unsigned long parent_rate) in owl_comp_fact_recalc_rate() argument 112 parent_rate); in owl_comp_fact_recalc_rate() 116 unsigned long parent_rate) in owl_comp_fact_set_rate() argument 122 rate, parent_rate); in owl_comp_fact_set_rate() 126 unsigned long *parent_rate) in owl_comp_fix_fact_round_rate() argument 135 unsigned long parent_rate) in owl_comp_fix_fact_recalc_rate() argument [all …]
|
/openbmc/linux/drivers/clk/analogbits/ |
H A D | wrpll-cln28hpc.c | 188 unsigned long parent_rate) in __wrpll_update_parent_rate() argument 192 if (parent_rate > MAX_INPUT_FREQ || parent_rate < MIN_POST_DIVR_FREQ) in __wrpll_update_parent_rate() 195 c->parent_rate = parent_rate; in __wrpll_update_parent_rate() 226 unsigned long parent_rate) in wrpll_configure_for_rate() argument 240 if (parent_rate != c->parent_rate) { in wrpll_configure_for_rate() 241 if (__wrpll_update_parent_rate(c, parent_rate)) { in wrpll_configure_for_rate() 251 if (target_rate == parent_rate) { in wrpll_configure_for_rate() 281 post_divr_freq = div_u64(parent_rate, r); in wrpll_configure_for_rate() 305 post_divr_freq = div_u64(parent_rate, best_r); in wrpll_configure_for_rate() 335 unsigned long parent_rate) in wrpll_calc_output_rate() argument [all …]
|
/openbmc/linux/drivers/clk/ |
H A D | clk-multiplier.c | 33 unsigned long parent_rate) in __get_mult() argument 36 return DIV_ROUND_CLOSEST(rate, parent_rate); in __get_mult() 38 return rate / parent_rate; in __get_mult() 42 unsigned long parent_rate) in clk_multiplier_recalc_rate() argument 53 return parent_rate * val; in clk_multiplier_recalc_rate() 101 parent_rate = clk_hw_round_rate(clk_hw_get_parent(hw), in __bestmult() 103 current_rate = parent_rate * i; in __bestmult() 108 *best_parent_rate = parent_rate; in __bestmult() 116 unsigned long *parent_rate) in clk_multiplier_round_rate() argument 122 return *parent_rate * factor; in clk_multiplier_round_rate() [all …]
|
H A D | clk-loongson2.c | 84 unsigned long parent_rate) in loongson2_node_recalc_rate() argument 94 unsigned long parent_rate) in loongson2_ddr_recalc_rate() argument 104 unsigned long parent_rate) in loongson2_dc_recalc_rate() argument 114 unsigned long parent_rate) in loongson2_pix0_recalc_rate() argument 124 unsigned long parent_rate) in loongson2_pix1_recalc_rate() argument 147 unsigned long parent_rate) in loongson2_boot_recalc_rate() argument 149 return loongson2_calc_rate(parent_rate, in loongson2_boot_recalc_rate() 159 unsigned long parent_rate) in loongson2_apb_recalc_rate() argument 161 return loongson2_calc_rate(parent_rate, in loongson2_apb_recalc_rate() 171 unsigned long parent_rate) in loongson2_usb_recalc_rate() argument [all …]
|
H A D | clk-vt8500.c | 115 unsigned long parent_rate) in vt8500_dclk_recalc_rate() argument 128 return parent_rate / div; in vt8500_dclk_recalc_rate() 158 unsigned long parent_rate) in vt8500_dclk_set_rate() argument 167 divisor = parent_rate / rate; in vt8500_dclk_set_rate() 356 if ((rate < parent_rate * 4) || (rate > parent_rate * 62)) { in vt8500_find_pll_bits() 362 if (rate <= parent_rate * 31) in vt8500_find_pll_bits() 407 rate_err = O1 % parent_rate; in wm8650_find_pll_bits() 409 *multiplier = O1 / parent_rate; in wm8650_find_pll_bits() 513 tclk = parent_rate * ((mul + 1) * 2) / in wm8850_find_pll_bits() 547 unsigned long parent_rate) in vtwm_pll_set_rate() argument [all …]
|
H A D | clk-cdce925.c | 101 unsigned long parent_rate) in cdce925_pll_recalc_rate() argument 116 if (rate <= parent_rate) { in cdce925_pll_find_rate() 118 rate = parent_rate; in cdce925_pll_find_rate() 128 g = gcd(rate, parent_rate); in cdce925_pll_find_rate() 129 um = parent_rate / g; in cdce925_pll_find_rate() 147 unsigned long *parent_rate) in cdce925_pll_round_rate() argument 156 unsigned long parent_rate) in cdce925_pll_set_rate() argument 172 if (rate < parent_rate) { in cdce925_pll_set_rate() 174 rate, parent_rate); in cdce925_pll_set_rate() 385 if (rate >= parent_rate) in cdce925_calc_divider() [all …]
|
H A D | clk-sparx5.c | 61 unsigned long rate = parent_rate / conf->div; in s5_calc_freq() 76 unsigned long parent_rate, in s5_search_fractional() argument 109 unsigned long parent_rate, in s5_calc_params() argument 112 if (parent_rate % 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() 139 conf->div = parent_rate / rate; in s5_calc_params() 167 unsigned long parent_rate) in s5_pll_set_rate() argument 193 unsigned long parent_rate) in s5_pll_recalc_rate() argument 208 conf.freq = s5_calc_freq(parent_rate, &conf); in s5_pll_recalc_rate() [all …]
|
/openbmc/u-boot/drivers/clk/sifive/ |
H A D | wrpll-cln28hpc.c | 196 unsigned long parent_rate) in __wrpll_update_parent_rate() argument 200 if (parent_rate > MAX_INPUT_FREQ || parent_rate < MIN_POST_DIVR_FREQ) in __wrpll_update_parent_rate() 203 c->_parent_rate = parent_rate; in __wrpll_update_parent_rate() 242 unsigned long parent_rate) in analogbits_wrpll_configure_for_rate() argument 270 if (parent_rate != c->_parent_rate) { in analogbits_wrpll_configure_for_rate() 271 if (__wrpll_update_parent_rate(c, parent_rate)) { in analogbits_wrpll_configure_for_rate() 281 if (target_rate == parent_rate) { in analogbits_wrpll_configure_for_rate() 311 post_divr_freq = div_u64(parent_rate, r); in analogbits_wrpll_configure_for_rate() 335 post_divr_freq = div_u64(parent_rate, best_r); in analogbits_wrpll_configure_for_rate() 359 unsigned long parent_rate) in analogbits_wrpll_calc_output_rate() argument [all …]
|
/openbmc/linux/drivers/clk/nuvoton/ |
H A D | clk-ma35d1-pll.c | 82 unsigned long parent_rate) in ma35d1_calc_smic_pll_freq() argument 88 return parent_rate; in ma35d1_calc_smic_pll_freq() 94 pll_freq = (u64)parent_rate * n; in ma35d1_calc_smic_pll_freq() 105 return parent_rate; in ma35d1_calc_pll_freq() 112 pll_freq = (u64)parent_rate * n; in ma35d1_calc_pll_freq() 148 tmp = div_u64(parent_rate, m); in ma35d1_pll_find_closest() 186 unsigned long parent_rate) in ma35d1_clk_pll_set_rate() argument 193 if (parent_rate < PLL_FREF_MIN_FREQ || parent_rate > PLL_FREF_MAX_FREQ) in ma35d1_clk_pll_set_rate() 227 if (parent_rate < PLL_FREF_MIN_FREQ || parent_rate > PLL_FREF_MAX_FREQ) in ma35d1_clk_pll_recalc_rate() 248 unsigned long *parent_rate) in ma35d1_clk_pll_round_rate() argument [all …]
|
/openbmc/linux/drivers/clk/sprd/ |
H A D | div.c | 13 unsigned long *parent_rate) in sprd_div_round_rate() argument 17 return divider_round_rate(&cd->common.hw, rate, parent_rate, NULL, in sprd_div_round_rate() 23 unsigned long parent_rate) in sprd_div_helper_recalc_rate() argument 32 return divider_recalc_rate(&common->hw, parent_rate, val, NULL, 0, in sprd_div_helper_recalc_rate() 38 unsigned long parent_rate) in sprd_div_recalc_rate() argument 42 return sprd_div_helper_recalc_rate(&cd->common, &cd->div, parent_rate); in sprd_div_recalc_rate() 48 unsigned long parent_rate) in sprd_div_helper_set_rate() argument 53 val = divider_get_val(rate, parent_rate, NULL, in sprd_div_helper_set_rate() 68 unsigned long parent_rate) in sprd_div_set_rate() argument 73 rate, parent_rate); in sprd_div_set_rate()
|
/openbmc/linux/drivers/clk/meson/ |
H A D | clk-pll.c | 59 u64 rate = (u64)parent_rate * m; in __pll_params_to_rate() 72 unsigned long parent_rate) in meson_clk_pll_recalc_rate() argument 98 unsigned long parent_rate, in __pll_params_with_frac() argument 107 if (rate < parent_rate * m / n) in __pll_params_with_frac() 153 unsigned long parent_rate, in meson_clk_get_pll_range_m() argument 162 return div_u64(val, parent_rate); in meson_clk_get_pll_range_m() 166 unsigned long parent_rate, in meson_clk_get_pll_range_index() argument 199 unsigned long parent_rate, in meson_clk_get_pll_get_index() argument 215 unsigned long parent_rate, in meson_clk_get_pll_settings() argument 404 unsigned long parent_rate) in meson_clk_pll_set_rate() argument [all …]
|
/openbmc/linux/drivers/clk/sunxi/ |
H A D | clk-sun9i-cpus.c | 53 unsigned long parent_rate) in sun9i_a80_cpus_clk_recalc_rate() argument 64 parent_rate /= SUN9I_CPUS_PLL4_DIV_GET(reg) + 1; in sun9i_a80_cpus_clk_recalc_rate() 73 u8 parent, unsigned long parent_rate) in sun9i_a80_cpus_clk_round() argument 81 if (parent_rate && rate > parent_rate) in sun9i_a80_cpus_clk_round() 82 rate = parent_rate; in sun9i_a80_cpus_clk_round() 84 div = DIV_ROUND_UP(parent_rate, rate); in sun9i_a80_cpus_clk_round() 110 return parent_rate / pre_div / div; in sun9i_a80_cpus_clk_round() 130 parent_rate = clk_hw_get_rate(parent); in sun9i_a80_cpus_clk_determine_rate() 133 parent_rate); in sun9i_a80_cpus_clk_determine_rate() 137 best = parent_rate; in sun9i_a80_cpus_clk_determine_rate() [all …]
|
H A D | clk-sun9i-core.c | 103 if (req->parent_rate < req->rate) in sun9i_a80_get_gt_factors() 104 req->rate = req->parent_rate; in sun9i_a80_get_gt_factors() 106 div = DIV_ROUND_UP(req->parent_rate, req->rate); in sun9i_a80_get_gt_factors() 112 req->rate = req->parent_rate / div; in sun9i_a80_get_gt_factors() 158 if (req->parent_rate < req->rate) in sun9i_a80_get_ahb_factors() 159 req->rate = req->parent_rate; in sun9i_a80_get_ahb_factors() 167 req->rate = req->parent_rate >> _p; in sun9i_a80_get_ahb_factors() 238 if (req->parent_rate < req->rate) in sun9i_a80_get_apb1_factors() 239 req->rate = req->parent_rate; in sun9i_a80_get_apb1_factors() 241 div = DIV_ROUND_UP(req->parent_rate, req->rate); in sun9i_a80_get_apb1_factors() [all …]
|
/openbmc/linux/drivers/clk/microchip/ |
H A D | clk-core.c | 131 div = parent_rate / rate; in calc_best_divided_rate() 166 unsigned long parent_rate) in pbclk_set_rate() argument 306 rate64 = parent_rate; in roclk_calc_rate() 312 rate64 = parent_rate; in roclk_calc_rate() 318 unsigned long parent_rate, in roclk_calc_div_trim() argument 335 if (parent_rate <= rate) { in roclk_calc_div_trim() 342 frac = parent_rate; in roclk_calc_div_trim() 608 parent_rate /= pll->idiv; in spll_calc_mult_div() 612 rate64 = parent_rate; in spll_calc_mult_div() 780 return parent_rate / div; in sclk_get_rate() [all …]
|
/openbmc/linux/drivers/clk/sunxi-ng/ |
H A D | ccu_mp.c | 49 unsigned long parent_rate, now; in ccu_mp_find_best_with_parent_adj() local 82 now = parent_rate / div; in ccu_mp_find_best_with_parent_adj() 86 *parent = parent_rate; in ccu_mp_find_best_with_parent_adj() 99 unsigned long *parent_rate, in ccu_mp_round_rate() argument 148 unsigned long parent_rate) in ccu_mp_recalc_rate() argument 157 parent_rate); in ccu_mp_recalc_rate() 170 rate = (parent_rate >> p) / m; in ccu_mp_recalc_rate() 187 unsigned long parent_rate) in ccu_mp_set_rate() argument 197 parent_rate); in ccu_mp_set_rate() 269 unsigned long parent_rate) in ccu_mp_mmc_recalc_rate() argument [all …]
|
/openbmc/linux/drivers/clk/bcm/ |
H A D | clk-iproc-asiu.c | 69 unsigned long parent_rate) in iproc_asiu_clk_recalc_rate() argument 76 if (parent_rate == 0) { in iproc_asiu_clk_recalc_rate() 84 clk->rate = parent_rate; in iproc_asiu_clk_recalc_rate() 85 return parent_rate; in iproc_asiu_clk_recalc_rate() 109 if (rate == *parent_rate) in iproc_asiu_clk_round_rate() 110 return *parent_rate; in iproc_asiu_clk_round_rate() 114 return *parent_rate; in iproc_asiu_clk_round_rate() 116 return *parent_rate / div; in iproc_asiu_clk_round_rate() 120 unsigned long parent_rate) in iproc_asiu_clk_set_rate() argument 127 if (rate == 0 || parent_rate == 0) in iproc_asiu_clk_set_rate() [all …]
|
/openbmc/linux/drivers/clk/mstar/ |
H A D | clk-msc313-cpupll.c | 117 static unsigned long msc313_cpupll_frequencyforreg(u32 reg, unsigned long parent_rate) in msc313_cpupll_frequencyforreg() argument 119 unsigned long long prescaled = ((unsigned long long)parent_rate) * MULTIPLIER; in msc313_cpupll_frequencyforreg() 126 static u32 msc313_cpupll_regforfrequecy(unsigned long rate, unsigned long parent_rate) in msc313_cpupll_regforfrequecy() argument 128 unsigned long long prescaled = ((unsigned long long)parent_rate) * MULTIPLIER; in msc313_cpupll_regforfrequecy() 135 static unsigned long msc313_cpupll_recalc_rate(struct clk_hw *hw, unsigned long parent_rate) in msc313_cpupll_recalc_rate() argument 140 parent_rate); in msc313_cpupll_recalc_rate() 144 unsigned long *parent_rate) in msc313_cpupll_round_rate() argument 146 u32 reg = msc313_cpupll_regforfrequecy(rate, *parent_rate); in msc313_cpupll_round_rate() 147 long rounded = msc313_cpupll_frequencyforreg(reg, *parent_rate); in msc313_cpupll_round_rate() 154 rounded = msc313_cpupll_frequencyforreg(reg, *parent_rate); in msc313_cpupll_round_rate() [all …]
|