Lines Matching refs:rate
118 scale_rate(struct bcm_clk_div *div, u32 rate) in scale_rate() argument
121 return (u64)rate; in scale_rate()
123 return (u64)rate << div->u.s.frac_width; in scale_rate()
749 unsigned long rate, unsigned long parent_rate, in round_rate() argument
759 BUG_ON(!rate); in round_rate()
793 rate); in round_rate()
1007 static long kona_peri_clk_round_rate(struct clk_hw *hw, unsigned long rate, in kona_peri_clk_round_rate() argument
1018 rate ? rate : 1, *parent_rate, NULL); in kona_peri_clk_round_rate()
1030 long rate; in kona_peri_clk_determine_rate() local
1040 rate = kona_peri_clk_round_rate(hw, req->rate, in kona_peri_clk_determine_rate()
1042 if (rate < 0) in kona_peri_clk_determine_rate()
1043 return rate; in kona_peri_clk_determine_rate()
1045 req->rate = rate; in kona_peri_clk_determine_rate()
1052 best_rate = kona_peri_clk_round_rate(hw, req->rate, &parent_rate); in kona_peri_clk_determine_rate()
1053 best_delta = abs(best_rate - req->rate); in kona_peri_clk_determine_rate()
1067 other_rate = kona_peri_clk_round_rate(hw, req->rate, in kona_peri_clk_determine_rate()
1069 delta = abs(other_rate - req->rate); in kona_peri_clk_determine_rate()
1078 req->rate = best_rate; in kona_peri_clk_determine_rate()
1129 static int kona_peri_clk_set_rate(struct clk_hw *hw, unsigned long rate, in kona_peri_clk_set_rate() argument
1141 if (rate == clk_hw_get_rate(hw)) in kona_peri_clk_set_rate()
1145 return rate == parent_rate ? 0 : -EINVAL; in kona_peri_clk_set_rate()
1153 return rate == parent_rate ? 0 : -EINVAL; in kona_peri_clk_set_rate()
1161 rate ? rate : 1, parent_rate, &scaled_div); in kona_peri_clk_set_rate()