Lines Matching refs:wm8960
164 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_set_deemph() local
170 if (wm8960->deemph) { in wm8960_set_deemph()
173 if (abs(deemph_settings[i] - wm8960->lrclk) < in wm8960_set_deemph()
174 abs(deemph_settings[best] - wm8960->lrclk)) in wm8960_set_deemph()
193 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_get_deemph() local
195 ucontrol->value.integer.value[0] = wm8960->deemph; in wm8960_get_deemph()
203 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_put_deemph() local
209 wm8960->deemph = deemph; in wm8960_put_deemph()
464 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_add_widgets() local
465 struct wm8960_data *pdata = &wm8960->pdata; in wm8960_add_widgets()
500 wm8960->lout1 = w; in wm8960_add_widgets()
502 wm8960->rout1 = w; in wm8960_add_widgets()
504 wm8960->out3 = w; in wm8960_add_widgets()
598 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_configure_clocking() local
609 if (wm8960->clk_id != WM8960_SYSCLK_MCLK && !wm8960->freq_in) { in wm8960_configure_clocking()
614 freq_in = wm8960->freq_in; in wm8960_configure_clocking()
615 bclk = wm8960->bclk; in wm8960_configure_clocking()
616 lrclk = wm8960->lrclk; in wm8960_configure_clocking()
623 if (wm8960->clk_id == WM8960_SYSCLK_AUTO) { in wm8960_configure_clocking()
627 } else if (wm8960->sysclk) { in wm8960_configure_clocking()
628 freq_out = wm8960->sysclk; in wm8960_configure_clocking()
654 } else if (wm8960->clk_id != WM8960_SYSCLK_AUTO) { in wm8960_configure_clocking()
707 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_hw_params() local
712 wm8960->bclk = snd_soc_params_to_bclk(params); in wm8960_hw_params()
714 wm8960->bclk *= 2; in wm8960_hw_params()
738 wm8960->lrclk = params_rate(params); in wm8960_hw_params()
753 wm8960->is_stream_in_use[tx] = true; in wm8960_hw_params()
756 !wm8960->is_stream_in_use[!tx]) in wm8960_hw_params()
766 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_hw_free() local
769 wm8960->is_stream_in_use[tx] = false; in wm8960_hw_free()
788 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_set_bias_level_out3() local
799 if (!IS_ERR(wm8960->mclk)) { in wm8960_set_bias_level_out3()
800 ret = clk_prepare_enable(wm8960->mclk); in wm8960_set_bias_level_out3()
822 if (wm8960->clk_id == WM8960_SYSCLK_AUTO && (pm2 & 0x1)) in wm8960_set_bias_level_out3()
825 if (!IS_ERR(wm8960->mclk)) in wm8960_set_bias_level_out3()
826 clk_disable_unprepare(wm8960->mclk); in wm8960_set_bias_level_out3()
837 regcache_sync(wm8960->regmap); in wm8960_set_bias_level_out3()
878 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_set_bias_level_capless() local
898 if (wm8960->lout1 && wm8960->lout1->power) in wm8960_set_bias_level_capless()
900 if (wm8960->rout1 && wm8960->rout1->power) in wm8960_set_bias_level_capless()
902 if (wm8960->out3 && wm8960->out3->power) in wm8960_set_bias_level_capless()
922 if (!IS_ERR(wm8960->mclk)) { in wm8960_set_bias_level_capless()
923 ret = clk_prepare_enable(wm8960->mclk); in wm8960_set_bias_level_capless()
943 if (wm8960->clk_id == WM8960_SYSCLK_AUTO && (pm2 & 0x1)) in wm8960_set_bias_level_capless()
946 if (!IS_ERR(wm8960->mclk)) in wm8960_set_bias_level_capless()
947 clk_disable_unprepare(wm8960->mclk); in wm8960_set_bias_level_capless()
962 regcache_sync(wm8960->regmap); in wm8960_set_bias_level_capless()
1123 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_set_dai_pll() local
1125 wm8960->freq_in = freq_in; in wm8960_set_dai_pll()
1170 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_set_bias_level() local
1172 return wm8960->set_bias_level(codec, level); in wm8960_set_bias_level()
1179 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_set_dai_sysclk() local
1196 wm8960->sysclk = freq; in wm8960_set_dai_sysclk()
1197 wm8960->clk_id = clk_id; in wm8960_set_dai_sysclk()
1238 struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); in wm8960_probe() local
1239 struct wm8960_data *pdata = &wm8960->pdata; in wm8960_probe()
1242 wm8960->set_bias_level = wm8960_set_bias_level_capless; in wm8960_probe()
1244 wm8960->set_bias_level = wm8960_set_bias_level_out3; in wm8960_probe()
1287 struct wm8960_priv *wm8960; in wm8960_i2c_probe() local
1290 wm8960 = devm_kzalloc(&i2c->dev, sizeof(struct wm8960_priv), in wm8960_i2c_probe()
1292 if (wm8960 == NULL) in wm8960_i2c_probe()
1295 wm8960->mclk = devm_clk_get(&i2c->dev, "mclk"); in wm8960_i2c_probe()
1296 if (IS_ERR(wm8960->mclk)) { in wm8960_i2c_probe()
1297 if (PTR_ERR(wm8960->mclk) == -EPROBE_DEFER) in wm8960_i2c_probe()
1301 wm8960->regmap = devm_regmap_init_i2c(i2c, &wm8960_regmap); in wm8960_i2c_probe()
1302 if (IS_ERR(wm8960->regmap)) in wm8960_i2c_probe()
1303 return PTR_ERR(wm8960->regmap); in wm8960_i2c_probe()
1306 memcpy(&wm8960->pdata, pdata, sizeof(struct wm8960_data)); in wm8960_i2c_probe()
1308 wm8960_set_pdata_from_of(i2c, &wm8960->pdata); in wm8960_i2c_probe()
1310 ret = wm8960_reset(wm8960->regmap); in wm8960_i2c_probe()
1316 if (wm8960->pdata.shared_lrclk) { in wm8960_i2c_probe()
1317 ret = regmap_update_bits(wm8960->regmap, WM8960_ADDCTL2, in wm8960_i2c_probe()
1327 regmap_update_bits(wm8960->regmap, WM8960_LINVOL, 0x100, 0x100); in wm8960_i2c_probe()
1328 regmap_update_bits(wm8960->regmap, WM8960_RINVOL, 0x100, 0x100); in wm8960_i2c_probe()
1329 regmap_update_bits(wm8960->regmap, WM8960_LADC, 0x100, 0x100); in wm8960_i2c_probe()
1330 regmap_update_bits(wm8960->regmap, WM8960_RADC, 0x100, 0x100); in wm8960_i2c_probe()
1331 regmap_update_bits(wm8960->regmap, WM8960_LDAC, 0x100, 0x100); in wm8960_i2c_probe()
1332 regmap_update_bits(wm8960->regmap, WM8960_RDAC, 0x100, 0x100); in wm8960_i2c_probe()
1333 regmap_update_bits(wm8960->regmap, WM8960_LOUT1, 0x100, 0x100); in wm8960_i2c_probe()
1334 regmap_update_bits(wm8960->regmap, WM8960_ROUT1, 0x100, 0x100); in wm8960_i2c_probe()
1335 regmap_update_bits(wm8960->regmap, WM8960_LOUT2, 0x100, 0x100); in wm8960_i2c_probe()
1336 regmap_update_bits(wm8960->regmap, WM8960_ROUT2, 0x100, 0x100); in wm8960_i2c_probe()
1338 i2c_set_clientdata(i2c, wm8960); in wm8960_i2c_probe()