Lines Matching refs:divider

137 	struct clk_divider *divider = to_clk_divider(hw);  in clk_divider_recalc_rate()  local
140 val = clk_readl(divider->reg) >> divider->shift; in clk_divider_recalc_rate()
141 val &= div_mask(divider->width); in clk_divider_recalc_rate()
143 return divider_recalc_rate(hw, parent_rate, val, divider->table, in clk_divider_recalc_rate()
144 divider->flags); in clk_divider_recalc_rate()
347 struct clk_divider *divider = to_clk_divider(hw); in clk_divider_round_rate() local
351 if (divider->flags & CLK_DIVIDER_READ_ONLY) { in clk_divider_round_rate()
352 bestdiv = readl(divider->reg) >> divider->shift; in clk_divider_round_rate()
353 bestdiv &= div_mask(divider->width); in clk_divider_round_rate()
354 bestdiv = _get_div(divider->table, bestdiv, divider->flags); in clk_divider_round_rate()
358 return divider_round_rate(hw, rate, prate, divider->table, in clk_divider_round_rate()
359 divider->width, divider->flags); in clk_divider_round_rate()
382 struct clk_divider *divider = to_clk_divider(hw); in clk_divider_set_rate() local
387 value = divider_get_val(rate, parent_rate, divider->table, in clk_divider_set_rate()
388 divider->width, divider->flags); in clk_divider_set_rate()
390 if (divider->lock) in clk_divider_set_rate()
391 spin_lock_irqsave(divider->lock, flags); in clk_divider_set_rate()
393 if (divider->flags & CLK_DIVIDER_HIWORD_MASK) { in clk_divider_set_rate()
394 val = div_mask(divider->width) << (divider->shift + 16); in clk_divider_set_rate()
396 val = clk_readl(divider->reg); in clk_divider_set_rate()
397 val &= ~(div_mask(divider->width) << divider->shift); in clk_divider_set_rate()
399 val |= value << divider->shift; in clk_divider_set_rate()
400 clk_writel(val, divider->reg); in clk_divider_set_rate()
402 if (divider->lock) in clk_divider_set_rate()
403 spin_unlock_irqrestore(divider->lock, flags); in clk_divider_set_rate()