Lines Matching refs:div

38 	for (clkt = table; clkt->div; clkt++)  in _get_table_maxdiv()
39 if (clkt->div > maxdiv) in _get_table_maxdiv()
40 maxdiv = clkt->div; in _get_table_maxdiv()
60 for (clkt = table; clkt->div; clkt++) in _get_table_div()
62 return clkt->div; in _get_table_div()
78 unsigned int div) in _get_table_val() argument
82 for (clkt = table; clkt->div; clkt++) in _get_table_val()
83 if (clkt->div == div) in _get_table_val()
88 static unsigned int _get_val(struct clk_divider *divider, u8 div) in _get_val() argument
91 return div; in _get_val()
93 return __ffs(div); in _get_val()
95 return _get_table_val(divider->table, div); in _get_val()
96 return div - 1; in _get_val()
103 unsigned int div, val; in ti_clk_divider_recalc_rate() local
108 div = _get_div(divider, val); in ti_clk_divider_recalc_rate()
109 if (!div) { in ti_clk_divider_recalc_rate()
116 return DIV_ROUND_UP(parent_rate, div); in ti_clk_divider_recalc_rate()
126 unsigned int div) in _is_valid_table_div() argument
130 for (clkt = table; clkt->div; clkt++) in _is_valid_table_div()
131 if (clkt->div == div) in _is_valid_table_div()
136 static bool _is_valid_div(struct clk_divider *divider, unsigned int div) in _is_valid_div() argument
139 return is_power_of_2(div); in _is_valid_div()
141 return _is_valid_table_div(divider->table, div); in _is_valid_div()
206 int div; in ti_clk_divider_round_rate() local
207 div = ti_clk_divider_bestdiv(hw, rate, prate); in ti_clk_divider_round_rate()
209 return DIV_ROUND_UP(*prate, div); in ti_clk_divider_round_rate()
216 unsigned int div, value; in ti_clk_divider_set_rate() local
224 div = DIV_ROUND_UP(parent_rate, rate); in ti_clk_divider_set_rate()
225 value = _get_val(divider, div); in ti_clk_divider_set_rate()
254 struct clk_divider *div; in _register_divider() local
266 div = kzalloc(sizeof(*div), GFP_KERNEL); in _register_divider()
267 if (!div) { in _register_divider()
279 div->reg = reg; in _register_divider()
280 div->shift = shift; in _register_divider()
281 div->width = width; in _register_divider()
282 div->flags = clk_divider_flags; in _register_divider()
283 div->hw.init = &init; in _register_divider()
284 div->table = table; in _register_divider()
287 clk = clk_register(dev, &div->hw); in _register_divider()
290 kfree(div); in _register_divider()
301 int div; in _get_div_table_from_setup() local
314 div = 1; in _get_div_table_from_setup()
316 while (div < setup->max_div) { in _get_div_table_from_setup()
318 div <<= 1; in _get_div_table_from_setup()
320 div++; in _get_div_table_from_setup()
342 table[valid_div].div = setup->dividers[i]; in _get_div_table_from_setup()
355 struct clk_divider *div; in ti_clk_build_component_div() local
361 div = kzalloc(sizeof(*div), GFP_KERNEL); in ti_clk_build_component_div()
362 if (!div) in ti_clk_build_component_div()
365 reg = (struct clk_omap_reg *)&div->reg; in ti_clk_build_component_div()
370 div->flags |= CLK_DIVIDER_ONE_BASED; in ti_clk_build_component_div()
373 div->flags |= CLK_DIVIDER_POWER_OF_TWO; in ti_clk_build_component_div()
375 div->table = _get_div_table_from_setup(setup, &div->width); in ti_clk_build_component_div()
377 div->shift = setup->bit_shift; in ti_clk_build_component_div()
379 return &div->hw; in ti_clk_build_component_div()
384 struct ti_clk_divider *div; in ti_clk_register_divider() local
393 div = setup->data; in ti_clk_register_divider()
397 reg_setup->index = div->module; in ti_clk_register_divider()
398 reg_setup->offset = div->reg; in ti_clk_register_divider()
400 if (div->flags & CLKF_INDEX_STARTS_AT_ONE) in ti_clk_register_divider()
403 if (div->flags & CLKF_INDEX_POWER_OF_TWO) in ti_clk_register_divider()
406 if (div->flags & CLKF_SET_RATE_PARENT) in ti_clk_register_divider()
409 table = _get_div_table_from_setup(div, &width); in ti_clk_register_divider()
413 clk = _register_divider(NULL, setup->name, div->parent, in ti_clk_register_divider()
414 flags, (void __iomem *)reg, div->bit_shift, in ti_clk_register_divider()
464 table[valid_div].div = val; in ti_clk_get_div_table()
480 u32 div; in _get_divider_width() local
496 div = min_div; in _get_divider_width()
498 while (div < max_div) { in _get_divider_width()
500 div <<= 1; in _get_divider_width()
502 div++; in _get_divider_width()
506 div = 0; in _get_divider_width()
508 while (table[div].div) { in _get_divider_width()
509 val = table[div].val; in _get_divider_width()
510 div++; in _get_divider_width()
593 struct clk_divider *div; in of_ti_composite_divider_clk_setup() local
596 div = kzalloc(sizeof(*div), GFP_KERNEL); in of_ti_composite_divider_clk_setup()
597 if (!div) in of_ti_composite_divider_clk_setup()
600 if (ti_clk_divider_populate(node, &div->reg, &div->table, &val, in of_ti_composite_divider_clk_setup()
601 &div->flags, &div->width, &div->shift) < 0) in of_ti_composite_divider_clk_setup()
604 if (!ti_clk_add_component(node, &div->hw, CLK_COMPONENT_TYPE_DIVIDER)) in of_ti_composite_divider_clk_setup()
608 kfree(div->table); in of_ti_composite_divider_clk_setup()
609 kfree(div); in of_ti_composite_divider_clk_setup()