mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 17:24:17 +08:00
ASoC: rt5677: use 'active low' logic for reset pin
According to the datasheet RESET is active low pin, i.e. system goes to reset state when pin signal is low. The previous implementeation was assuming the pin is configured as 'active high' in DTS. Changle the gpio handling code and DTS configuration to 'active low'. Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
8005c49d9a
commit
cdab0d4ecc
@ -18,7 +18,7 @@ Required properties:
|
||||
Optional properties:
|
||||
|
||||
- realtek,pow-ldo2-gpio : The GPIO that controls the CODEC's POW_LDO2 pin.
|
||||
- realtek,reset-gpio : The GPIO that controls the CODEC's RESET pin.
|
||||
- realtek,reset-gpio : The GPIO that controls the CODEC's RESET pin. Active low.
|
||||
|
||||
- realtek,in1-differential
|
||||
- realtek,in2-differential
|
||||
|
@ -4766,7 +4766,7 @@ static int rt5677_remove(struct snd_soc_codec *codec)
|
||||
|
||||
regmap_write(rt5677->regmap, RT5677_RESET, 0x10ec);
|
||||
gpiod_set_value_cansleep(rt5677->pow_ldo2, 0);
|
||||
gpiod_set_value_cansleep(rt5677->reset_pin, 0);
|
||||
gpiod_set_value_cansleep(rt5677->reset_pin, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -4781,7 +4781,7 @@ static int rt5677_suspend(struct snd_soc_codec *codec)
|
||||
regcache_mark_dirty(rt5677->regmap);
|
||||
|
||||
gpiod_set_value_cansleep(rt5677->pow_ldo2, 0);
|
||||
gpiod_set_value_cansleep(rt5677->reset_pin, 0);
|
||||
gpiod_set_value_cansleep(rt5677->reset_pin, 1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -4793,7 +4793,7 @@ static int rt5677_resume(struct snd_soc_codec *codec)
|
||||
|
||||
if (!rt5677->dsp_vad_en) {
|
||||
gpiod_set_value_cansleep(rt5677->pow_ldo2, 1);
|
||||
gpiod_set_value_cansleep(rt5677->reset_pin, 1);
|
||||
gpiod_set_value_cansleep(rt5677->reset_pin, 0);
|
||||
if (rt5677->pow_ldo2 || rt5677->reset_pin)
|
||||
msleep(10);
|
||||
|
||||
@ -5138,7 +5138,7 @@ static int rt5677_i2c_probe(struct i2c_client *i2c,
|
||||
return ret;
|
||||
}
|
||||
rt5677->reset_pin = devm_gpiod_get_optional(&i2c->dev,
|
||||
"realtek,reset", GPIOD_OUT_HIGH);
|
||||
"realtek,reset", GPIOD_OUT_LOW);
|
||||
if (IS_ERR(rt5677->reset_pin)) {
|
||||
ret = PTR_ERR(rt5677->reset_pin);
|
||||
dev_err(&i2c->dev, "Failed to request RESET: %d\n", ret);
|
||||
|
Loading…
Reference in New Issue
Block a user