Lines Matching full:divider

66 	uint32_t	divider;	/* in natural form */  member
82 clknode_div_table_get_divider(struct clknode_div_sc *sc, uint32_t divider) in clknode_div_table_get_divider() argument
87 return (divider); in clknode_div_table_get_divider()
89 for (table = sc->div_table; table->divider != 0; table++) in clknode_div_table_get_divider()
90 if (table->value == sc->divider) in clknode_div_table_get_divider()
91 return (table->divider); in clknode_div_table_get_divider()
97 clknode_div_table_get_value(struct clknode_div_sc *sc, uint32_t *divider) in clknode_div_table_get_value() argument
104 for (table = sc->div_table; table->divider != 0; table++) in clknode_div_table_get_value()
105 if (table->divider == *divider) { in clknode_div_table_get_value()
106 *divider = table->value; in clknode_div_table_get_value()
134 sc->divider = i_div << sc->f_width | f_div; in clknode_div_init()
136 sc->divider = clknode_div_table_get_divider(sc, sc->divider); in clknode_div_init()
137 if (sc->divider == 0) in clknode_div_init()
138 panic("%s: divider is zero!\n", clknode_get_name(clk)); in clknode_div_init()
150 if (sc->divider == 0) { in clknode_div_recalc()
151 printf("%s: %s divider is zero!\n", clknode_get_name(clk), in clknode_div_recalc()
156 *freq = (*freq << sc->f_width) / sc->divider; in clknode_div_recalc()
165 uint64_t divider, _fin, _fout; in clknode_div_set_freq() local
171 /* For fractional divider. */ in clknode_div_set_freq()
173 divider = (_fin + *fout / 2) / *fout; in clknode_div_set_freq()
174 _fout = _fin / divider; in clknode_div_set_freq()
178 divider--; in clknode_div_set_freq()
180 divider++; in clknode_div_set_freq()
182 /* Break divider into integer and fractional parts. */ in clknode_div_set_freq()
183 i_div = divider >> sc->f_width; in clknode_div_set_freq()
184 f_div = divider & sc->f_mask; in clknode_div_set_freq()
187 printf("%s: %s integer divider is zero!\n", in clknode_div_set_freq()
203 printf("%s: %s integer divider is too big: %u\n", in clknode_div_set_freq()
213 divider = i_div << sc->f_width | f_div; in clknode_div_set_freq()
218 (*fout != (_fin / divider))) in clknode_div_set_freq()
232 sc->divider = divider; in clknode_div_set_freq()
235 *fout = _fin / divider; in clknode_div_set_freq()