Lines Matching full:fref
3444 static int madera_find_sync_fratio(unsigned int fref, int *fratio) in madera_find_sync_fratio() argument
3449 if (fll_sync_fratios[i].min <= fref && in madera_find_sync_fratio()
3450 fref <= fll_sync_fratios[i].max) { in madera_find_sync_fratio()
3461 static int madera_find_main_fratio(unsigned int fref, unsigned int fout, in madera_find_main_fratio() argument
3466 while ((fout / (ratio * fref)) > MADERA_FLL_MAX_N) in madera_find_main_fratio()
3475 static int madera_find_fratio(struct madera_fll *fll, unsigned int fref, in madera_find_fratio() argument
3483 return madera_find_sync_fratio(fref, fratio); in madera_find_fratio()
3486 return madera_find_sync_fratio(fref, fratio); in madera_find_fratio()
3488 return madera_find_main_fratio(fref, in madera_find_fratio()
3496 return madera_find_sync_fratio(fref, fratio); in madera_find_fratio()
3499 return madera_find_sync_fratio(fref, fratio); in madera_find_fratio()
3501 return madera_find_main_fratio(fref, fll->fout, fratio); in madera_find_fratio()
3507 unsigned int fref, bool sync) in madera_calc_fratio() argument
3512 /* fref must be <=13.5MHz, find initial refdiv */ in madera_calc_fratio()
3515 while (fref > MADERA_FLL_MAX_FREF) { in madera_calc_fratio()
3517 fref /= 2; in madera_calc_fratio()
3525 init_ratio = madera_find_fratio(fll, fref, sync, &cfg->fratio); in madera_calc_fratio()
3527 madera_fll_err(fll, "Unable to find FRATIO for fref=%uHz\n", in madera_calc_fratio()
3528 fref); in madera_calc_fratio()
3567 if (fll->fout % (ratio * fref)) { in madera_calc_fratio()
3577 (MADERA_FLL_VCO_MULT * ratio) < fref) in madera_calc_fratio()
3580 if (fref > pseudo_fref_max[ratio - 1]) in madera_calc_fratio()
3583 if (fll->fout % (ratio * fref)) { in madera_calc_fratio()
3591 fref /= 2; in madera_calc_fratio()
3593 init_ratio = madera_find_fratio(fll, fref, sync, NULL); in madera_calc_fratio()
3603 unsigned int fref, in madera_find_fll_gain() argument
3610 if (gains[i].min <= fref && fref <= gains[i].max) { in madera_find_fll_gain()
3617 madera_fll_err(fll, "Unable to find gain for fref=%uHz\n", fref); in madera_find_fll_gain()
3624 unsigned int fref, bool sync) in madera_calc_fll() argument
3631 madera_fll_dbg(fll, "fref=%u Fout=%u fvco=%u\n", in madera_calc_fll()
3632 fref, fll->fout, fll->fout * MADERA_FLL_VCO_MULT); in madera_calc_fll()
3635 ratio = madera_calc_fratio(fll, cfg, fref, sync); in madera_calc_fll()
3640 fref = fref / (1 << cfg->refdiv); in madera_calc_fll()
3642 cfg->n = fll->fout / (ratio * fref); in madera_calc_fll()
3644 if (fll->fout % (ratio * fref)) { in madera_calc_fll()
3645 gcd_fll = gcd(fll->fout, ratio * fref); in madera_calc_fll()
3648 cfg->theta = (fll->fout - (cfg->n * ratio * fref)) in madera_calc_fll()
3650 cfg->lambda = (ratio * fref) / gcd_fll; in madera_calc_fll()
3702 ret = madera_find_fll_gain(fll, cfg, fref, gains, n_gains); in madera_calc_fll()
4124 unsigned int fref, unsigned int fout) in madera_set_fll_syncclk() argument
4132 if (fll->sync_src == source && fll->sync_freq == fref) in madera_set_fll_syncclk()
4136 fll->sync_freq = fref; in madera_set_fll_syncclk()
4143 unsigned int fref, unsigned int fout) in madera_set_fll_refclk() argument
4148 fll->ref_freq == fref && fll->fout == fout) in madera_set_fll_refclk()
4167 fll->ref_freq = fref; in madera_set_fll_refclk()
4424 int refdiv, fref, fout, lockdet_thr, fbdiv, hp, fast_clk, fllgcd; in madera_fllhj_apply() local
4435 fref = fin / (1 << refdiv); in madera_fllhj_apply()
4442 frac = fout % fref; in madera_fllhj_apply()
4444 if (fref < MADERA_FLLHJ_LOW_THRESH) { in madera_fllhj_apply()
4451 } else if (fref < MADERA_FLLHJ_MID_THRESH) { in madera_fllhj_apply()
4478 ratio = fout / fref; in madera_fllhj_apply()
4480 madera_fll_dbg(fll, "refdiv=%d, fref=%d, frac:%d\n", in madera_fllhj_apply()
4481 refdiv, fref, frac); in madera_fllhj_apply()
4502 fllgcd = gcd(fout, fbdiv * fref); in madera_fllhj_apply()
4504 lambda = (fref * fbdiv) / fllgcd; in madera_fllhj_apply()