Lines Matching refs:divider

124 	struct clk_divider *divider = to_clk_divider(hw);  in divider_recalc_rate()  local
127 div = _get_div(table, val, flags, divider->width); in divider_recalc_rate()
142 struct clk_divider *divider = to_clk_divider(hw); in clk_divider_recalc_rate() local
145 val = clk_readl(divider->reg) >> divider->shift; in clk_divider_recalc_rate()
146 val &= div_mask(divider->width); in clk_divider_recalc_rate()
148 return divider_recalc_rate(hw, parent_rate, val, divider->table, in clk_divider_recalc_rate()
149 divider->flags); in clk_divider_recalc_rate()
352 struct clk_divider *divider = to_clk_divider(hw); in clk_divider_round_rate() local
356 if (divider->flags & CLK_DIVIDER_READ_ONLY) { in clk_divider_round_rate()
357 bestdiv = readl(divider->reg) >> divider->shift; in clk_divider_round_rate()
358 bestdiv &= div_mask(divider->width); in clk_divider_round_rate()
359 bestdiv = _get_div(divider->table, bestdiv, divider->flags, in clk_divider_round_rate()
360 divider->width); in clk_divider_round_rate()
364 return divider_round_rate(hw, rate, prate, divider->table, in clk_divider_round_rate()
365 divider->width, divider->flags); in clk_divider_round_rate()
388 struct clk_divider *divider = to_clk_divider(hw); in clk_divider_set_rate() local
393 value = divider_get_val(rate, parent_rate, divider->table, in clk_divider_set_rate()
394 divider->width, divider->flags); in clk_divider_set_rate()
396 if (divider->lock) in clk_divider_set_rate()
397 spin_lock_irqsave(divider->lock, flags); in clk_divider_set_rate()
399 __acquire(divider->lock); in clk_divider_set_rate()
401 if (divider->flags & CLK_DIVIDER_HIWORD_MASK) { in clk_divider_set_rate()
402 val = div_mask(divider->width) << (divider->shift + 16); in clk_divider_set_rate()
404 val = clk_readl(divider->reg); in clk_divider_set_rate()
405 val &= ~(div_mask(divider->width) << divider->shift); in clk_divider_set_rate()
407 val |= value << divider->shift; in clk_divider_set_rate()
408 clk_writel(val, divider->reg); in clk_divider_set_rate()
410 if (divider->lock) in clk_divider_set_rate()
411 spin_unlock_irqrestore(divider->lock, flags); in clk_divider_set_rate()
413 __release(divider->lock); in clk_divider_set_rate()