ASoC: codecs/jz4770: Add missing gain control after DAC/ADC mixer
authorPaul Cercueil <paul@crapouillou.net>
Thu, 25 Nov 2021 23:25:43 +0000 (23:25 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 26 Nov 2021 13:24:30 +0000 (13:24 +0000)
The capture and playback paths both have a configurable gain after their
respective mixer, which can be set from -31 dB to 0 dB in 32 steps.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/r/20211125232543.117074-1-paul@crapouillou.net
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/jz4770.c

index 6b60120f59a68e9d6a9a5d03c9f6236ba9c81b30..1d0c467ab57b449eaf751bca4d4cfc1f7fd7e9c5 100644 (file)
@@ -307,6 +307,7 @@ static const DECLARE_TLV_DB_MINMAX_MUTE(dac_tlv, -3100, 0);
 static const DECLARE_TLV_DB_SCALE(adc_tlv, 0, 100, 0);
 static const DECLARE_TLV_DB_MINMAX(out_tlv, -2500, 600);
 static const DECLARE_TLV_DB_SCALE(linein_tlv, -2500, 100, 0);
+static const DECLARE_TLV_DB_MINMAX(mixer_tlv, -3100, 0);
 
 /* Unconditional controls. */
 static const struct snd_kcontrol_new jz4770_codec_snd_controls[] = {
@@ -319,6 +320,14 @@ static const struct snd_kcontrol_new jz4770_codec_snd_controls[] = {
        SOC_DOUBLE_R_TLV("Line In Bypass Playback Volume",
                         JZ4770_CODEC_REG_GCR_LIBYL, JZ4770_CODEC_REG_GCR_LIBYR,
                         REG_GCR_GAIN_OFFSET, REG_GCR_GAIN_MAX, 1, linein_tlv),
+
+       SOC_SINGLE_TLV("Mixer Capture Volume",
+                      JZ4770_CODEC_REG_GCR_MIXADC,
+                      REG_GCR_GAIN_OFFSET, REG_GCR_GAIN_MAX, 1, mixer_tlv),
+
+       SOC_SINGLE_TLV("Mixer Playback Volume",
+                      JZ4770_CODEC_REG_GCR_MIXDAC,
+                      REG_GCR_GAIN_OFFSET, REG_GCR_GAIN_MAX, 1, mixer_tlv),
 };
 
 static const struct snd_kcontrol_new jz4770_codec_pcm_playback_controls[] = {