Merge tag 'gpio-v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux...
[deliverable/linux.git] / sound / soc / codecs / rt5677.c
index 2828591a4b03d97d2951c51f1c09961ad37fd352..33e290b703dfff7c421e4cd3b0d7d5e83c54efd0 100644 (file)
@@ -297,8 +297,6 @@ static bool rt5677_volatile_register(struct device *dev, unsigned int reg)
        case RT5677_HAP_GENE_CTRL2:
        case RT5677_PWR_DSP_ST:
        case RT5677_PRIV_DATA:
-       case RT5677_PLL1_CTRL2:
-       case RT5677_PLL2_CTRL2:
        case RT5677_ASRC_22:
        case RT5677_ASRC_23:
        case RT5677_VAD_CTRL5:
@@ -4788,7 +4786,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;
 }
@@ -4803,7 +4801,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;
@@ -4814,8 +4812,11 @@ static int rt5677_resume(struct snd_soc_codec *codec)
        struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec);
 
        if (!rt5677->dsp_vad_en) {
+               rt5677->pll_src = 0;
+               rt5677->pll_in = 0;
+               rt5677->pll_out = 0;
                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);
 
@@ -5160,7 +5161,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);
This page took 0.026327 seconds and 5 git commands to generate.