Unverified Commit 34fa846f authored by Zhang Yi's avatar Zhang Yi Committed by Mark Brown
Browse files

ASoC: codecs: ES8326: regcache_sync error issue



We modified the regmap_config members to fix cach sync error.
There are several registers that should be read-only registers.
If these registers are written while synchronizing the register values,
the codec will enter an error state.So we create es8326_writeable_register,
and set these registers to false

Signed-off-by: default avatarZhang Yi <zhangyi@everest-semi.com>
Link: https://patch.msgid.link/20240624030607.4307-5-zhangyi@everest-semi.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7e7dbdee
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -329,11 +329,29 @@ static bool es8326_volatile_register(struct device *dev, unsigned int reg)
	}
}

static bool es8326_writeable_register(struct device *dev, unsigned int reg)
{
	switch (reg) {
	case ES8326_BIAS_SW1:
	case ES8326_BIAS_SW2:
	case ES8326_BIAS_SW3:
	case ES8326_BIAS_SW4:
	case ES8326_ADC_HPFS1:
	case ES8326_ADC_HPFS2:
		return false;
	default:
		return true;
	}
}

static const struct regmap_config es8326_regmap_config = {
	.reg_bits = 8,
	.val_bits = 8,
	.max_register = 0xff,
	.use_single_read = true,
	.use_single_write = true,
	.volatile_reg = es8326_volatile_register,
	.writeable_reg = es8326_writeable_register,
	.cache_type = REGCACHE_RBTREE,
};