mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
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: Zhang Yi <zhangyi@everest-semi.com> Link: https://patch.msgid.link/20240624030607.4307-5-zhangyi@everest-semi.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
7e7dbdee96
commit
34fa846f52
@ -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,
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user