]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: rt5660: Fix the dmic data source from GPIO2
authorOder Chiou <oder_chiou@realtek.com>
Fri, 11 Jul 2025 03:48:13 +0000 (11:48 +0800)
committerMark Brown <broonie@kernel.org>
Sun, 13 Jul 2025 21:36:30 +0000 (22:36 +0100)
The patch fixes an issue with the dmic data pin connected to GPIO2.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Link: https://patch.msgid.link/20250711034813.3278989-1-oder_chiou@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5660.c

index 82b92e83be4ce72f28abe783fc62f17b41718c7e..44c3a3b92f98fcbeb7101b502e60d236059a11d5 100644 (file)
@@ -1315,14 +1315,17 @@ static int rt5660_i2c_probe(struct i2c_client *i2c)
                regmap_update_bits(rt5660->regmap, RT5660_GPIO_CTRL1,
                        RT5660_GP1_PIN_MASK, RT5660_GP1_PIN_DMIC1_SCL);
 
-               if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_GPIO2)
+               if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_GPIO2) {
                        regmap_update_bits(rt5660->regmap, RT5660_DMIC_CTRL1,
                                RT5660_SEL_DMIC_DATA_MASK,
                                RT5660_SEL_DMIC_DATA_GPIO2);
-               else if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_IN1P)
+                       regmap_update_bits(rt5660->regmap, RT5660_GPIO_CTRL1,
+                               RT5660_GP2_PIN_MASK, RT5660_GP2_PIN_DMIC1_SDA);
+               } else if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_IN1P) {
                        regmap_update_bits(rt5660->regmap, RT5660_DMIC_CTRL1,
                                RT5660_SEL_DMIC_DATA_MASK,
                                RT5660_SEL_DMIC_DATA_IN1P);
+               }
        }
 
        return devm_snd_soc_register_component(&i2c->dev,