Lines Matching refs:mult
19 static unsigned long __get_mult(struct clk_multiplier *mult, in __get_mult() argument
23 if (mult->flags & CLK_MULTIPLIER_ROUND_CLOSEST) in __get_mult()
32 struct clk_multiplier *mult = to_clk_multiplier(hw); in clk_multiplier_recalc_rate() local
35 val = clk_readl(mult->reg) >> mult->shift; in clk_multiplier_recalc_rate()
36 val &= GENMASK(mult->width - 1, 0); in clk_multiplier_recalc_rate()
38 if (!val && mult->flags & CLK_MULTIPLIER_ZERO_BYPASS) in clk_multiplier_recalc_rate()
92 struct clk_multiplier *mult = to_clk_multiplier(hw); in clk_multiplier_round_rate() local
94 mult->width, mult->flags); in clk_multiplier_round_rate()
102 struct clk_multiplier *mult = to_clk_multiplier(hw); in clk_multiplier_set_rate() local
103 unsigned long factor = __get_mult(mult, rate, parent_rate); in clk_multiplier_set_rate()
107 if (mult->lock) in clk_multiplier_set_rate()
108 spin_lock_irqsave(mult->lock, flags); in clk_multiplier_set_rate()
110 __acquire(mult->lock); in clk_multiplier_set_rate()
112 val = clk_readl(mult->reg); in clk_multiplier_set_rate()
113 val &= ~GENMASK(mult->width + mult->shift - 1, mult->shift); in clk_multiplier_set_rate()
114 val |= factor << mult->shift; in clk_multiplier_set_rate()
115 clk_writel(val, mult->reg); in clk_multiplier_set_rate()
117 if (mult->lock) in clk_multiplier_set_rate()
118 spin_unlock_irqrestore(mult->lock, flags); in clk_multiplier_set_rate()
120 __release(mult->lock); in clk_multiplier_set_rate()