Lines Matching refs:rate
270 unsigned long rate; in si5351_clkin_recalc_rate() local
273 rate = parent_rate; in si5351_clkin_recalc_rate()
276 rate /= 8; in si5351_clkin_recalc_rate()
279 rate /= 4; in si5351_clkin_recalc_rate()
282 rate /= 2; in si5351_clkin_recalc_rate()
291 __func__, (1 << (idiv >> 6)), rate); in si5351_clkin_recalc_rate()
293 return rate; in si5351_clkin_recalc_rate()
326 static int si5351_vxco_set_rate(struct clk_hw *hw, unsigned long rate, in si5351_vxco_set_rate() argument
421 unsigned long long rate; in si5351_pll_recalc_rate() local
430 rate = hwdata->params.p1 * hwdata->params.p3; in si5351_pll_recalc_rate()
431 rate += 512 * hwdata->params.p3; in si5351_pll_recalc_rate()
432 rate += hwdata->params.p2; in si5351_pll_recalc_rate()
433 rate *= parent_rate; in si5351_pll_recalc_rate()
434 do_div(rate, 128 * hwdata->params.p3); in si5351_pll_recalc_rate()
440 parent_rate, (unsigned long)rate); in si5351_pll_recalc_rate()
442 return (unsigned long)rate; in si5351_pll_recalc_rate()
445 static long si5351_pll_round_rate(struct clk_hw *hw, unsigned long rate, in si5351_pll_round_rate() argument
453 if (rate < SI5351_PLL_VCO_MIN) in si5351_pll_round_rate()
454 rate = SI5351_PLL_VCO_MIN; in si5351_pll_round_rate()
455 if (rate > SI5351_PLL_VCO_MAX) in si5351_pll_round_rate()
456 rate = SI5351_PLL_VCO_MAX; in si5351_pll_round_rate()
459 a = rate / *parent_rate; in si5351_pll_round_rate()
462 rate = *parent_rate * SI5351_PLL_A_MIN; in si5351_pll_round_rate()
464 rate = *parent_rate * SI5351_PLL_A_MAX; in si5351_pll_round_rate()
468 lltmp = rate % (*parent_rate); in si5351_pll_round_rate()
491 rate = (unsigned long)lltmp; in si5351_pll_round_rate()
492 rate += *parent_rate * a; in si5351_pll_round_rate()
497 *parent_rate, rate); in si5351_pll_round_rate()
499 return rate; in si5351_pll_round_rate()
502 static int si5351_pll_set_rate(struct clk_hw *hw, unsigned long rate, in si5351_pll_set_rate() argument
527 parent_rate, rate); in si5351_pll_set_rate()
605 unsigned long long rate; in si5351_msynth_recalc_rate() local
615 rate = parent_rate; in si5351_msynth_recalc_rate()
624 rate *= 128 * hwdata->params.p3; in si5351_msynth_recalc_rate()
632 do_div(rate, m); in si5351_msynth_recalc_rate()
638 m, parent_rate, (unsigned long)rate); in si5351_msynth_recalc_rate()
640 return (unsigned long)rate; in si5351_msynth_recalc_rate()
643 static long si5351_msynth_round_rate(struct clk_hw *hw, unsigned long rate, in si5351_msynth_round_rate() argument
653 if (hwdata->num >= 6 && rate > SI5351_MULTISYNTH67_MAX_FREQ) in si5351_msynth_round_rate()
654 rate = SI5351_MULTISYNTH67_MAX_FREQ; in si5351_msynth_round_rate()
657 if (rate > SI5351_MULTISYNTH_MAX_FREQ) in si5351_msynth_round_rate()
658 rate = SI5351_MULTISYNTH_MAX_FREQ; in si5351_msynth_round_rate()
659 if (rate < SI5351_MULTISYNTH_MIN_FREQ) in si5351_msynth_round_rate()
660 rate = SI5351_MULTISYNTH_MIN_FREQ; in si5351_msynth_round_rate()
663 if (rate > SI5351_MULTISYNTH_DIVBY4_FREQ) in si5351_msynth_round_rate()
674 do_div(lltmp, rate); in si5351_msynth_round_rate()
682 *parent_rate = a * rate; in si5351_msynth_round_rate()
685 a = DIV_ROUND_CLOSEST(*parent_rate, rate); in si5351_msynth_round_rate()
698 rate = SI5351_MULTISYNTH_DIVBY4_FREQ; in si5351_msynth_round_rate()
703 a = *parent_rate / rate; in si5351_msynth_round_rate()
711 lltmp = (*parent_rate) % rate; in si5351_msynth_round_rate()
713 do_div(lltmp, rate); in si5351_msynth_round_rate()
728 rate = (unsigned long)lltmp; in si5351_msynth_round_rate()
750 *parent_rate, rate); in si5351_msynth_round_rate()
752 return rate; in si5351_msynth_round_rate()
755 static int si5351_msynth_set_rate(struct clk_hw *hw, unsigned long rate, in si5351_msynth_set_rate() argument
766 if (rate > SI5351_MULTISYNTH_DIVBY4_FREQ) in si5351_msynth_set_rate()
783 divby4, parent_rate, rate); in si5351_msynth_set_rate()
1035 static long si5351_clkout_round_rate(struct clk_hw *hw, unsigned long rate, in si5351_clkout_round_rate() argument
1043 if (hwdata->num >= 6 && rate > SI5351_CLKOUT67_MAX_FREQ) in si5351_clkout_round_rate()
1044 rate = SI5351_CLKOUT67_MAX_FREQ; in si5351_clkout_round_rate()
1047 if (rate > SI5351_CLKOUT_MAX_FREQ) in si5351_clkout_round_rate()
1048 rate = SI5351_CLKOUT_MAX_FREQ; in si5351_clkout_round_rate()
1049 if (rate < SI5351_CLKOUT_MIN_FREQ) in si5351_clkout_round_rate()
1050 rate = SI5351_CLKOUT_MIN_FREQ; in si5351_clkout_round_rate()
1056 while (rate < SI5351_MULTISYNTH_MIN_FREQ && in si5351_clkout_round_rate()
1059 rate *= 2; in si5351_clkout_round_rate()
1061 *parent_rate = rate; in si5351_clkout_round_rate()
1068 err = abs(new_rate - rate); in si5351_clkout_round_rate()
1071 new_err = abs(new_rate - rate); in si5351_clkout_round_rate()
1078 rate = *parent_rate >> rdiv; in si5351_clkout_round_rate()
1083 *parent_rate, rate); in si5351_clkout_round_rate()
1085 return rate; in si5351_clkout_round_rate()
1088 static int si5351_clkout_set_rate(struct clk_hw *hw, unsigned long rate, in si5351_clkout_set_rate() argument
1099 err = abs(new_rate - rate); in si5351_clkout_set_rate()
1102 new_err = abs(new_rate - rate); in si5351_clkout_set_rate()
1134 parent_rate, rate); in si5351_clkout_set_rate()
1328 pdata->clkout[num].rate = val; in si5351_dt_parse()
1624 if (pdata->clkout[n].rate != 0) { in si5351_i2c_probe()
1627 pdata->clkout[n].rate); in si5351_i2c_probe()