Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e58f301e authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: rt5640: Power down LDO while suspended



If we have control over the LDO then disable it during suspend; the device
is already being put into reset so will be non-functional over suspend
anyway and this will save a small amount of power.

Signed-off-by: default avatarMark Brown <broonie@linaro.org>
Tested-by: default avatarStephen Warren <swarren@nvidia.com>
parent 32fcb97b
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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;