Lines Matching defs:pll
13 #include "aptina-pll.h"
17 struct aptina_pll *pll)
27 pll->ext_clock, pll->pix_clock);
29 if (pll->ext_clock < limits->ext_clock_min ||
30 pll->ext_clock > limits->ext_clock_max) {
31 dev_err(dev, "pll: invalid external clock frequency.\n");
35 if (pll->pix_clock == 0 || pll->pix_clock > limits->pix_clock_max) {
36 dev_err(dev, "pll: invalid pixel clock frequency.\n");
41 div = gcd(pll->pix_clock, pll->ext_clock);
42 pll->m = pll->pix_clock / div;
43 div = pll->ext_clock / div;
55 mf_min = DIV_ROUND_UP(limits->m_min, pll->m);
57 (pll->ext_clock / limits->n_min * pll->m));
59 mf_max = limits->m_max / pll->m;
61 (pll->ext_clock / limits->n_max * pll->m));
64 dev_dbg(dev, "pll: mf min %u max %u\n", mf_min, mf_max);
66 dev_err(dev, "pll: no valid combined N*P1 divisor.\n");
79 * m = pll->m * mf
123 dev_err(dev, "pll: P1 minimum value must be >0.\n");
128 pll->ext_clock * pll->m));
130 (pll->ext_clock * pll->m));
137 mf_low = roundup(max(mf_min, DIV_ROUND_UP(pll->ext_clock * p1,
139 mf_high = min(mf_max, pll->ext_clock * p1 /
145 pll->n = div * mf_low / p1;
146 pll->m *= mf_low;
147 pll->p1 = p1;
148 dev_dbg(dev, "PLL: N %u M %u P1 %u\n", pll->n, pll->m, pll->p1);
152 dev_err(dev, "pll: no valid N and P1 divisors found.\n");