Lines Matching refs:adau1701

108 struct adau1701 {  struct
260 struct adau1701 *adau1701 = i2c_get_clientdata(client); in adau1701_safeload() local
266 ret = regmap_read(adau1701->regmap, ADAU1701_DSPCTRL, &val); in adau1701_safeload()
292 return regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL, in adau1701_safeload()
303 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_reset() local
307 sigmadsp_reset(adau1701->sigmadsp); in adau1701_reset()
309 if (clkdiv != ADAU1707_CLKDIV_UNSET && adau1701->gpio_pll_mode) { in adau1701_reset()
329 gpiod_set_array_value_cansleep(adau1701->gpio_pll_mode->ndescs, in adau1701_reset()
330 adau1701->gpio_pll_mode->desc, adau1701->gpio_pll_mode->info, in adau1701_reset()
334 adau1701->pll_clkdiv = clkdiv; in adau1701_reset()
336 if (adau1701->gpio_nreset) { in adau1701_reset()
337 gpiod_set_value_cansleep(adau1701->gpio_nreset, 0); in adau1701_reset()
340 gpiod_set_value_cansleep(adau1701->gpio_nreset, 1); in adau1701_reset()
350 ret = sigmadsp_setup(adau1701->sigmadsp, rate); in adau1701_reset()
357 regmap_write(adau1701->regmap, ADAU1701_DACSET, ADAU1701_DACSET_DACINIT); in adau1701_reset()
358 regmap_write(adau1701->regmap, ADAU1701_DSPCTRL, ADAU1701_DSPCTRL_CR); in adau1701_reset()
360 regcache_mark_dirty(adau1701->regmap); in adau1701_reset()
361 regcache_sync(adau1701->regmap); in adau1701_reset()
369 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_set_capture_pcm_format() local
387 if (adau1701->dai_fmt == SND_SOC_DAIFMT_RIGHT_J) { in adau1701_set_capture_pcm_format()
402 regmap_update_bits(adau1701->regmap, ADAU1701_SEROCTL, mask, val); in adau1701_set_capture_pcm_format()
410 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_set_playback_pcm_format() local
413 if (adau1701->dai_fmt != SND_SOC_DAIFMT_RIGHT_J) in adau1701_set_playback_pcm_format()
430 regmap_update_bits(adau1701->regmap, ADAU1701_SERICTL, in adau1701_set_playback_pcm_format()
440 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_hw_params() local
441 unsigned int clkdiv = adau1701->sysclk / params_rate(params); in adau1701_hw_params()
450 if (clkdiv != adau1701->pll_clkdiv) { in adau1701_hw_params()
470 regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL, in adau1701_hw_params()
483 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_set_dai_fmt() local
543 adau1701->dai_fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK; in adau1701_set_dai_fmt()
545 regmap_write(adau1701->regmap, ADAU1701_SERICTL, serictl); in adau1701_set_dai_fmt()
546 regmap_update_bits(adau1701->regmap, ADAU1701_SEROCTL, in adau1701_set_dai_fmt()
556 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_set_bias_level() local
565 regmap_update_bits(adau1701->regmap, in adau1701_set_bias_level()
570 regmap_update_bits(adau1701->regmap, in adau1701_set_bias_level()
582 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_mute_stream() local
590 regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL, mask, val); in adau1701_mute_stream()
599 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_set_sysclk() local
612 regmap_update_bits(adau1701->regmap, ADAU1701_OSCIPOW, in adau1701_set_sysclk()
614 adau1701->sysclk = freq; in adau1701_set_sysclk()
622 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(dai->component); in adau1701_startup() local
624 return sigmadsp_restrict_params(adau1701->sigmadsp, substream); in adau1701_startup()
673 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_probe() local
675 ret = sigmadsp_attach(adau1701->sigmadsp, component); in adau1701_probe()
679 ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies), in adau1701_probe()
680 adau1701->supplies); in adau1701_probe()
692 adau1701->pll_clkdiv = ADAU1707_CLKDIV_UNSET; in adau1701_probe()
695 ret = adau1701_reset(component, adau1701->pll_clkdiv, 0); in adau1701_probe()
702 val |= adau1701->pin_config[i] << (i * 4); in adau1701_probe()
704 regmap_write(adau1701->regmap, ADAU1701_PINCONF_0, val); in adau1701_probe()
708 val |= adau1701->pin_config[i + 6] << (i * 4); in adau1701_probe()
710 regmap_write(adau1701->regmap, ADAU1701_PINCONF_1, val); in adau1701_probe()
716 regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies); in adau1701_probe()
722 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_remove() local
724 if (adau1701->gpio_nreset) in adau1701_remove()
725 gpiod_set_value_cansleep(adau1701->gpio_nreset, 0); in adau1701_remove()
727 regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies); in adau1701_remove()
733 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_suspend() local
735 regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), in adau1701_suspend()
736 adau1701->supplies); in adau1701_suspend()
743 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component); in adau1701_resume() local
746 ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies), in adau1701_resume()
747 adau1701->supplies); in adau1701_resume()
753 return adau1701_reset(component, adau1701->pll_clkdiv, 0); in adau1701_resume()
789 struct adau1701 *adau1701; in adau1701_i2c_probe() local
793 adau1701 = devm_kzalloc(dev, sizeof(*adau1701), GFP_KERNEL); in adau1701_i2c_probe()
794 if (!adau1701) in adau1701_i2c_probe()
798 adau1701->supplies[i].supply = supply_names[i]; in adau1701_i2c_probe()
800 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(adau1701->supplies), in adau1701_i2c_probe()
801 adau1701->supplies); in adau1701_i2c_probe()
807 ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies), in adau1701_i2c_probe()
808 adau1701->supplies); in adau1701_i2c_probe()
814 adau1701->client = client; in adau1701_i2c_probe()
815 adau1701->regmap = devm_regmap_init(dev, NULL, client, in adau1701_i2c_probe()
817 if (IS_ERR(adau1701->regmap)) { in adau1701_i2c_probe()
818 ret = PTR_ERR(adau1701->regmap); in adau1701_i2c_probe()
825 &adau1701->pll_clkdiv); in adau1701_i2c_probe()
828 adau1701->pin_config, in adau1701_i2c_probe()
829 ARRAY_SIZE(adau1701->pin_config)); in adau1701_i2c_probe()
832 adau1701->gpio_nreset = devm_gpiod_get_optional(dev, "reset", GPIOD_IN); in adau1701_i2c_probe()
834 if (IS_ERR(adau1701->gpio_nreset)) { in adau1701_i2c_probe()
835 ret = PTR_ERR(adau1701->gpio_nreset); in adau1701_i2c_probe()
839 adau1701->gpio_pll_mode = devm_gpiod_get_array_optional(dev, "adi,pll-mode", GPIOD_OUT_LOW); in adau1701_i2c_probe()
841 if (IS_ERR(adau1701->gpio_pll_mode)) { in adau1701_i2c_probe()
842 ret = PTR_ERR(adau1701->gpio_pll_mode); in adau1701_i2c_probe()
846 i2c_set_clientdata(client, adau1701); in adau1701_i2c_probe()
848 adau1701->sigmadsp = devm_sigmadsp_init_i2c(client, in adau1701_i2c_probe()
850 if (IS_ERR(adau1701->sigmadsp)) { in adau1701_i2c_probe()
851 ret = PTR_ERR(adau1701->sigmadsp); in adau1701_i2c_probe()
861 regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies); in adau1701_i2c_probe()