Lines Matching refs:wm8731
93 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec); in wm8731_set_deemph() local
99 if (wm8731->deemph) { in wm8731_set_deemph()
102 if (abs(wm8731_deemph[i] - wm8731->playback_fs) < in wm8731_set_deemph()
103 abs(wm8731_deemph[best] - wm8731->playback_fs)) in wm8731_set_deemph()
123 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec); in wm8731_get_deemph() local
125 ucontrol->value.integer.value[0] = wm8731->deemph; in wm8731_get_deemph()
134 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec); in wm8731_put_deemph() local
141 mutex_lock(&wm8731->lock); in wm8731_put_deemph()
142 if (wm8731->deemph != deemph) { in wm8731_put_deemph()
143 wm8731->deemph = deemph; in wm8731_put_deemph()
149 mutex_unlock(&wm8731->lock); in wm8731_put_deemph()
218 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec); in wm8731_check_osc() local
220 return wm8731->sysclk_type == WM8731_SYSCLK_XTAL; in wm8731_check_osc()
341 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec); in wm8731_hw_params() local
343 int i = get_coeff(wm8731->sysclk, params_rate(params)); in wm8731_hw_params()
347 wm8731->playback_fs = params_rate(params); in wm8731_hw_params()
386 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec); in wm8731_set_dai_sysclk() local
391 if (wm8731->mclk && clk_set_rate(wm8731->mclk, freq)) in wm8731_set_dai_sysclk()
393 wm8731->sysclk_type = clk_id; in wm8731_set_dai_sysclk()
401 wm8731->constraints = NULL; in wm8731_set_dai_sysclk()
404 wm8731->constraints = &wm8731_constraints_12000000; in wm8731_set_dai_sysclk()
408 wm8731->constraints = &wm8731_constraints_12288000_18432000; in wm8731_set_dai_sysclk()
412 wm8731->constraints = &wm8731_constraints_11289600_16934400; in wm8731_set_dai_sysclk()
418 wm8731->sysclk = freq; in wm8731_set_dai_sysclk()
488 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec); in wm8731_set_bias_level() local
494 if (wm8731->mclk) { in wm8731_set_bias_level()
495 ret = clk_prepare_enable(wm8731->mclk); in wm8731_set_bias_level()
504 ret = regulator_bulk_enable(ARRAY_SIZE(wm8731->supplies), in wm8731_set_bias_level()
505 wm8731->supplies); in wm8731_set_bias_level()
509 regcache_sync(wm8731->regmap); in wm8731_set_bias_level()
517 if (wm8731->mclk) in wm8731_set_bias_level()
518 clk_disable_unprepare(wm8731->mclk); in wm8731_set_bias_level()
520 regulator_bulk_disable(ARRAY_SIZE(wm8731->supplies), in wm8731_set_bias_level()
521 wm8731->supplies); in wm8731_set_bias_level()
522 regcache_mark_dirty(wm8731->regmap); in wm8731_set_bias_level()
531 struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(dai->codec); in wm8731_startup() local
533 if (wm8731->constraints) in wm8731_startup()
536 wm8731->constraints); in wm8731_startup()
573 struct wm8731_priv *wm8731) in wm8731_request_supplies() argument
577 for (i = 0; i < ARRAY_SIZE(wm8731->supplies); i++) in wm8731_request_supplies()
578 wm8731->supplies[i].supply = wm8731_supply_names[i]; in wm8731_request_supplies()
580 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(wm8731->supplies), in wm8731_request_supplies()
581 wm8731->supplies); in wm8731_request_supplies()
587 ret = regulator_bulk_enable(ARRAY_SIZE(wm8731->supplies), in wm8731_request_supplies()
588 wm8731->supplies); in wm8731_request_supplies()
597 static int wm8731_hw_init(struct device *dev, struct wm8731_priv *wm8731) in wm8731_hw_init() argument
601 ret = wm8731_reset(wm8731->regmap); in wm8731_hw_init()
608 regmap_write(wm8731->regmap, WM8731_PWR, 0x7f); in wm8731_hw_init()
611 regmap_update_bits(wm8731->regmap, WM8731_LOUT1V, 0x100, 0); in wm8731_hw_init()
612 regmap_update_bits(wm8731->regmap, WM8731_ROUT1V, 0x100, 0); in wm8731_hw_init()
613 regmap_update_bits(wm8731->regmap, WM8731_LINVOL, 0x100, 0); in wm8731_hw_init()
614 regmap_update_bits(wm8731->regmap, WM8731_RINVOL, 0x100, 0); in wm8731_hw_init()
617 regmap_update_bits(wm8731->regmap, WM8731_APANA, 0x8, 0); in wm8731_hw_init()
619 regcache_mark_dirty(wm8731->regmap); in wm8731_hw_init()
623 regulator_bulk_disable(ARRAY_SIZE(wm8731->supplies), wm8731->supplies); in wm8731_hw_init()
662 struct wm8731_priv *wm8731; in wm8731_spi_probe() local
665 wm8731 = devm_kzalloc(&spi->dev, sizeof(*wm8731), GFP_KERNEL); in wm8731_spi_probe()
666 if (wm8731 == NULL) in wm8731_spi_probe()
669 wm8731->mclk = devm_clk_get(&spi->dev, "mclk"); in wm8731_spi_probe()
670 if (IS_ERR(wm8731->mclk)) { in wm8731_spi_probe()
671 ret = PTR_ERR(wm8731->mclk); in wm8731_spi_probe()
673 wm8731->mclk = NULL; in wm8731_spi_probe()
682 mutex_init(&wm8731->lock); in wm8731_spi_probe()
684 spi_set_drvdata(spi, wm8731); in wm8731_spi_probe()
686 ret = wm8731_request_supplies(&spi->dev, wm8731); in wm8731_spi_probe()
690 wm8731->regmap = devm_regmap_init_spi(spi, &wm8731_regmap); in wm8731_spi_probe()
691 if (IS_ERR(wm8731->regmap)) { in wm8731_spi_probe()
692 ret = PTR_ERR(wm8731->regmap); in wm8731_spi_probe()
698 ret = wm8731_hw_init(&spi->dev, wm8731); in wm8731_spi_probe()
732 struct wm8731_priv *wm8731; in wm8731_i2c_probe() local
735 wm8731 = devm_kzalloc(&i2c->dev, sizeof(struct wm8731_priv), in wm8731_i2c_probe()
737 if (wm8731 == NULL) in wm8731_i2c_probe()
740 wm8731->mclk = devm_clk_get(&i2c->dev, "mclk"); in wm8731_i2c_probe()
741 if (IS_ERR(wm8731->mclk)) { in wm8731_i2c_probe()
742 ret = PTR_ERR(wm8731->mclk); in wm8731_i2c_probe()
744 wm8731->mclk = NULL; in wm8731_i2c_probe()
753 mutex_init(&wm8731->lock); in wm8731_i2c_probe()
755 i2c_set_clientdata(i2c, wm8731); in wm8731_i2c_probe()
757 ret = wm8731_request_supplies(&i2c->dev, wm8731); in wm8731_i2c_probe()
761 wm8731->regmap = devm_regmap_init_i2c(i2c, &wm8731_regmap); in wm8731_i2c_probe()
762 if (IS_ERR(wm8731->regmap)) { in wm8731_i2c_probe()
763 ret = PTR_ERR(wm8731->regmap); in wm8731_i2c_probe()
769 ret = wm8731_hw_init(&i2c->dev, wm8731); in wm8731_i2c_probe()