Lines Matching refs:wm8731

3  * wm8731.c  --  WM8731 ALSA SoC Audio driver
33 #include "wm8731.h"
59 * wm8731 register cache
90 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
96 if (wm8731->deemph) {
99 if (abs(wm8731_deemph[i] - wm8731->playback_fs) <
100 abs(wm8731_deemph[best] - wm8731->playback_fs))
120 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
122 ucontrol->value.integer.value[0] = wm8731->deemph;
131 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
138 mutex_lock(&wm8731->lock);
139 if (wm8731->deemph != deemph) {
140 wm8731->deemph = deemph;
146 mutex_unlock(&wm8731->lock);
215 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
217 return wm8731->sysclk_type == WM8731_SYSCLK_XTAL;
338 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
340 int i = get_coeff(wm8731->sysclk, params_rate(params));
344 wm8731->playback_fs = params_rate(params);
386 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
391 if (wm8731->mclk && clk_set_rate(wm8731->mclk, freq))
393 wm8731->sysclk_type = clk_id;
401 wm8731->constraints = NULL;
404 wm8731->constraints = &wm8731_constraints_12000000;
408 wm8731->constraints = &wm8731_constraints_12288000_18432000;
412 wm8731->constraints = &wm8731_constraints_11289600_16934400;
418 wm8731->sysclk = freq;
488 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(component);
494 if (wm8731->mclk) {
495 ret = clk_prepare_enable(wm8731->mclk);
504 ret = regulator_bulk_enable(ARRAY_SIZE(wm8731->supplies),
505 wm8731->supplies);
509 regcache_sync(wm8731->regmap);
517 if (wm8731->mclk)
518 clk_disable_unprepare(wm8731->mclk);
520 regulator_bulk_disable(ARRAY_SIZE(wm8731->supplies),
521 wm8731->supplies);
522 regcache_mark_dirty(wm8731->regmap);
531 struct wm8731_priv *wm8731 = snd_soc_component_get_drvdata(dai->component);
533 if (wm8731->constraints)
536 wm8731->constraints);
556 .name = "wm8731-hifi",
574 struct wm8731_priv *wm8731)
578 for (i = 0; i < ARRAY_SIZE(wm8731->supplies); i++)
579 wm8731->supplies[i].supply = wm8731_supply_names[i];
581 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(wm8731->supplies),
582 wm8731->supplies);
588 ret = regulator_bulk_enable(ARRAY_SIZE(wm8731->supplies),
589 wm8731->supplies);
598 static int wm8731_hw_init(struct device *dev, struct wm8731_priv *wm8731)
602 ret = wm8731_reset(wm8731->regmap);
609 regmap_write(wm8731->regmap, WM8731_PWR, 0x7f);
612 regmap_update_bits(wm8731->regmap, WM8731_LOUT1V, 0x100, 0);
613 regmap_update_bits(wm8731->regmap, WM8731_ROUT1V, 0x100, 0);
614 regmap_update_bits(wm8731->regmap, WM8731_LINVOL, 0x100, 0);
615 regmap_update_bits(wm8731->regmap, WM8731_RINVOL, 0x100, 0);
618 regmap_update_bits(wm8731->regmap, WM8731_APANA, 0x8, 0);
620 regcache_mark_dirty(wm8731->regmap);
642 { .compatible = "wlf,wm8731", },
663 struct wm8731_priv *wm8731;
666 wm8731 = devm_kzalloc(&spi->dev, sizeof(*wm8731), GFP_KERNEL);
667 if (wm8731 == NULL)
670 wm8731->mclk = devm_clk_get(&spi->dev, "mclk");
671 if (IS_ERR(wm8731->mclk)) {
672 ret = PTR_ERR(wm8731->mclk);
674 wm8731->mclk = NULL;
683 mutex_init(&wm8731->lock);
685 spi_set_drvdata(spi, wm8731);
687 ret = wm8731_request_supplies(&spi->dev, wm8731);
691 wm8731->regmap = devm_regmap_init_spi(spi, &wm8731_regmap);
692 if (IS_ERR(wm8731->regmap)) {
693 ret = PTR_ERR(wm8731->regmap);
699 ret = wm8731_hw_init(&spi->dev, wm8731);
720 .name = "wm8731",
732 struct wm8731_priv *wm8731;
735 wm8731 = devm_kzalloc(&i2c->dev, sizeof(struct wm8731_priv),
737 if (wm8731 == NULL)
740 wm8731->mclk = devm_clk_get(&i2c->dev, "mclk");
741 if (IS_ERR(wm8731->mclk)) {
742 ret = PTR_ERR(wm8731->mclk);
744 wm8731->mclk = NULL;
753 mutex_init(&wm8731->lock);
755 i2c_set_clientdata(i2c, wm8731);
757 ret = wm8731_request_supplies(&i2c->dev, wm8731);
761 wm8731->regmap = devm_regmap_init_i2c(i2c, &wm8731_regmap);
762 if (IS_ERR(wm8731->regmap)) {
763 ret = PTR_ERR(wm8731->regmap);
769 ret = wm8731_hw_init(&i2c->dev, wm8731);
784 regulator_bulk_disable(ARRAY_SIZE(wm8731->supplies), wm8731->supplies);
795 { "wm8731", 0 },
802 .name = "wm8731",