Merge branch 'asoc-5.6' into asoc-next
[linux-2.6-microblaze.git] / sound / soc / codecs / cs47l92.c
index cbffcd8..942040f 100644 (file)
@@ -778,6 +778,7 @@ SND_SOC_DAPM_MUX("IN2L Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[1]),
 SND_SOC_DAPM_MUX("IN2R Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[1]),
 
 SND_SOC_DAPM_DEMUX("OUT3 Demux", SND_SOC_NOPM, 0, 0, &cs47l92_outdemux),
+SND_SOC_DAPM_MUX("OUT3 Mono Mux", SND_SOC_NOPM, 0, 0, &cs47l92_outdemux),
 
 SND_SOC_DAPM_OUTPUT("DRC1 Signal Activity"),
 SND_SOC_DAPM_OUTPUT("DRC2 Signal Activity"),
@@ -1632,6 +1633,8 @@ static const struct snd_soc_dapm_route cs47l92_dapm_routes[] = {
        { "OUT3 Demux", NULL, "OUT3L" },
        { "OUT3 Demux", NULL, "OUT3R" },
 
+       { "OUT3R", NULL, "OUT3 Mono Mux" },
+
        { "HPOUT3L", "HPOUT3", "OUT3 Demux" },
        { "HPOUT3R", "HPOUT3", "OUT3 Demux" },
        { "HPOUT4L", "HPOUT4", "OUT3 Demux" },
@@ -1865,6 +1868,13 @@ static irqreturn_t cs47l92_adsp2_irq(int irq, void *data)
        return IRQ_HANDLED;
 }
 
+static const struct snd_soc_dapm_route cs47l92_mono_routes[] = {
+       { "OUT1R", NULL, "OUT1L" },
+       { "OUT2R", NULL, "OUT2L" },
+       { "OUT3 Mono Mux", "HPOUT3", "OUT3L" },
+       { "OUT3 Mono Mux", "HPOUT4", "OUT3L" },
+};
+
 static int cs47l92_component_probe(struct snd_soc_component *component)
 {
        struct cs47l92 *cs47l92 = snd_soc_component_get_drvdata(component);
@@ -1881,7 +1891,9 @@ static int cs47l92_component_probe(struct snd_soc_component *component)
        if (ret)
                return ret;
 
-       ret = madera_init_outputs(component, CS47L92_MONO_OUTPUTS);
+       ret = madera_init_outputs(component, cs47l92_mono_routes,
+                                 ARRAY_SIZE(cs47l92_mono_routes),
+                                 CS47L92_MONO_OUTPUTS);
        if (ret)
                return ret;