ASoC: rt5677: Reset the codec during probing

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>
This commit is contained in:
Yauhen Kharuzhy
2026-02-11 02:18:38 +02:00
committed by Mark Brown
parent 0cc00de3dd
commit 904e71d425

View 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