Lines Matching refs:fll_div
679 static int fll_factors(struct _fll_div *fll_div, unsigned int Fref, in fll_factors() argument
708 fll_div->fllclk_div = div >> 2; in fll_factors()
711 fll_div->fll_slow_lock_ref = 1; in fll_factors()
713 fll_div->fll_slow_lock_ref = 0; in fll_factors()
718 fll_div->fll_ratio = 8; in fll_factors()
720 fll_div->fll_ratio = 1; in fll_factors()
722 fll_div->n = Ndiv / fll_div->fll_ratio; in fll_factors()
723 Nmod = (target / fll_div->fll_ratio) % Fref; in fll_factors()
736 fll_div->k = K / 10; in fll_factors()
738 if (WARN_ON(target != Fout * (fll_div->fllclk_div << 2)) || in fll_factors()
739 WARN_ON(!K && target != Fref * fll_div->fll_ratio * fll_div->n)) in fll_factors()
749 struct _fll_div fll_div; in wm8900_set_fll() local
770 if (fll_factors(&fll_div, freq_in, freq_out) != 0) in wm8900_set_fll()
779 fll_div.fll_ratio | WM8900_REG_FLLCTL1_OSC_ENA); in wm8900_set_fll()
781 snd_soc_component_write(component, WM8900_REG_FLLCTL4, fll_div.n >> 5); in wm8900_set_fll()
783 (fll_div.fllclk_div << 6) | (fll_div.n & 0x1f)); in wm8900_set_fll()
785 if (fll_div.k) { in wm8900_set_fll()
787 (fll_div.k >> 8) | 0x100); in wm8900_set_fll()
788 snd_soc_component_write(component, WM8900_REG_FLLCTL3, fll_div.k & 0xff); in wm8900_set_fll()
792 if (fll_div.fll_slow_lock_ref) in wm8900_set_fll()