Lines Matching refs:fref
3419 static int madera_find_sync_fratio(unsigned int fref, int *fratio) in madera_find_sync_fratio() argument
3424 if (fll_sync_fratios[i].min <= fref && in madera_find_sync_fratio()
3425 fref <= fll_sync_fratios[i].max) { in madera_find_sync_fratio()
3436 static int madera_find_main_fratio(unsigned int fref, unsigned int fout, in madera_find_main_fratio() argument
3441 while ((fout / (ratio * fref)) > MADERA_FLL_MAX_N) in madera_find_main_fratio()
3450 static int madera_find_fratio(struct madera_fll *fll, unsigned int fref, in madera_find_fratio() argument
3458 return madera_find_sync_fratio(fref, fratio); in madera_find_fratio()
3461 return madera_find_sync_fratio(fref, fratio); in madera_find_fratio()
3463 return madera_find_main_fratio(fref, in madera_find_fratio()
3471 return madera_find_sync_fratio(fref, fratio); in madera_find_fratio()
3474 return madera_find_sync_fratio(fref, fratio); in madera_find_fratio()
3476 return madera_find_main_fratio(fref, fll->fout, fratio); in madera_find_fratio()
3482 unsigned int fref, bool sync) in madera_calc_fratio() argument
3490 while (fref > MADERA_FLL_MAX_FREF) { in madera_calc_fratio()
3492 fref /= 2; in madera_calc_fratio()
3500 init_ratio = madera_find_fratio(fll, fref, sync, &cfg->fratio); in madera_calc_fratio()
3503 fref); in madera_calc_fratio()
3542 if (fll->fout % (ratio * fref)) { in madera_calc_fratio()
3552 (MADERA_FLL_VCO_MULT * ratio) < fref) in madera_calc_fratio()
3555 if (fref > pseudo_fref_max[ratio - 1]) in madera_calc_fratio()
3558 if (fll->fout % (ratio * fref)) { in madera_calc_fratio()
3566 fref /= 2; in madera_calc_fratio()
3568 init_ratio = madera_find_fratio(fll, fref, sync, NULL); in madera_calc_fratio()
3578 unsigned int fref, in madera_find_fll_gain() argument
3585 if (gains[i].min <= fref && fref <= gains[i].max) { in madera_find_fll_gain()
3592 madera_fll_err(fll, "Unable to find gain for fref=%uHz\n", fref); in madera_find_fll_gain()
3599 unsigned int fref, bool sync) in madera_calc_fll() argument
3607 fref, fll->fout, fll->fout * MADERA_FLL_VCO_MULT); in madera_calc_fll()
3610 ratio = madera_calc_fratio(fll, cfg, fref, sync); in madera_calc_fll()
3615 fref = fref / (1 << cfg->refdiv); in madera_calc_fll()
3617 cfg->n = fll->fout / (ratio * fref); in madera_calc_fll()
3619 if (fll->fout % (ratio * fref)) { in madera_calc_fll()
3620 gcd_fll = gcd(fll->fout, ratio * fref); in madera_calc_fll()
3623 cfg->theta = (fll->fout - (cfg->n * ratio * fref)) in madera_calc_fll()
3625 cfg->lambda = (ratio * fref) / gcd_fll; in madera_calc_fll()
3677 ret = madera_find_fll_gain(fll, cfg, fref, gains, n_gains); in madera_calc_fll()
4022 unsigned int fref, unsigned int fout) in madera_set_fll_syncclk() argument
4030 if (fll->sync_src == source && fll->sync_freq == fref) in madera_set_fll_syncclk()
4034 fll->sync_freq = fref; in madera_set_fll_syncclk()
4041 unsigned int fref, unsigned int fout) in madera_set_fll_refclk() argument
4046 fll->ref_freq == fref && fll->fout == fout) in madera_set_fll_refclk()
4065 fll->ref_freq = fref; in madera_set_fll_refclk()
4313 int refdiv, fref, fout, lockdet_thr, fbdiv, hp, fast_clk, fllgcd; in madera_fllhj_apply() local
4324 fref = fin / (1 << refdiv); in madera_fllhj_apply()
4331 frac = fout % fref; in madera_fllhj_apply()
4333 if (fref < MADERA_FLLHJ_LOW_THRESH) { in madera_fllhj_apply()
4340 } else if (fref < MADERA_FLLHJ_MID_THRESH) { in madera_fllhj_apply()
4367 ratio = fout / fref; in madera_fllhj_apply()
4370 refdiv, fref, frac); in madera_fllhj_apply()
4391 fllgcd = gcd(fout, fbdiv * fref); in madera_fllhj_apply()
4393 lambda = (fref * fbdiv) / fllgcd; in madera_fllhj_apply()