]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: rt5677: Reset the codec during probing
authorYauhen Kharuzhy <jekhor@gmail.com>
Wed, 11 Feb 2026 00:18:38 +0000 (02:18 +0200)
committerMark Brown <broonie@kernel.org>
Sun, 22 Feb 2026 23:52:12 +0000 (23:52 +0000)
To ensure that the codec is in a known state, reset it during driver
initialization.

Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com>
Link: https://patch.msgid.link/20260211002255.4090440-7-jekhor@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5677.c

index f56ac267f53b12c15bc820bedeb6de092dfc6ee5..60a93c3fe2e7ddc31060da278ca40700e37ac3ec 100644 (file)
@@ -5581,14 +5581,21 @@ static int rt5677_i2c_probe(struct i2c_client *i2c)
                dev_err(&i2c->dev, "Failed to request POW_LDO2: %d\n", ret);
                return ret;
        }
+
        rt5677->reset_pin = devm_gpiod_get_optional(&i2c->dev,
-                       "realtek,reset", GPIOD_OUT_LOW);
+                       "realtek,reset", GPIOD_OUT_HIGH);
+
        if (IS_ERR(rt5677->reset_pin)) {
                ret = PTR_ERR(rt5677->reset_pin);
                dev_err(&i2c->dev, "Failed to request RESET: %d\n", ret);
                return ret;
        }
 
+       if (rt5677->reset_pin) {
+               msleep(1);
+               gpiod_set_value_cansleep(rt5677->reset_pin, 0);
+       }
+
        if (rt5677->pow_ldo2 || rt5677->reset_pin) {
                /* Wait a while until I2C bus becomes available. The datasheet
                 * does not specify the exact we should wait but startup