Lines Matching refs:wm9081
552 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in wm9081_set_fll() local
559 if (Fref == wm9081->fll_fref && Fout == wm9081->fll_fout) in wm9081_set_fll()
565 wm9081->fll_fref = 0; in wm9081_set_fll()
566 wm9081->fll_fout = 0; in wm9081_set_fll()
634 wm9081->fll_fref = Fref; in wm9081_set_fll()
635 wm9081->fll_fout = Fout; in wm9081_set_fll()
642 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in configure_clock() local
649 switch (wm9081->sysclk_source) { in configure_clock()
651 if (wm9081->mclk_rate > 12225000) { in configure_clock()
653 wm9081->sysclk_rate = wm9081->mclk_rate / 2; in configure_clock()
655 wm9081->sysclk_rate = wm9081->mclk_rate; in configure_clock()
668 if (wm9081->master && wm9081->bclk) { in configure_clock()
673 target = wm9081->fs * clk_sys_rates[i].ratio; in configure_clock()
675 if (target >= wm9081->bclk && in configure_clock()
683 } else if (wm9081->fs) { in configure_clock()
686 * wm9081->fs; in configure_clock()
699 wm9081->mclk_rate, new_sysclk); in configure_clock()
701 wm9081->sysclk_rate = new_sysclk; in configure_clock()
706 wm9081->sysclk_rate = wm9081->mclk_rate; in configure_clock()
728 dev_dbg(codec->dev, "CLK_SYS is %dHz\n", wm9081->sysclk_rate); in configure_clock()
737 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in clk_sys_event() local
740 switch (wm9081->sysclk_source) { in clk_sys_event()
742 dev_dbg(codec->dev, "Using %dHz MCLK\n", wm9081->mclk_rate); in clk_sys_event()
746 wm9081->mclk_rate); in clk_sys_event()
822 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in wm9081_set_bias_level() local
841 regcache_cache_only(wm9081->regmap, false); in wm9081_set_bias_level()
842 regcache_sync(wm9081->regmap); in wm9081_set_bias_level()
896 regcache_cache_only(wm9081->regmap, true); in wm9081_set_bias_level()
907 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in wm9081_set_dai_fmt() local
915 wm9081->master = 0; in wm9081_set_dai_fmt()
919 wm9081->master = 1; in wm9081_set_dai_fmt()
923 wm9081->master = 1; in wm9081_set_dai_fmt()
927 wm9081->master = 1; in wm9081_set_dai_fmt()
999 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in wm9081_hw_params() local
1017 wm9081->fs = params_rate(params); in wm9081_hw_params()
1019 if (wm9081->tdm_width) { in wm9081_hw_params()
1024 wm9081->bclk = wm9081->fs * wm9081->tdm_width * slots; in wm9081_hw_params()
1027 wm9081->bclk = 2 * wm9081->fs; in wm9081_hw_params()
1031 wm9081->bclk *= 16; in wm9081_hw_params()
1034 wm9081->bclk *= 20; in wm9081_hw_params()
1038 wm9081->bclk *= 24; in wm9081_hw_params()
1042 wm9081->bclk *= 32; in wm9081_hw_params()
1050 dev_dbg(codec->dev, "Target BCLK is %dHz\n", wm9081->bclk); in wm9081_hw_params()
1058 best_val = abs((wm9081->sysclk_rate / clk_sys_rates[0].ratio) in wm9081_hw_params()
1059 - wm9081->fs); in wm9081_hw_params()
1061 cur_val = abs((wm9081->sysclk_rate / in wm9081_hw_params()
1062 clk_sys_rates[i].ratio) - wm9081->fs); in wm9081_hw_params()
1075 best_val = abs(wm9081->fs - sample_rates[0].rate); in wm9081_hw_params()
1078 cur_val = abs(wm9081->fs - sample_rates[i].rate); in wm9081_hw_params()
1093 cur_val = ((wm9081->sysclk_rate * 10) / bclk_divs[i].div) in wm9081_hw_params()
1094 - wm9081->bclk; in wm9081_hw_params()
1102 wm9081->bclk = (wm9081->sysclk_rate * 10) / bclk_divs[best].div; in wm9081_hw_params()
1104 bclk_divs[best].div, wm9081->bclk); in wm9081_hw_params()
1108 dev_dbg(codec->dev, "LRCLK_RATE is %d\n", wm9081->bclk / wm9081->fs); in wm9081_hw_params()
1109 aif4 |= wm9081->bclk / wm9081->fs; in wm9081_hw_params()
1112 if (wm9081->pdata.num_retune_configs) { in wm9081_hw_params()
1113 struct wm9081_pdata *pdata = &wm9081->pdata; in wm9081_hw_params()
1118 best_val = abs(pdata->retune_configs[0].rate - wm9081->fs); in wm9081_hw_params()
1121 wm9081->fs); in wm9081_hw_params()
1173 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in wm9081_set_sysclk() local
1178 wm9081->sysclk_source = clk_id; in wm9081_set_sysclk()
1179 wm9081->mclk_rate = freq; in wm9081_set_sysclk()
1193 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in wm9081_set_tdm_slot() local
1201 wm9081->tdm_width = slot_width; in wm9081_set_tdm_slot()
1259 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec); in wm9081_probe() local
1267 if (!wm9081->pdata.num_retune_configs) { in wm9081_probe()
1309 struct wm9081_priv *wm9081; in wm9081_i2c_probe() local
1313 wm9081 = devm_kzalloc(&i2c->dev, sizeof(struct wm9081_priv), in wm9081_i2c_probe()
1315 if (wm9081 == NULL) in wm9081_i2c_probe()
1318 i2c_set_clientdata(i2c, wm9081); in wm9081_i2c_probe()
1320 wm9081->regmap = devm_regmap_init_i2c(i2c, &wm9081_regmap); in wm9081_i2c_probe()
1321 if (IS_ERR(wm9081->regmap)) { in wm9081_i2c_probe()
1322 ret = PTR_ERR(wm9081->regmap); in wm9081_i2c_probe()
1327 ret = regmap_read(wm9081->regmap, WM9081_SOFTWARE_RESET, ®); in wm9081_i2c_probe()
1337 ret = wm9081_reset(wm9081->regmap); in wm9081_i2c_probe()
1344 memcpy(&wm9081->pdata, dev_get_platdata(&i2c->dev), in wm9081_i2c_probe()
1345 sizeof(wm9081->pdata)); in wm9081_i2c_probe()
1348 if (wm9081->pdata.irq_high) in wm9081_i2c_probe()
1350 if (!wm9081->pdata.irq_cmos) in wm9081_i2c_probe()
1352 regmap_update_bits(wm9081->regmap, WM9081_INTERRUPT_CONTROL, in wm9081_i2c_probe()
1355 regcache_cache_only(wm9081->regmap, true); in wm9081_i2c_probe()