diff --git a/asoc/codecs/swr-dmic.c b/asoc/codecs/swr-dmic.c index 5272fc844d..5672d58478 100644 --- a/asoc/codecs/swr-dmic.c +++ b/asoc/codecs/swr-dmic.c @@ -274,23 +274,41 @@ static const struct snd_kcontrol_new dmic_switch[] = { SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0) }; +static const struct snd_kcontrol_new va_dmic_switch[] = { + SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0) +}; + static const struct snd_soc_dapm_widget swr_dmic_dapm_widgets[] = { SND_SOC_DAPM_MIXER_E("SWR_DMIC_MIXER", SND_SOC_NOPM, 0, 0, dmic_switch, ARRAY_SIZE(dmic_switch), dmic_swr_ctrl, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), + SND_SOC_DAPM_MIXER_E("SWR_DMIC_VA_MIXER", SND_SOC_NOPM, 0, 0, + va_dmic_switch, ARRAY_SIZE(va_dmic_switch), dmic_swr_ctrl, + SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), + SND_SOC_DAPM_INPUT("SWR_DMIC"), + SND_SOC_DAPM_INPUT("VA_SWR_DMIC"), SND_SOC_DAPM_OUT_DRV_E("SMIC_PORT_EN", SND_SOC_NOPM, 0, 0, NULL, 0, swr_dmic_port_enable, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), + + SND_SOC_DAPM_OUT_DRV_E("SMIC_VA_PORT_EN", SND_SOC_NOPM, 0, 0, NULL, 0, + swr_dmic_port_enable, + SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), + SND_SOC_DAPM_OUTPUT("SWR_DMIC_OUTPUT"), + SND_SOC_DAPM_OUTPUT("SWR_DMIC_VA_OUTPUT"), }; static const struct snd_soc_dapm_route swr_dmic_audio_map[] = { {"SWR_DMIC_MIXER", "Switch", "SWR_DMIC"}, {"SMIC_PORT_EN", NULL, "SWR_DMIC_MIXER"}, {"SWR_DMIC_OUTPUT", NULL, "SMIC_PORT_EN"}, + {"SWR_DMIC_VA_MIXER", "Switch", "VA_SWR_DMIC"}, + {"SMIC_VA_PORT_EN", NULL, "SWR_DMIC_VA_MIXER"}, + {"SWR_DMIC_VA_OUTPUT", NULL, "SMIC_VA_PORT_EN"}, }; static int swr_dmic_codec_probe(struct snd_soc_component *component)