adau1701
struct adau1701 *adau1701 = i2c_get_clientdata(client);
ret = regmap_read(adau1701->regmap, ADAU1701_DSPCTRL, &val);
return regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL,
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
sigmadsp_reset(adau1701->sigmadsp);
if (clkdiv != ADAU1707_CLKDIV_UNSET && adau1701->gpio_pll_mode) {
gpiod_multi_set_value_cansleep(adau1701->gpio_pll_mode, values);
adau1701->pll_clkdiv = clkdiv;
if (adau1701->gpio_nreset) {
gpiod_set_value_cansleep(adau1701->gpio_nreset, 0);
gpiod_set_value_cansleep(adau1701->gpio_nreset, 1);
ret = sigmadsp_setup(adau1701->sigmadsp, rate);
regmap_write(adau1701->regmap, ADAU1701_DACSET, ADAU1701_DACSET_DACINIT);
regmap_write(adau1701->regmap, ADAU1701_DSPCTRL, ADAU1701_DSPCTRL_CR);
regcache_mark_dirty(adau1701->regmap);
regcache_sync(adau1701->regmap);
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
if (adau1701->dai_fmt == SND_SOC_DAIFMT_RIGHT_J) {
regmap_update_bits(adau1701->regmap, ADAU1701_SEROCTL, mask, val);
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
if (adau1701->dai_fmt != SND_SOC_DAIFMT_RIGHT_J)
regmap_update_bits(adau1701->regmap, ADAU1701_SERICTL,
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
unsigned int clkdiv = adau1701->sysclk / params_rate(params);
if (clkdiv != adau1701->pll_clkdiv) {
regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL,
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
adau1701->dai_fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK;
regmap_write(adau1701->regmap, ADAU1701_SERICTL, serictl);
regmap_update_bits(adau1701->regmap, ADAU1701_SEROCTL,
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
regmap_update_bits(adau1701->regmap,
regmap_update_bits(adau1701->regmap,
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
regmap_update_bits(adau1701->regmap, ADAU1701_DSPCTRL, mask, val);
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
regmap_update_bits(adau1701->regmap, ADAU1701_OSCIPOW,
adau1701->sysclk = freq;
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(dai->component);
return sigmadsp_restrict_params(adau1701->sigmadsp, substream);
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
ret = sigmadsp_attach(adau1701->sigmadsp, component);
ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies),
adau1701->supplies);
adau1701->pll_clkdiv = ADAU1707_CLKDIV_UNSET;
ret = adau1701_reset(component, adau1701->pll_clkdiv, 0);
val |= adau1701->pin_config[i] << (i * 4);
regmap_write(adau1701->regmap, ADAU1701_PINCONF_0, val);
val |= adau1701->pin_config[i + 6] << (i * 4);
regmap_write(adau1701->regmap, ADAU1701_PINCONF_1, val);
regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies);
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
if (adau1701->gpio_nreset)
gpiod_set_value_cansleep(adau1701->gpio_nreset, 0);
regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies);
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies),
adau1701->supplies);
struct adau1701 *adau1701 = snd_soc_component_get_drvdata(component);
ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies),
adau1701->supplies);
return adau1701_reset(component, adau1701->pll_clkdiv, 0);
struct adau1701 *adau1701;
adau1701 = devm_kzalloc(dev, sizeof(*adau1701), GFP_KERNEL);
if (!adau1701)
adau1701->supplies[i].supply = supply_names[i];
ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(adau1701->supplies),
adau1701->supplies);
ret = regulator_bulk_enable(ARRAY_SIZE(adau1701->supplies),
adau1701->supplies);
adau1701->client = client;
adau1701->regmap = devm_regmap_init(dev, NULL, client,
if (IS_ERR(adau1701->regmap)) {
ret = PTR_ERR(adau1701->regmap);
&adau1701->pll_clkdiv);
adau1701->pin_config,
ARRAY_SIZE(adau1701->pin_config));
adau1701->gpio_nreset = devm_gpiod_get_optional(dev, "reset", GPIOD_IN);
if (IS_ERR(adau1701->gpio_nreset)) {
ret = PTR_ERR(adau1701->gpio_nreset);
adau1701->gpio_pll_mode = devm_gpiod_get_array_optional(dev, "adi,pll-mode", GPIOD_OUT_LOW);
if (IS_ERR(adau1701->gpio_pll_mode)) {
ret = PTR_ERR(adau1701->gpio_pll_mode);
i2c_set_clientdata(client, adau1701);
adau1701->sigmadsp = devm_sigmadsp_init_i2c(client,
if (IS_ERR(adau1701->sigmadsp)) {
ret = PTR_ERR(adau1701->sigmadsp);
regulator_bulk_disable(ARRAY_SIZE(adau1701->supplies), adau1701->supplies);