ASoC: tlv320aic3x: Add runtime regulator control to aic3x_set_bias_level
authorJarkko Nikula <jhnikula@gmail.com>
Mon, 20 Sep 2010 07:39:12 +0000 (10:39 +0300)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Mon, 20 Sep 2010 17:40:46 +0000 (18:40 +0100)
commit6c1a7d40c2237ff7690ca682336e22777c847ffe
treeab3452cd157f176b56daea63b719646ebe404382
parent2f24111a08d60e6db92ed2867a339ddde2195b88
ASoC: tlv320aic3x: Add runtime regulator control to aic3x_set_bias_level

Now all the regulators are disabled when entering into SND_SOC_BIAS_OFF
and enabled when coming back to SND_SOC_BIAS_STANDBY state. Currently this
runtime control happens only with suspend/resume as this patch does not
change the default idle behavior.

This patch manages all the regulators and reset since it seems that register
sync is needed even if only analog supplies AVDD and DRVDD are disabled.
This was noted when the system was running with idle behavior changed and
IOVDD and DVDD were on.

It is not known are all the registers needed to sync or only some subset of
them. Therefore patch plays safe and does always full shutdown/power-up.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/codecs/tlv320aic3x.c