Commit bba4e685 authored by Hans de Goede's avatar Hans de Goede Committed by Mark Brown

ASoC: rt5651: Do not modify the LDO voltage control bits from set_bias_level()

The PWR_ANLG1 reg not only contains various power on/off bits, it also
contains 2 bits which select if the LDO generates 1.0, 1.1 or 1.2V. Note
there is a separate on/off bit for the LDO.

rt5651_set_bias_level(BIAS_OFF) used to unconditionally clear the entire
register, when jack-detection support was introduced a special case for
jack-detect was added which hard-codes a register value to keep the LDO
voltage at 1.2 volt.

This commit removes the jack-detect special case, instead simply always
leaving the LDO voltage control bits as is on BIAS_OFF.
Tested-by: default avatarCarlo Caione <carlo@endlessm.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 984c803f
......@@ -1555,11 +1555,12 @@ static int rt5651_set_bias_level(struct snd_soc_component *component,
snd_soc_component_write(component, RT5651_PWR_DIG2, 0x0000);
snd_soc_component_write(component, RT5651_PWR_VOL, 0x0000);
snd_soc_component_write(component, RT5651_PWR_MIXER, 0x0000);
/* Do not touch the LDO voltage select bits on bias-off */
snd_soc_component_update_bits(component, RT5651_PWR_ANLG1,
~RT5651_PWR_LDO_DVO_MASK, 0);
if (rt5651->jd_src) {
snd_soc_component_write(component, RT5651_PWR_ANLG2, 0x0204);
snd_soc_component_write(component, RT5651_PWR_ANLG1, 0x0002);
} else {
snd_soc_component_write(component, RT5651_PWR_ANLG1, 0x0000);
snd_soc_component_write(component, RT5651_PWR_ANLG2, 0x0000);
}
break;
......
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