Commit cdab0d4e authored by Anatol Pomozov's avatar Anatol Pomozov Committed by Mark Brown

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: default avatarAnatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8005c49d
...@@ -18,7 +18,7 @@ Required properties: ...@@ -18,7 +18,7 @@ Required properties:
Optional properties: Optional properties:
- realtek,pow-ldo2-gpio : The GPIO that controls the CODEC's POW_LDO2 pin. - 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,in1-differential
- realtek,in2-differential - realtek,in2-differential
......
...@@ -4766,7 +4766,7 @@ static int rt5677_remove(struct snd_soc_codec *codec) ...@@ -4766,7 +4766,7 @@ static int rt5677_remove(struct snd_soc_codec *codec)
regmap_write(rt5677->regmap, RT5677_RESET, 0x10ec); regmap_write(rt5677->regmap, RT5677_RESET, 0x10ec);
gpiod_set_value_cansleep(rt5677->pow_ldo2, 0); 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; return 0;
} }
...@@ -4781,7 +4781,7 @@ static int rt5677_suspend(struct snd_soc_codec *codec) ...@@ -4781,7 +4781,7 @@ static int rt5677_suspend(struct snd_soc_codec *codec)
regcache_mark_dirty(rt5677->regmap); regcache_mark_dirty(rt5677->regmap);
gpiod_set_value_cansleep(rt5677->pow_ldo2, 0); 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; return 0;
...@@ -4793,7 +4793,7 @@ static int rt5677_resume(struct snd_soc_codec *codec) ...@@ -4793,7 +4793,7 @@ static int rt5677_resume(struct snd_soc_codec *codec)
if (!rt5677->dsp_vad_en) { if (!rt5677->dsp_vad_en) {
gpiod_set_value_cansleep(rt5677->pow_ldo2, 1); 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) if (rt5677->pow_ldo2 || rt5677->reset_pin)
msleep(10); msleep(10);
...@@ -5138,7 +5138,7 @@ static int rt5677_i2c_probe(struct i2c_client *i2c, ...@@ -5138,7 +5138,7 @@ static int rt5677_i2c_probe(struct i2c_client *i2c,
return ret; return ret;
} }
rt5677->reset_pin = devm_gpiod_get_optional(&i2c->dev, 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)) { if (IS_ERR(rt5677->reset_pin)) {
ret = PTR_ERR(rt5677->reset_pin); ret = PTR_ERR(rt5677->reset_pin);
dev_err(&i2c->dev, "Failed to request RESET: %d\n", ret); dev_err(&i2c->dev, "Failed to request RESET: %d\n", ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment