Signed-off-by: Danny Milosavljevic <[email protected]>
---
 sound/soc/sunxi/sun4i-codec.c | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
index 9866cb1..d75bc21 100644
--- a/sound/soc/sunxi/sun4i-codec.c
+++ b/sound/soc/sunxi/sun4i-codec.c
@@ -415,6 +415,7 @@ static const struct snd_kcontrol_new sun4i_codec_widgets[] 
= {
        SOC_SINGLE_TLV("PA Volume", SUN4I_CODEC_DAC_ACTL,
                       SUN4I_CODEC_DAC_ACTL_PA_VOL, 0x3F, 0,
                       sun4i_codec_pa_volume_scale),
+       /* Line-In, FM-In */
        SOC_SINGLE_TLV("Line-In Playback Volume",
                       SUN4I_CODEC_DAC_ACTL,
                       SUN4I_CODEC_DAC_ACTL_LINEIN_OUTPUT_VOLUME,
@@ -427,23 +428,15 @@ static const struct snd_kcontrol_new 
sun4i_codec_widgets[] = {
                       3,
                       0,
                       sun4i_codec_fmin_volume_scale),
-       SOC_DOUBLE("Line-In Playback Switch",
-                  SUN4I_CODEC_DAC_ACTL,
-                  SUN4I_CODEC_DAC_ACTL_LINEIN_L_SWITCH,
-                  SUN4I_CODEC_DAC_ACTL_LINEIN_R_SWITCH,
-                  1,
-                  0),
-       SOC_DOUBLE("FM-In Playback Switch",
-                  SUN4I_CODEC_DAC_ACTL,
-                  SUN4I_CODEC_DAC_ACTL_FMIN_L_SWITCH,
-                  SUN4I_CODEC_DAC_ACTL_FMIN_R_SWITCH,
-                  1,
-                  0),
 };
 
 static const struct snd_kcontrol_new sun4i_codec_left_mixer_controls[] = {
        SOC_DAPM_SINGLE("Left DAC Playback Switch", SUN4I_CODEC_DAC_ACTL,
                        SUN4I_CODEC_DAC_ACTL_LDACLMIXS, 1, 0),
+       SOC_DAPM_SINGLE("Left Line-In Playback Switch", SUN4I_CODEC_DAC_ACTL,
+                       SUN4I_CODEC_DAC_ACTL_LINEIN_L_SWITCH, 1, 0),
+       SOC_DAPM_SINGLE("Left FM-In Playback Switch", SUN4I_CODEC_DAC_ACTL,
+                       SUN4I_CODEC_DAC_ACTL_FMIN_L_SWITCH, 1, 0),
 };
 
 static const struct snd_kcontrol_new sun4i_codec_right_mixer_controls[] = {
@@ -451,6 +444,10 @@ static const struct snd_kcontrol_new 
sun4i_codec_right_mixer_controls[] = {
                        SUN4I_CODEC_DAC_ACTL_RDACRMIXS, 1, 0),
        SOC_DAPM_SINGLE("Left DAC Playback Switch", SUN4I_CODEC_DAC_ACTL,
                        SUN4I_CODEC_DAC_ACTL_LDACRMIXS, 1, 0),
+       SOC_DAPM_SINGLE("Right Line-In Playback Switch", SUN4I_CODEC_DAC_ACTL,
+                       SUN4I_CODEC_DAC_ACTL_LINEIN_R_SWITCH, 1, 0),
+       SOC_DAPM_SINGLE("Right FM-In Playback Switch", SUN4I_CODEC_DAC_ACTL,
+                       SUN4I_CODEC_DAC_ACTL_FMIN_R_SWITCH, 1, 0),
 };
 
 static const struct snd_kcontrol_new sun4i_codec_pa_mixer_controls[] = {
@@ -494,8 +491,14 @@ static const struct snd_soc_dapm_widget 
sun4i_codec_dapm_widgets[] = {
 
        SND_SOC_DAPM_OUTPUT("HP Right"),
        SND_SOC_DAPM_OUTPUT("HP Left"),
+
+       SND_SOC_DAPM_INPUT("LINE_IN Right"),
+       SND_SOC_DAPM_INPUT("LINE_IN Left"),
+       SND_SOC_DAPM_INPUT("FM_IN Right"),
+       SND_SOC_DAPM_INPUT("FM_IN Left"),
 };
 
+/* {sink, control, source} */
 static const struct snd_soc_dapm_route sun4i_codec_dapm_routes[] = {
        /* Left DAC Routes */
        { "Left DAC", NULL, "DAC" },
@@ -522,6 +525,13 @@ static const struct snd_soc_dapm_route 
sun4i_codec_dapm_routes[] = {
        { "Pre-Amplifier Mute", "Switch", "Pre-Amplifier" },
        { "HP Right", NULL, "Pre-Amplifier Mute" },
        { "HP Left", NULL, "Pre-Amplifier Mute" },
+
+       /* Line-In, FM-In */
+
+       { "Right Mixer", "Right Line-In Playback Switch", "LINE_IN Right" },
+       { "Left Mixer", "Left Line-In Playback Switch", "LINE_IN Left" },
+       { "Right Mixer", "Right FM-In Playback Switch", "FM_IN Right" },
+       { "Left Mixer", "Left FM-In Playback Switch", "FM_IN Left" },
 };
 
 static struct snd_soc_codec_driver sun4i_codec_codec = {
-- 
2.1.4

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to