ssm4567
struct ssm4567 *ssm4567 = snd_soc_component_get_drvdata(component);
return regmap_update_bits(ssm4567->regmap, SSM4567_REG_DAC_CTRL,
struct ssm4567 *ssm4567 = snd_soc_component_get_drvdata(dai->component);
return regmap_update_bits(ssm4567->regmap, SSM4567_REG_DAC_CTRL,
struct ssm4567 *ssm4567 = snd_soc_dai_get_drvdata(dai);
ret = regmap_update_bits(ssm4567->regmap, SSM4567_REG_SAI_CTRL_2,
return regmap_update_bits(ssm4567->regmap, SSM4567_REG_SAI_CTRL_1,
struct ssm4567 *ssm4567 = snd_soc_dai_get_drvdata(dai);
return regmap_update_bits(ssm4567->regmap, SSM4567_REG_SAI_CTRL_1,
static int ssm4567_set_power(struct ssm4567 *ssm4567, bool enable)
ret = regmap_update_bits(ssm4567->regmap,
regcache_mark_dirty(ssm4567->regmap);
regcache_cache_only(ssm4567->regmap, !enable);
ret = regmap_write(ssm4567->regmap, SSM4567_REG_SOFT_RESET,
ret = regmap_update_bits(ssm4567->regmap,
regcache_sync(ssm4567->regmap);
struct ssm4567 *ssm4567 = snd_soc_component_get_drvdata(component);
ret = ssm4567_set_power(ssm4567, true);
ret = ssm4567_set_power(ssm4567, false);
struct ssm4567 *ssm4567;
ssm4567 = devm_kzalloc(&i2c->dev, sizeof(*ssm4567), GFP_KERNEL);
if (ssm4567 == NULL)
i2c_set_clientdata(i2c, ssm4567);
ssm4567->regmap = devm_regmap_init_i2c(i2c, &ssm4567_regmap_config);
if (IS_ERR(ssm4567->regmap))
return PTR_ERR(ssm4567->regmap);
ret = regmap_write(ssm4567->regmap, SSM4567_REG_SOFT_RESET, 0x00);
ret = ssm4567_set_power(ssm4567, false);