Lines Matching defs:wm8731
3 * wm8731.c -- WM8731 ALSA SoC Audio driver
29 #include "wm8731.h"
39 * wm8731 register cache
70 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
76 if (wm8731->deemph) {
79 if (abs(wm8731_deemph[i] - wm8731->playback_fs) <
80 abs(wm8731_deemph[best] - wm8731->playback_fs))
100 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
102 ucontrol->value.integer.value[0] = wm8731->deemph;
111 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
118 mutex_lock(&wm8731->lock);
119 if (wm8731->deemph != deemph) {
120 wm8731->deemph = deemph;
126 mutex_unlock(&wm8731->lock);
195 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
197 return wm8731->sysclk_type == WM8731_SYSCLK_XTAL;
318 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
320 int i = get_coeff(wm8731->sysclk, params_rate(params));
324 wm8731->playback_fs = params_rate(params);
366 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
371 if (wm8731->mclk && clk_set_rate(wm8731->mclk, freq))
373 wm8731->sysclk_type = clk_id;
381 wm8731->constraints = NULL;
384 wm8731->constraints = &wm8731_constraints_12000000;
388 wm8731->constraints = &wm8731_constraints_12288000_18432000;
392 wm8731->constraints = &wm8731_constraints_11289600_16934400;
398 wm8731->sysclk = freq;
467 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
473 if (wm8731->mclk) {
474 ret = clk_prepare_enable(wm8731->mclk);
483 ret = regulator_bulk_enable(ARRAY_SIZE(wm8731->supplies),
484 wm8731->supplies);
488 regcache_sync(wm8731->regmap);
496 if (wm8731->mclk)
497 clk_disable_unprepare(wm8731->mclk);
499 regulator_bulk_disable(ARRAY_SIZE(wm8731->supplies),
500 wm8731->supplies);
501 regcache_mark_dirty(wm8731->regmap);
510 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(dai->component);
512 if (wm8731->constraints)
515 wm8731->constraints);
535 .name = "wm8731-hifi",
566 int wm8731_init(struct device *dev, struct wm8731_priv *wm8731)
570 wm8731->mclk = devm_clk_get(dev, "mclk");
571 if (IS_ERR(wm8731->mclk)) {
572 ret = PTR_ERR(wm8731->mclk);
574 wm8731->mclk = NULL;
582 mutex_init(&wm8731->lock);
584 for (i = 0; i < ARRAY_SIZE(wm8731->supplies); i++)
585 wm8731->supplies[i].supply = wm8731_supply_names[i];
587 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(wm8731->supplies),
588 wm8731->supplies);
594 ret = regulator_bulk_enable(ARRAY_SIZE(wm8731->supplies),
595 wm8731->supplies);
601 ret = wm8731_reset(wm8731->regmap);
608 regmap_write(wm8731->regmap, WM8731_PWR, 0x7f);
611 regmap_update_bits(wm8731->regmap, WM8731_LOUT1V, 0x100, 0);
612 regmap_update_bits(wm8731->regmap, WM8731_ROUT1V, 0x100, 0);
613 regmap_update_bits(wm8731->regmap, WM8731_LINVOL, 0x100, 0);
614 regmap_update_bits(wm8731->regmap, WM8731_RINVOL, 0x100, 0);
617 regmap_update_bits(wm8731->regmap, WM8731_APANA, 0x8, 0);
619 regcache_mark_dirty(wm8731->regmap);
632 regulator_bulk_disable(ARRAY_SIZE(wm8731->supplies), wm8731->supplies);