|
@@ -1979,12 +1979,20 @@ static int rt5640_suspend(struct snd_soc_codec *codec)
|
|
|
rt5640_reset(codec);
|
|
|
regcache_cache_only(rt5640->regmap, true);
|
|
|
regcache_mark_dirty(rt5640->regmap);
|
|
|
+ if (gpio_is_valid(rt5640->pdata.ldo1_en))
|
|
|
+ gpio_set_value_cansleep(rt5640->pdata.ldo1_en, 0);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
static int rt5640_resume(struct snd_soc_codec *codec)
|
|
|
{
|
|
|
+ struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec);
|
|
|
+
|
|
|
+ if (gpio_is_valid(rt5640->pdata.ldo1_en)) {
|
|
|
+ gpio_set_value_cansleep(rt5640->pdata.ldo1_en, 1);
|
|
|
+ msleep(400);
|
|
|
+ }
|
|
|
rt5640_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
|
|
|
|
|
return 0;
|