Lines Matching defs:adau1701
28 #include "adau1701.h"
102 #define ADAU1701_FIRMWARE "adau1701.bin"
108 struct adau1701 {
260 struct adau1701 *adau1701 = i2c_get_clientdata(client);
266 ret = regmap_read(adau1701->regmap, ADAU1701_DSPCTRL, &val);
292 return regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL,
303 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
306 sigmadsp_reset(adau1701->sigmadsp);
309 gpio_is_valid(adau1701->gpio_pll_mode[0]) &&
310 gpio_is_valid(adau1701->gpio_pll_mode[1])) {
313 gpio_set_value_cansleep(adau1701->gpio_pll_mode[0], 0);
314 gpio_set_value_cansleep(adau1701->gpio_pll_mode[1], 0);
317 gpio_set_value_cansleep(adau1701->gpio_pll_mode[0], 0);
318 gpio_set_value_cansleep(adau1701->gpio_pll_mode[1], 1);
321 gpio_set_value_cansleep(adau1701->gpio_pll_mode[0], 1);
322 gpio_set_value_cansleep(adau1701->gpio_pll_mode[1], 0);
326 gpio_set_value_cansleep(adau1701->gpio_pll_mode[0], 1);
327 gpio_set_value_cansleep(adau1701->gpio_pll_mode[1], 1);
332 adau1701->pll_clkdiv = clkdiv;
334 if (gpio_is_valid(adau1701->gpio_nreset)) {
335 gpio_set_value_cansleep(adau1701->gpio_nreset, 0);
338 gpio_set_value_cansleep(adau1701->gpio_nreset, 1);
348 ret = sigmadsp_setup(adau1701->sigmadsp, rate);
355 regmap_write(adau1701->regmap, ADAU1701_DACSET, ADAU1701_DACSET_DACINIT);
356 regmap_write(adau1701->regmap, ADAU1701_DSPCTRL, ADAU1701_DSPCTRL_CR);
358 regcache_mark_dirty(adau1701->regmap);
359 regcache_sync(adau1701->regmap);
367 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
385 if (adau1701->dai_fmt == SND_SOC_DAIFMT_RIGHT_J) {
400 regmap_update_bits(adau1701->regmap, ADAU1701_SEROCTL, mask, val);
408 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
411 if (adau1701->dai_fmt != SND_SOC_DAIFMT_RIGHT_J)
428 regmap_update_bits(adau1701->regmap, ADAU1701_SERICTL,
438 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
439 unsigned int clkdiv = adau1701->sysclk / params_rate(params);
448 if (clkdiv != adau1701->pll_clkdiv) {
468 regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL,
481 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
541 adau1701->dai_fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK;
543 regmap_write(adau1701->regmap, ADAU1701_SERICTL, serictl);
544 regmap_update_bits(adau1701->regmap, ADAU1701_SEROCTL,
554 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
563 regmap_update_bits(adau1701->regmap,
568 regmap_update_bits(adau1701->regmap,
580 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
588 regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL, mask, val);
597 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
610 regmap_update_bits(adau1701->regmap, ADAU1701_OSCIPOW,
612 adau1701->sysclk = freq;
620 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(dai->component);
622 return sigmadsp_restrict_params(adau1701->sigmadsp, substream);
640 .name = "adau1701",
661 { .compatible = "adi,adau1701", },
671 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
673 ret = sigmadsp_attach(adau1701->sigmadsp, component);
677 ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies),
678 adau1701->supplies);
690 adau1701->pll_clkdiv = ADAU1707_CLKDIV_UNSET;
693 ret = adau1701_reset(component, adau1701->pll_clkdiv, 0);
700 val |= adau1701->pin_config[i] << (i * 4);
702 regmap_write(adau1701->regmap, ADAU1701_PINCONF_0, val);
706 val |= adau1701->pin_config[i + 6] << (i * 4);
708 regmap_write(adau1701->regmap, ADAU1701_PINCONF_1, val);
714 regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies);
720 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
722 if (gpio_is_valid(adau1701->gpio_nreset))
723 gpio_set_value_cansleep(adau1701->gpio_nreset, 0);
725 regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies);
731 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
733 regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies),
734 adau1701->supplies);
741 struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
744 ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies),
745 adau1701->supplies);
751 return adau1701_reset(component, adau1701->pll_clkdiv, 0);
789 struct adau1701 *adau1701;
795 adau1701 = devm_kzalloc(dev, sizeof(*adau1701), GFP_KERNEL);
796 if (!adau1701)
800 adau1701->supplies[i].supply = supply_names[i];
802 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(adau1701->supplies),
803 adau1701->supplies);
809 ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies),
810 adau1701->supplies);
816 adau1701->client = client;
817 adau1701->regmap = devm_regmap_init(dev, NULL, client,
819 if (IS_ERR(adau1701->regmap)) {
820 ret = PTR_ERR(adau1701->regmap);
847 &adau1701->pll_clkdiv);
850 adau1701->pin_config,
851 ARRAY_SIZE(adau1701->pin_config));
876 adau1701->gpio_nreset = gpio_nreset;
877 adau1701->gpio_pll_mode[0] = gpio_pll_mode[0];
878 adau1701->gpio_pll_mode[1] = gpio_pll_mode[1];
880 i2c_set_clientdata(client, adau1701);
882 adau1701->sigmadsp = devm_sigmadsp_init_i2c(client,
884 if (IS_ERR(adau1701->sigmadsp)) {
885 ret = PTR_ERR(adau1701->sigmadsp);
895 regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies);
902 { "adau1701", 0 },
910 .name = "adau1701",