Lines Matching refs:fref
3443 static int madera_find_sync_fratio(unsigned int fref, int *fratio)
3448 if (fll_sync_fratios[i].min <= fref &&
3449 fref <= fll_sync_fratios[i].max) {
3460 static int madera_find_main_fratio(unsigned int fref, unsigned int fout,
3465 while ((fout / (ratio * fref)) > MADERA_FLL_MAX_N)
3474 static int madera_find_fratio(struct madera_fll *fll, unsigned int fref,
3482 return madera_find_sync_fratio(fref, fratio);
3485 return madera_find_sync_fratio(fref, fratio);
3487 return madera_find_main_fratio(fref,
3495 return madera_find_sync_fratio(fref, fratio);
3498 return madera_find_sync_fratio(fref, fratio);
3500 return madera_find_main_fratio(fref, fll->fout, fratio);
3506 unsigned int fref, bool sync)
3511 /* fref must be <=13.5MHz, find initial refdiv */
3514 while (fref > MADERA_FLL_MAX_FREF) {
3516 fref /= 2;
3524 init_ratio = madera_find_fratio(fll, fref, sync, &cfg->fratio);
3526 madera_fll_err(fll, "Unable to find FRATIO for fref=%uHz\n",
3527 fref);
3566 if (fll->fout % (ratio * fref)) {
3576 (MADERA_FLL_VCO_MULT * ratio) < fref)
3579 if (fref > pseudo_fref_max[ratio - 1])
3582 if (fll->fout % (ratio * fref)) {
3590 fref /= 2;
3592 init_ratio = madera_find_fratio(fll, fref, sync, NULL);
3602 unsigned int fref,
3609 if (gains[i].min <= fref && fref <= gains[i].max) {
3616 madera_fll_err(fll, "Unable to find gain for fref=%uHz\n", fref);
3623 unsigned int fref, bool sync)
3630 madera_fll_dbg(fll, "fref=%u Fout=%u fvco=%u\n",
3631 fref, fll->fout, fll->fout * MADERA_FLL_VCO_MULT);
3634 ratio = madera_calc_fratio(fll, cfg, fref, sync);
3639 fref = fref / (1 << cfg->refdiv);
3641 cfg->n = fll->fout / (ratio * fref);
3643 if (fll->fout % (ratio * fref)) {
3644 gcd_fll = gcd(fll->fout, ratio * fref);
3647 cfg->theta = (fll->fout - (cfg->n * ratio * fref))
3649 cfg->lambda = (ratio * fref) / gcd_fll;
3701 ret = madera_find_fll_gain(fll, cfg, fref, gains, n_gains);
4123 unsigned int fref, unsigned int fout)
4131 if (fll->sync_src == source && fll->sync_freq == fref)
4135 fll->sync_freq = fref;
4142 unsigned int fref, unsigned int fout)
4147 fll->ref_freq == fref && fll->fout == fout)
4166 fll->ref_freq = fref;
4423 int refdiv, fref, fout, lockdet_thr, fbdiv, hp, fast_clk, fllgcd;
4434 fref = fin / (1 << refdiv);
4441 frac = fout % fref;
4443 if (fref < MADERA_FLLHJ_LOW_THRESH) {
4450 } else if (fref < MADERA_FLLHJ_MID_THRESH) {
4477 ratio = fout / fref;
4479 madera_fll_dbg(fll, "refdiv=%d, fref=%d, frac:%d\n",
4480 refdiv, fref, frac);
4501 fllgcd = gcd(fout, fbdiv * fref);
4503 lambda = (fref * fbdiv) / fllgcd;