Lines Matching refs:rate
74 static ulong meson_div_set_rate(struct clk *clk, unsigned long id, ulong rate,
80 ulong rate, ulong current_rate);
271 unsigned int rate, parent_rate; in meson_div_get_rate() local
308 rate = parent_rate / (reg + 1); in meson_div_get_rate()
310 debug("%s: rate of %ld is %d\n", __func__, id, rate); in meson_div_get_rate()
312 return rate; in meson_div_get_rate()
315 static ulong meson_div_set_rate(struct clk *clk, unsigned long id, ulong rate, in meson_div_set_rate() argument
325 if (current_rate == rate) in meson_div_set_rate()
329 __func__, id, current_rate, rate); in meson_div_set_rate()
359 if (!parent_rate || rate > parent_rate) in meson_div_set_rate()
360 return meson_clk_set_rate_by_id(clk, parent, rate, in meson_div_set_rate()
363 new_div = DIV_ROUND_CLOSEST(parent_rate, rate); in meson_div_set_rate()
369 ret = meson_clk_set_rate_by_id(clk, parent, rate, current_rate); in meson_div_set_rate()
377 new_div = DIV_ROUND_CLOSEST(parent_rate, rate); in meson_div_set_rate()
725 ulong rate; in meson_clk_get_rate_by_id() local
730 rate = meson_pll_get_rate(clk, id); in meson_clk_get_rate_by_id()
733 rate = meson_pll_get_rate(clk, CLKID_FIXED_PLL) / 2; in meson_clk_get_rate_by_id()
736 rate = meson_pll_get_rate(clk, CLKID_FIXED_PLL) / 3; in meson_clk_get_rate_by_id()
739 rate = meson_pll_get_rate(clk, CLKID_FIXED_PLL) / 4; in meson_clk_get_rate_by_id()
742 rate = meson_pll_get_rate(clk, CLKID_FIXED_PLL) / 5; in meson_clk_get_rate_by_id()
745 rate = meson_pll_get_rate(clk, CLKID_FIXED_PLL) / 7; in meson_clk_get_rate_by_id()
750 rate = meson_mpll_get_rate(clk, id); in meson_clk_get_rate_by_id()
753 rate = meson_clk81_get_rate(clk); in meson_clk_get_rate_by_id()
756 rate = meson_div_get_rate(clk, CLKID_VPU_0_DIV); in meson_clk_get_rate_by_id()
759 rate = meson_div_get_rate(clk, CLKID_VPU_1_DIV); in meson_clk_get_rate_by_id()
762 rate = meson_mux_get_rate(clk, CLKID_VAPB_SEL); in meson_clk_get_rate_by_id()
765 rate = meson_div_get_rate(clk, CLKID_VAPB_0_DIV); in meson_clk_get_rate_by_id()
768 rate = meson_div_get_rate(clk, CLKID_VAPB_1_DIV); in meson_clk_get_rate_by_id()
774 rate = meson_div_get_rate(clk, id); in meson_clk_get_rate_by_id()
782 rate = meson_mux_get_rate(clk, id); in meson_clk_get_rate_by_id()
787 rate = meson_clk81_get_rate(clk); in meson_clk_get_rate_by_id()
793 debug("clock %lu has rate %lu\n", id, rate); in meson_clk_get_rate_by_id()
794 return rate; in meson_clk_get_rate_by_id()
808 ulong rate, ulong current_rate) in meson_clk_set_rate_by_id() argument
810 if (current_rate == rate) in meson_clk_set_rate_by_id()
829 meson_mux_get_parent(clk, CLKID_VPU), rate, in meson_clk_set_rate_by_id()
835 rate, current_rate); in meson_clk_set_rate_by_id()
837 return meson_div_set_rate(clk, CLKID_VPU_0_DIV, rate, in meson_clk_set_rate_by_id()
840 return meson_div_set_rate(clk, CLKID_VPU_1_DIV, rate, in meson_clk_set_rate_by_id()
843 return meson_div_set_rate(clk, CLKID_VAPB_0_DIV, rate, in meson_clk_set_rate_by_id()
846 return meson_div_set_rate(clk, CLKID_VAPB_1_DIV, rate, in meson_clk_set_rate_by_id()
852 return meson_div_set_rate(clk, id, rate, current_rate); in meson_clk_set_rate_by_id()
860 static ulong meson_clk_set_rate(struct clk *clk, ulong rate) in meson_clk_set_rate() argument
869 __func__, clk->id, current_rate, rate); in meson_clk_set_rate()
871 ret = meson_clk_set_rate_by_id(clk, clk->id, rate, current_rate); in meson_clk_set_rate()