Lines Matching refs:divider
162 static void isp_xclk_update(struct isp_xclk *xclk, u32 divider) in isp_xclk_update() argument
168 divider << ISPTCTRL_CTRL_DIVA_SHIFT); in isp_xclk_update()
173 divider << ISPTCTRL_CTRL_DIVB_SHIFT); in isp_xclk_update()
200 isp_xclk_update(xclk, xclk->divider); in isp_xclk_enable()
223 return parent_rate / xclk->divider; in isp_xclk_recalc_rate()
228 u32 divider; in isp_xclk_calc_divider() local
238 divider = DIV_ROUND_CLOSEST(parent_rate, *rate); in isp_xclk_calc_divider()
239 if (divider >= ISPTCTRL_CTRL_DIV_BYPASS) in isp_xclk_calc_divider()
240 divider = ISPTCTRL_CTRL_DIV_BYPASS - 1; in isp_xclk_calc_divider()
242 *rate = parent_rate / divider; in isp_xclk_calc_divider()
243 return divider; in isp_xclk_calc_divider()
258 u32 divider; in isp_xclk_set_rate() local
260 divider = isp_xclk_calc_divider(&rate, parent_rate); in isp_xclk_set_rate()
264 xclk->divider = divider; in isp_xclk_set_rate()
266 isp_xclk_update(xclk, divider); in isp_xclk_set_rate()
271 __func__, xclk->id == ISP_XCLK_A ? 'a' : 'b', rate, divider); in isp_xclk_set_rate()
319 xclk->divider = 1; in isp_xclk_init()