1d572370597d8b106ee4d39a8fe775741e31370f
[openwrt/staging/adrian.git] /
1 From 0962637c67a56c1ae42ccb14c9e71c62f4aa1403 Mon Sep 17 00:00:00 2001
2 From: Annaliese McDermond <nh6z@nh6z.net>
3 Date: Wed, 3 Apr 2019 21:01:54 -0700
4 Subject: [PATCH] ASoC: tlv320aic32x4: Add Switch for Setting Common
5 Mode Voltage
6
7 commit 44ceee847e27c828f2f1ef4e400e6bc0c8d04de3 upstream.
8
9 Add a switch for setting common mode voltage. This can allow
10 for higher drive levels on the amplifier outputs.
11
12 Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
13 Signed-off-by: Mark Brown <broonie@kernel.org>
14 ---
15 sound/soc/codecs/tlv320aic32x4.c | 7 +++++++
16 1 file changed, 7 insertions(+)
17
18 --- a/sound/soc/codecs/tlv320aic32x4.c
19 +++ b/sound/soc/codecs/tlv320aic32x4.c
20 @@ -242,6 +242,12 @@ static DECLARE_TLV_DB_SCALE(tlv_driver_g
21 /* -12dB min, 0.5dB steps */
22 static DECLARE_TLV_DB_SCALE(tlv_adc_vol, -1200, 50, 0);
23
24 +static const char * const lo_cm_text[] = {
25 + "Full Chip", "1.65V",
26 +};
27 +
28 +static SOC_ENUM_SINGLE_DECL(lo_cm_enum, AIC32X4_CMMODE, 3, lo_cm_text);
29 +
30 static const struct snd_kcontrol_new aic32x4_snd_controls[] = {
31 SOC_DOUBLE_R_S_TLV("PCM Playback Volume", AIC32X4_LDACVOL,
32 AIC32X4_RDACVOL, 0, -0x7f, 0x30, 7, 0, tlv_pcm),
33 @@ -255,6 +261,7 @@ static const struct snd_kcontrol_new aic
34 AIC32X4_HPRGAIN, 6, 0x01, 1),
35 SOC_DOUBLE_R("LO DAC Playback Switch", AIC32X4_LOLGAIN,
36 AIC32X4_LORGAIN, 6, 0x01, 1),
37 + SOC_ENUM("LO Playback Common Mode Switch", lo_cm_enum),
38 SOC_DOUBLE_R("Mic PGA Switch", AIC32X4_LMICPGAVOL,
39 AIC32X4_RMICPGAVOL, 7, 0x01, 1),
40