Lines Matching full:divider

213 	const struct stm32_div_cfg *divider = &data->dividers[div_id];  in stm32_divider_get_rate()  local
217 val = readl(base + divider->offset) >> divider->shift; in stm32_divider_get_rate()
218 val &= clk_div_mask(divider->width); in stm32_divider_get_rate()
219 div = _get_div(divider->table, val, divider->flags, divider->width); in stm32_divider_get_rate()
222 WARN(!(divider->flags & CLK_DIVIDER_ALLOW_ZERO), in stm32_divider_get_rate()
236 const struct stm32_div_cfg *divider = &data->dividers[div_id]; in stm32_divider_set_rate() local
240 value = divider_get_val(rate, parent_rate, divider->table, in stm32_divider_set_rate()
241 divider->width, divider->flags); in stm32_divider_set_rate()
245 if (divider->flags & CLK_DIVIDER_HIWORD_MASK) { in stm32_divider_set_rate()
246 val = clk_div_mask(divider->width) << (divider->shift + 16); in stm32_divider_set_rate()
248 val = readl(base + divider->offset); in stm32_divider_set_rate()
249 val &= ~(clk_div_mask(divider->width) << divider->shift); in stm32_divider_set_rate()
252 val |= (u32)value << divider->shift; in stm32_divider_set_rate()
254 writel(val, base + divider->offset); in stm32_divider_set_rate()
359 const struct stm32_div_cfg *divider; in clk_stm32_divider_round_rate() local
364 divider = &div->clock_data->dividers[div->div_id]; in clk_stm32_divider_round_rate()
367 if (divider->flags & CLK_DIVIDER_READ_ONLY) { in clk_stm32_divider_round_rate()
370 val = readl(div->base + divider->offset) >> divider->shift; in clk_stm32_divider_round_rate()
371 val &= clk_div_mask(divider->width); in clk_stm32_divider_round_rate()
373 return divider_ro_round_rate(hw, rate, prate, divider->table, in clk_stm32_divider_round_rate()
374 divider->width, divider->flags, in clk_stm32_divider_round_rate()
379 rate, prate, divider->table, in clk_stm32_divider_round_rate()
380 divider->width, divider->flags); in clk_stm32_divider_round_rate()
436 const struct stm32_div_cfg *divider; in clk_stm32_composite_determine_rate() local
442 divider = &composite->clock_data->dividers[composite->div_id]; in clk_stm32_composite_determine_rate()
445 if (divider->flags & CLK_DIVIDER_READ_ONLY) { in clk_stm32_composite_determine_rate()
448 val = readl(composite->base + divider->offset) >> divider->shift; in clk_stm32_composite_determine_rate()
449 val &= clk_div_mask(divider->width); in clk_stm32_composite_determine_rate()
452 divider->table, divider->width, divider->flags, in clk_stm32_composite_determine_rate()
463 divider->table, divider->width, divider->flags); in clk_stm32_composite_determine_rate()