Lines Matching refs:divider
31 struct clk_divider *divider = to_clk_divider(hw);
36 prediv_value = readl(divider->reg) >> divider->shift;
37 prediv_value &= clk_div_mask(divider->width);
40 NULL, divider->flags,
41 divider->width);
43 div_value = readl(divider->reg) >> PCG_DIV_SHIFT;
47 divider->flags, PCG_DIV_WIDTH);
95 struct clk_divider *divider = to_clk_divider(hw);
107 spin_lock_irqsave(divider->lock, flags);
109 orig = readl(divider->reg);
110 val = orig & ~((clk_div_mask(divider->width) << divider->shift) |
113 val |= (u32)(prediv_value - 1) << divider->shift;
117 writel(val, divider->reg);
119 spin_unlock_irqrestore(divider->lock, flags);
127 struct clk_divider *divider = to_clk_divider(hw);
132 if (divider->flags & CLK_DIVIDER_READ_ONLY) {
135 val = readl(divider->reg);
136 prediv_value = val >> divider->shift;
137 prediv_value &= clk_div_mask(divider->width);
144 return divider_ro_determine_rate(hw, req, divider->table,
146 divider->flags, prediv_value * div_value);
149 return divider_determine_rate(hw, req, divider->table,
151 divider->flags);