Lines Matching full:divider

212 	const struct stm32_div_cfg *divider = &data->dividers[div_id];  in stm32_divider_get_rate()  local
216 val = readl(base + divider->offset) >> divider->shift; in stm32_divider_get_rate()
217 val &= clk_div_mask(divider->width); in stm32_divider_get_rate()
218 div = _get_div(divider->table, val, divider->flags, divider->width); in stm32_divider_get_rate()
221 WARN(!(divider->flags & CLK_DIVIDER_ALLOW_ZERO), in stm32_divider_get_rate()
235 const struct stm32_div_cfg *divider = &data->dividers[div_id]; in stm32_divider_set_rate() local
239 value = divider_get_val(rate, parent_rate, divider->table, in stm32_divider_set_rate()
240 divider->width, divider->flags); in stm32_divider_set_rate()
244 if (divider->flags & CLK_DIVIDER_HIWORD_MASK) { in stm32_divider_set_rate()
245 val = clk_div_mask(divider->width) << (divider->shift + 16); in stm32_divider_set_rate()
247 val = readl(base + divider->offset); in stm32_divider_set_rate()
248 val &= ~(clk_div_mask(divider->width) << divider->shift); in stm32_divider_set_rate()
251 val |= (u32)value << divider->shift; in stm32_divider_set_rate()
253 writel(val, base + divider->offset); in stm32_divider_set_rate()
358 const struct stm32_div_cfg *divider; in clk_stm32_divider_round_rate() local
363 divider = &div->clock_data->dividers[div->div_id]; in clk_stm32_divider_round_rate()
366 if (divider->flags & CLK_DIVIDER_READ_ONLY) { in clk_stm32_divider_round_rate()
369 val = readl(div->base + divider->offset) >> divider->shift; in clk_stm32_divider_round_rate()
370 val &= clk_div_mask(divider->width); in clk_stm32_divider_round_rate()
372 return divider_ro_round_rate(hw, rate, prate, divider->table, in clk_stm32_divider_round_rate()
373 divider->width, divider->flags, in clk_stm32_divider_round_rate()
378 rate, prate, divider->table, in clk_stm32_divider_round_rate()
379 divider->width, divider->flags); in clk_stm32_divider_round_rate()
435 const struct stm32_div_cfg *divider; in clk_stm32_composite_determine_rate() local
441 divider = &composite->clock_data->dividers[composite->div_id]; in clk_stm32_composite_determine_rate()
444 if (divider->flags & CLK_DIVIDER_READ_ONLY) { in clk_stm32_composite_determine_rate()
447 val = readl(composite->base + divider->offset) >> divider->shift; in clk_stm32_composite_determine_rate()
448 val &= clk_div_mask(divider->width); in clk_stm32_composite_determine_rate()
451 divider->table, divider->width, divider->flags, in clk_stm32_composite_determine_rate()
462 divider->table, divider->width, divider->flags); in clk_stm32_composite_determine_rate()