Lines Matching defs:mult
15 static inline u32 clk_mult_readl(struct clk_multiplier *mult)
17 if (mult->flags & CLK_MULTIPLIER_BIG_ENDIAN)
18 return ioread32be(mult->reg);
20 return readl(mult->reg);
23 static inline void clk_mult_writel(struct clk_multiplier *mult, u32 val)
25 if (mult->flags & CLK_MULTIPLIER_BIG_ENDIAN)
26 iowrite32be(val, mult->reg);
28 writel(val, mult->reg);
31 static unsigned long __get_mult(struct clk_multiplier *mult,
35 if (mult->flags & CLK_MULTIPLIER_ROUND_CLOSEST)
44 struct clk_multiplier *mult = to_clk_multiplier(hw);
47 val = clk_mult_readl(mult) >> mult->shift;
48 val &= GENMASK(mult->width - 1, 0);
50 if (!val && mult->flags & CLK_MULTIPLIER_ZERO_BYPASS)
69 struct clk_multiplier *mult = to_clk_multiplier(hw);
80 !(mult->flags & CLK_MULTIPLIER_ZERO_BYPASS))
118 struct clk_multiplier *mult = to_clk_multiplier(hw);
120 mult->width, mult->flags);
128 struct clk_multiplier *mult = to_clk_multiplier(hw);
129 unsigned long factor = __get_mult(mult, rate, parent_rate);
133 if (mult->lock)
134 spin_lock_irqsave(mult->lock, flags);
136 __acquire(mult->lock);
138 val = clk_mult_readl(mult);
139 val &= ~GENMASK(mult->width + mult->shift - 1, mult->shift);
140 val |= factor << mult->shift;
141 clk_mult_writel(mult, val);
143 if (mult->lock)
144 spin_unlock_irqrestore(mult->lock, flags);
146 __release(mult->lock);