sgtl5000: add Lineout volume control
authorKalle Kankare <kalle.kankare@vincit.fi>
Tue, 12 Jul 2016 08:41:18 +0000 (10:41 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 12 Jul 2016 09:00:44 +0000 (10:00 +0100)
This controls the volume for the line out pins of SGTL5000.

Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/sgtl5000.c

index 39a178a..527b759 100644 (file)
@@ -385,6 +385,9 @@ static const DECLARE_TLV_DB_RANGE(mic_gain_tlv,
 /* tlv for hp volume, -51.5db to 12.0db, step .5db */
 static const DECLARE_TLV_DB_SCALE(headphone_volume, -5150, 50, 0);
 
+/* tlv for lineout volume, 31 steps of .5db each */
+static const DECLARE_TLV_DB_SCALE(lineout_volume, -1550, 50, 0);
+
 static const struct snd_kcontrol_new sgtl5000_snd_controls[] = {
        /* SOC_DOUBLE_S8_TLV with invert */
        {
@@ -413,6 +416,13 @@ static const struct snd_kcontrol_new sgtl5000_snd_controls[] = {
 
        SOC_SINGLE_TLV("Mic Volume", SGTL5000_CHIP_MIC_CTRL,
                        0, 3, 0, mic_gain_tlv),
+
+       SOC_DOUBLE_TLV("Lineout Playback Volume",
+                       SGTL5000_CHIP_LINE_OUT_VOL,
+                       SGTL5000_LINE_OUT_VOL_LEFT_SHIFT,
+                       SGTL5000_LINE_OUT_VOL_RIGHT_SHIFT,
+                       0x1f, 1,
+                       lineout_volume),
 };
 
 /* mute the codec used by alsa core */