ASoC: codecs: ES8326: Change Volatile Reg function
authorZhu Ning <zhuning0077@gmail.com>
Mon, 17 Jul 2023 03:32:20 +0000 (11:32 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 25 Jul 2023 11:11:51 +0000 (12:11 +0100)
The new calibration and headphone detection function
require reading new volatile registers. Add them in
the volatile register function.

Signed-off-by: Zhu Ning <zhuning0077@gmail.com>
Link: https://lore.kernel.org/r/20230717033223.42506-2-zhuning0077@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/es8326.c

index b62fff4..9f4408d 100644 (file)
@@ -158,20 +158,25 @@ static const struct snd_soc_dapm_route es8326_dapm_routes[] = {
        {"HPOR", NULL, "RHPMIX"},
 };
 
-static const struct regmap_range es8326_volatile_ranges[] = {
-       regmap_reg_range(ES8326_HPDET_STA, ES8326_HPDET_STA),
-};
-
-static const struct regmap_access_table es8326_volatile_table = {
-       .yes_ranges = es8326_volatile_ranges,
-       .n_yes_ranges = ARRAY_SIZE(es8326_volatile_ranges),
-};
+static bool es8326_volatile_register(struct device *dev, unsigned int reg)
+{
+       switch (reg) {
+       case ES8326_HPL_OFFSET_INI:
+       case ES8326_HPR_OFFSET_INI:
+       case ES8326_HPDET_STA:
+       case ES8326_CTIA_OMTP_STA:
+       case ES8326_CSM_MUTE_STA:
+               return true;
+       default:
+               return false;
+       }
+}
 
 static const struct regmap_config es8326_regmap_config = {
        .reg_bits = 8,
        .val_bits = 8,
        .max_register = 0xff,
-       .volatile_table = &es8326_volatile_table,
+       .volatile_reg = es8326_volatile_register,
        .cache_type = REGCACHE_RBTREE,
 };