Lines Matching full:divider
25 struct clk_divider *divider = to_clk_divider(hw); in clk_half_divider_recalc_rate() local
28 val = readl(divider->reg) >> divider->shift; in clk_half_divider_recalc_rate()
29 val &= div_mask(divider->width); in clk_half_divider_recalc_rate()
60 * The maximum divider we can use without overflowing in clk_half_divider_bestdiv()
90 struct clk_divider *divider = to_clk_divider(hw); in clk_half_divider_round_rate() local
94 divider->width, in clk_half_divider_round_rate()
95 divider->flags); in clk_half_divider_round_rate()
103 struct clk_divider *divider = to_clk_divider(hw); in clk_half_divider_set_rate() local
110 value = min_t(unsigned int, value, div_mask(divider->width)); in clk_half_divider_set_rate()
112 if (divider->lock) in clk_half_divider_set_rate()
113 spin_lock_irqsave(divider->lock, flags); in clk_half_divider_set_rate()
115 __acquire(divider->lock); in clk_half_divider_set_rate()
117 if (divider->flags & CLK_DIVIDER_HIWORD_MASK) { in clk_half_divider_set_rate()
118 val = div_mask(divider->width) << (divider->shift + 16); in clk_half_divider_set_rate()
120 val = readl(divider->reg); in clk_half_divider_set_rate()
121 val &= ~(div_mask(divider->width) << divider->shift); in clk_half_divider_set_rate()
123 val |= value << divider->shift; in clk_half_divider_set_rate()
124 writel(val, divider->reg); in clk_half_divider_set_rate()
126 if (divider->lock) in clk_half_divider_set_rate()
127 spin_unlock_irqrestore(divider->lock, flags); in clk_half_divider_set_rate()
129 __release(divider->lock); in clk_half_divider_set_rate()