From: Hans de Goede <hdego...@redhat.com>

commit 5cacc6f5764e94fa753b2c1f5f7f1f3f74286e82 upstream.

The RT5670_PWR_ANLG1 register has 3 bits to select the LDO voltage,
so the correct mask is 0x7 not 0x3.

Because of this wrong mask we were programming the ldo bits
to a setting of binary 001 (0x05 & 0x03) instead of binary 101
when moving to SND_SOC_BIAS_PREPARE.

According to the datasheet 001 is a reserved value, so no idea
what it did, since the driver was working fine before I guess we
got lucky and it does something which is ok.

Fixes: 5e8351de740d ("ASoC: add RT5670 CODEC driver")
Signed-off-by: Hans de Goede <hdego...@redhat.com>
Cc: sta...@vger.kernel.org
Link: https://lore.kernel.org/r/20200628155231.71089-3-hdego...@redhat.com
Signed-off-by: Mark Brown <broo...@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 sound/soc/codecs/rt5670.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/sound/soc/codecs/rt5670.h
+++ b/sound/soc/codecs/rt5670.h
@@ -760,7 +760,7 @@
 #define RT5670_PWR_VREF2_BIT                   4
 #define RT5670_PWR_FV2                         (0x1 << 3)
 #define RT5670_PWR_FV2_BIT                     3
-#define RT5670_LDO_SEL_MASK                    (0x3)
+#define RT5670_LDO_SEL_MASK                    (0x7)
 #define RT5670_LDO_SEL_SFT                     0
 
 /* Power Management for Analog 2 (0x64) */


Reply via email to