Lines Matching refs:div

36 	for (clkt = table; clkt->div; clkt++)  in _get_table_maxdiv()
37 if (clkt->div > maxdiv) in _get_table_maxdiv()
38 maxdiv = clkt->div; in _get_table_maxdiv()
58 for (clkt = table; clkt->div; clkt++) in _get_table_div()
60 return clkt->div; in _get_table_div()
76 unsigned int div) in _get_table_val() argument
80 for (clkt = table; clkt->div; clkt++) in _get_table_val()
81 if (clkt->div == div) in _get_table_val()
86 static unsigned int _get_val(struct clk_omap_divider *divider, u8 div) in _get_val() argument
89 return div; in _get_val()
91 return __ffs(div); in _get_val()
93 return _get_table_val(divider->table, div); in _get_val()
94 return div - 1; in _get_val()
101 unsigned int div, val; in ti_clk_divider_recalc_rate() local
106 div = _get_div(divider, val); in ti_clk_divider_recalc_rate()
107 if (!div) { in ti_clk_divider_recalc_rate()
114 return DIV_ROUND_UP(parent_rate, div); in ti_clk_divider_recalc_rate()
124 unsigned int div) in _is_valid_table_div() argument
128 for (clkt = table; clkt->div; clkt++) in _is_valid_table_div()
129 if (clkt->div == div) in _is_valid_table_div()
134 static bool _is_valid_div(struct clk_omap_divider *divider, unsigned int div) in _is_valid_div() argument
137 return is_power_of_2(div); in _is_valid_div()
139 return _is_valid_table_div(divider->table, div); in _is_valid_div()
148 int div = DIV_ROUND_UP_ULL((u64)parent_rate, rate); in _div_round_up() local
150 for (clkt = table; clkt->div; clkt++) { in _div_round_up()
151 if (clkt->div == div) in _div_round_up()
152 return clkt->div; in _div_round_up()
153 else if (clkt->div < div) in _div_round_up()
156 if ((clkt->div - div) < (up - div)) in _div_round_up()
157 up = clkt->div; in _div_round_up()
233 int div; in ti_clk_divider_round_rate() local
234 div = ti_clk_divider_bestdiv(hw, rate, prate); in ti_clk_divider_round_rate()
236 return DIV_ROUND_UP(*prate, div); in ti_clk_divider_round_rate()
243 unsigned int div, value; in ti_clk_divider_set_rate() local
251 div = DIV_ROUND_UP(parent_rate, rate); in ti_clk_divider_set_rate()
252 value = _get_val(divider, div); in ti_clk_divider_set_rate()
321 struct clk_omap_divider *div; in _register_divider() local
333 div = kzalloc(sizeof(*div), GFP_KERNEL); in _register_divider()
334 if (!div) in _register_divider()
344 memcpy(&div->reg, reg, sizeof(*reg)); in _register_divider()
345 div->shift = shift; in _register_divider()
346 div->width = width; in _register_divider()
347 div->latch = latch; in _register_divider()
348 div->flags = clk_divider_flags; in _register_divider()
349 div->hw.init = &init; in _register_divider()
350 div->table = table; in _register_divider()
353 clk = ti_clk_register(dev, &div->hw, name); in _register_divider()
356 kfree(div); in _register_divider()
367 int div; in ti_clk_parse_divider_data() local
377 div = 1; in ti_clk_parse_divider_data()
379 while (div < max_div) { in ti_clk_parse_divider_data()
381 div <<= 1; in ti_clk_parse_divider_data()
383 div++; in ti_clk_parse_divider_data()
416 tmp[valid_div].div = div_table[i]; in ti_clk_parse_divider_data()
469 table[valid_div].div = val; in ti_clk_get_div_table()
485 u32 div; in _get_divider_width() local
501 div = min_div; in _get_divider_width()
503 while (div < max_div) { in _get_divider_width()
505 div <<= 1; in _get_divider_width()
507 div++; in _get_divider_width()
511 div = 0; in _get_divider_width()
513 while (table[div].div) { in _get_divider_width()
514 val = table[div].val; in _get_divider_width()
515 div++; in _get_divider_width()
607 struct clk_omap_divider *div; in of_ti_composite_divider_clk_setup() local
610 div = kzalloc(sizeof(*div), GFP_KERNEL); in of_ti_composite_divider_clk_setup()
611 if (!div) in of_ti_composite_divider_clk_setup()
614 if (ti_clk_divider_populate(node, &div->reg, &div->table, &val, in of_ti_composite_divider_clk_setup()
615 &div->flags, &div->width, &div->shift, in of_ti_composite_divider_clk_setup()
619 if (!ti_clk_add_component(node, &div->hw, CLK_COMPONENT_TYPE_DIVIDER)) in of_ti_composite_divider_clk_setup()
623 kfree(div->table); in of_ti_composite_divider_clk_setup()
624 kfree(div); in of_ti_composite_divider_clk_setup()