Lines Matching refs:rate
274 unsigned long rate; in si5351_clkin_recalc_rate() local
277 rate = parent_rate; in si5351_clkin_recalc_rate()
280 rate /= 8; in si5351_clkin_recalc_rate()
283 rate /= 4; in si5351_clkin_recalc_rate()
286 rate /= 2; in si5351_clkin_recalc_rate()
295 __func__, (1 << (idiv >> 6)), rate); in si5351_clkin_recalc_rate()
297 return rate; in si5351_clkin_recalc_rate()
330 static int si5351_vxco_set_rate(struct clk_hw *hw, unsigned long rate, in si5351_vxco_set_rate() argument
425 unsigned long long rate; in si5351_pll_recalc_rate() local
434 rate = hwdata->params.p1 * hwdata->params.p3; in si5351_pll_recalc_rate()
435 rate += 512 * hwdata->params.p3; in si5351_pll_recalc_rate()
436 rate += hwdata->params.p2; in si5351_pll_recalc_rate()
437 rate *= parent_rate; in si5351_pll_recalc_rate()
438 do_div(rate, 128 * hwdata->params.p3); in si5351_pll_recalc_rate()
444 parent_rate, (unsigned long)rate); in si5351_pll_recalc_rate()
446 return (unsigned long)rate; in si5351_pll_recalc_rate()
449 static long si5351_pll_round_rate(struct clk_hw *hw, unsigned long rate, in si5351_pll_round_rate() argument
457 if (rate < SI5351_PLL_VCO_MIN) in si5351_pll_round_rate()
458 rate = SI5351_PLL_VCO_MIN; in si5351_pll_round_rate()
459 if (rate > SI5351_PLL_VCO_MAX) in si5351_pll_round_rate()
460 rate = SI5351_PLL_VCO_MAX; in si5351_pll_round_rate()
463 a = rate / *parent_rate; in si5351_pll_round_rate()
466 rate = *parent_rate * SI5351_PLL_A_MIN; in si5351_pll_round_rate()
468 rate = *parent_rate * SI5351_PLL_A_MAX; in si5351_pll_round_rate()
472 lltmp = rate % (*parent_rate); in si5351_pll_round_rate()
495 rate = (unsigned long)lltmp; in si5351_pll_round_rate()
496 rate += *parent_rate * a; in si5351_pll_round_rate()
501 *parent_rate, rate); in si5351_pll_round_rate()
503 return rate; in si5351_pll_round_rate()
506 static int si5351_pll_set_rate(struct clk_hw *hw, unsigned long rate, in si5351_pll_set_rate() argument
526 parent_rate, rate); in si5351_pll_set_rate()
603 unsigned long long rate; in si5351_msynth_recalc_rate() local
616 rate = parent_rate; in si5351_msynth_recalc_rate()
623 rate *= 128 * hwdata->params.p3; in si5351_msynth_recalc_rate()
631 do_div(rate, m); in si5351_msynth_recalc_rate()
637 m, parent_rate, (unsigned long)rate); in si5351_msynth_recalc_rate()
639 return (unsigned long)rate; in si5351_msynth_recalc_rate()
642 static long si5351_msynth_round_rate(struct clk_hw *hw, unsigned long rate, in si5351_msynth_round_rate() argument
652 if (hwdata->num >= 6 && rate > SI5351_MULTISYNTH67_MAX_FREQ) in si5351_msynth_round_rate()
653 rate = SI5351_MULTISYNTH67_MAX_FREQ; in si5351_msynth_round_rate()
656 if (rate > SI5351_MULTISYNTH_MAX_FREQ) in si5351_msynth_round_rate()
657 rate = SI5351_MULTISYNTH_MAX_FREQ; in si5351_msynth_round_rate()
658 if (rate < SI5351_MULTISYNTH_MIN_FREQ) in si5351_msynth_round_rate()
659 rate = SI5351_MULTISYNTH_MIN_FREQ; in si5351_msynth_round_rate()
662 if (rate > SI5351_MULTISYNTH_DIVBY4_FREQ) in si5351_msynth_round_rate()
673 do_div(lltmp, rate); in si5351_msynth_round_rate()
681 *parent_rate = a * rate; in si5351_msynth_round_rate()
687 rate = SI5351_MULTISYNTH_DIVBY4_FREQ; in si5351_msynth_round_rate()
692 a = *parent_rate / rate; in si5351_msynth_round_rate()
702 lltmp = (*parent_rate) % rate; in si5351_msynth_round_rate()
704 do_div(lltmp, rate); in si5351_msynth_round_rate()
719 rate = (unsigned long)lltmp; in si5351_msynth_round_rate()
737 *parent_rate, rate); in si5351_msynth_round_rate()
739 return rate; in si5351_msynth_round_rate()
742 static int si5351_msynth_set_rate(struct clk_hw *hw, unsigned long rate, in si5351_msynth_set_rate() argument
753 if (rate > SI5351_MULTISYNTH_DIVBY4_FREQ) in si5351_msynth_set_rate()
770 divby4, parent_rate, rate); in si5351_msynth_set_rate()
986 static long si5351_clkout_round_rate(struct clk_hw *hw, unsigned long rate, in si5351_clkout_round_rate() argument
994 if (hwdata->num >= 6 && rate > SI5351_CLKOUT67_MAX_FREQ) in si5351_clkout_round_rate()
995 rate = SI5351_CLKOUT67_MAX_FREQ; in si5351_clkout_round_rate()
998 if (rate > SI5351_CLKOUT_MAX_FREQ) in si5351_clkout_round_rate()
999 rate = SI5351_CLKOUT_MAX_FREQ; in si5351_clkout_round_rate()
1000 if (rate < SI5351_CLKOUT_MIN_FREQ) in si5351_clkout_round_rate()
1001 rate = SI5351_CLKOUT_MIN_FREQ; in si5351_clkout_round_rate()
1007 while (rate < SI5351_MULTISYNTH_MIN_FREQ && in si5351_clkout_round_rate()
1010 rate *= 2; in si5351_clkout_round_rate()
1012 *parent_rate = rate; in si5351_clkout_round_rate()
1019 err = abs(new_rate - rate); in si5351_clkout_round_rate()
1022 new_err = abs(new_rate - rate); in si5351_clkout_round_rate()
1029 rate = *parent_rate >> rdiv; in si5351_clkout_round_rate()
1034 *parent_rate, rate); in si5351_clkout_round_rate()
1036 return rate; in si5351_clkout_round_rate()
1039 static int si5351_clkout_set_rate(struct clk_hw *hw, unsigned long rate, in si5351_clkout_set_rate() argument
1050 err = abs(new_rate - rate); in si5351_clkout_set_rate()
1053 new_err = abs(new_rate - rate); in si5351_clkout_set_rate()
1085 parent_rate, rate); in si5351_clkout_set_rate()
1286 pdata->clkout[num].rate = val; in si5351_dt_parse()
1546 if (pdata->clkout[n].rate != 0) { in si5351_i2c_probe()
1548 ret = clk_set_rate(clk, pdata->clkout[n].rate); in si5351_i2c_probe()