ASoC: wcd9335: Convert irq chip to config regs
authorAidan MacDonald <aidanmacdonald.0x0@gmail.com>
Thu, 21 Jul 2022 10:25:57 +0000 (11:25 +0100)
committerMark Brown <broonie@kernel.org>
Sun, 28 Aug 2022 19:20:01 +0000 (20:20 +0100)
Type registers in regmap-irq have been deprecated in favor of config
registers, which are more general. Chips using type_base can switch
over to a single config base register and a standard ->set_irq_type()
callback provided by regmap-irq, which uses the type info associated
with each 'struct regmap_irq' to update type registers in the same
way as the old code did.

Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
Link: https://lore.kernel.org/r/20220721102558.25457-2-aidanmacdonald.0x0@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wcd9335.c

index beeeb35..2c5aa4d 100644 (file)
@@ -5013,16 +5013,22 @@ static const struct regmap_irq wcd9335_codec_irqs[] = {
        },
 };
 
+static const unsigned int wcd9335_config_regs[] = {
+       WCD9335_INTR_LEVEL0,
+};
+
 static const struct regmap_irq_chip wcd9335_regmap_irq1_chip = {
        .name = "wcd9335_pin1_irq",
        .status_base = WCD9335_INTR_PIN1_STATUS0,
        .mask_base = WCD9335_INTR_PIN1_MASK0,
        .ack_base = WCD9335_INTR_PIN1_CLEAR0,
-       .type_base = WCD9335_INTR_LEVEL0,
-       .num_type_reg = 4,
        .num_regs = 4,
        .irqs = wcd9335_codec_irqs,
        .num_irqs = ARRAY_SIZE(wcd9335_codec_irqs),
+       .config_base = wcd9335_config_regs,
+       .num_config_bases = ARRAY_SIZE(wcd9335_config_regs),
+       .num_config_regs = 4,
+       .set_type_config = regmap_irq_set_type_config_simple,
 };
 
 static int wcd9335_parse_dt(struct wcd9335_codec *wcd)