ASoC: sgtl5000: Fix charge pump source assignment
[ Upstream commit b6319b061b
]
If VDDA != VDDIO and any of them is greater than 3.1V, charge pump
source can be assigned automatically [1].
[1] https://www.nxp.com/docs/en/data-sheet/SGTL5000.pdf
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Reviewed-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20190719100524.23300-7-oleksandr.suvorov@toradex.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f49a9f57ed
commit
ae6be6302e
@ -1166,12 +1166,17 @@ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec)
|
|||||||
SGTL5000_INT_OSC_EN);
|
SGTL5000_INT_OSC_EN);
|
||||||
/* Enable VDDC charge pump */
|
/* Enable VDDC charge pump */
|
||||||
ana_pwr |= SGTL5000_VDDC_CHRGPMP_POWERUP;
|
ana_pwr |= SGTL5000_VDDC_CHRGPMP_POWERUP;
|
||||||
} else if (vddio >= 3100 && vdda >= 3100) {
|
} else {
|
||||||
ana_pwr &= ~SGTL5000_VDDC_CHRGPMP_POWERUP;
|
ana_pwr &= ~SGTL5000_VDDC_CHRGPMP_POWERUP;
|
||||||
/* VDDC use VDDIO rail */
|
/*
|
||||||
lreg_ctrl |= SGTL5000_VDDC_ASSN_OVRD;
|
* if vddio == vdda the source of charge pump should be
|
||||||
lreg_ctrl |= SGTL5000_VDDC_MAN_ASSN_VDDIO <<
|
* assigned manually to VDDIO
|
||||||
SGTL5000_VDDC_MAN_ASSN_SHIFT;
|
*/
|
||||||
|
if (vddio == vdda) {
|
||||||
|
lreg_ctrl |= SGTL5000_VDDC_ASSN_OVRD;
|
||||||
|
lreg_ctrl |= SGTL5000_VDDC_MAN_ASSN_VDDIO <<
|
||||||
|
SGTL5000_VDDC_MAN_ASSN_SHIFT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
snd_soc_write(codec, SGTL5000_CHIP_LINREG_CTRL, lreg_ctrl);
|
snd_soc_write(codec, SGTL5000_CHIP_LINREG_CTRL, lreg_ctrl);
|
||||||
|
Reference in New Issue
Block a user