Unverified Commit 947eaef2 authored by Sharique Mohammad's avatar Sharique Mohammad Committed by Mark Brown
Browse files

ASoC: max98090/91: adding two virtual Mux widgets for digital mics



The two digital mics M1(primary digital mic) and M2(secondary digital
mic) work independently of one another. It means they could be switched
On or Off independently of one another. To control their On or Off
state, with this patch creating two virtual multiplexer widgets
"DMIC M1 Mux" and "DMIC M2 Mux", with two options "Enable" and "Disable".

Signed-off-by: default avatarSharique Mohammad <sharq0406@gmail.com>
Link: https://patch.msgid.link/20251103091447.771793-1-sharq0406@gmail.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent db66398f
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -817,6 +817,16 @@ static SOC_ENUM_SINGLE_VIRT_DECL(dmic_mux_enum, dmic_mux_text);
static const struct snd_kcontrol_new max98090_dmic_mux =
	SOC_DAPM_ENUM("DMIC Mux", dmic_mux_enum);

static const char * const dmic_mX_mux_text[] = { "Enable", "Disable" };

static SOC_ENUM_SINGLE_VIRT_DECL(dmic_m1_enum, dmic_mX_mux_text);
static const struct snd_kcontrol_new max98090_dmic_m1_mux =
	SOC_DAPM_ENUM("DMIC M1 Mux", dmic_m1_enum);

static SOC_ENUM_SINGLE_VIRT_DECL(dmic_m2_enum, dmic_mX_mux_text);
static const struct snd_kcontrol_new max98090_dmic_m2_mux =
	SOC_DAPM_ENUM("DMIC M2 Mux", dmic_m2_enum);

/* LINEA mixer switch */
static const struct snd_kcontrol_new max98090_linea_mixer_controls[] = {
	SOC_DAPM_SINGLE("IN1 Switch", M98090_REG_LINE_INPUT_CONFIG,
@@ -1106,6 +1116,9 @@ static const struct snd_soc_dapm_widget max98090_dapm_widgets[] = {

	SND_SOC_DAPM_MUX("DMIC Mux", SND_SOC_NOPM, 0, 0, &max98090_dmic_mux),

	SND_SOC_DAPM_MUX("DMIC M1 Mux", SND_SOC_NOPM, 0, 0,
		&max98090_dmic_m1_mux),

	SND_SOC_DAPM_PGA_E("MIC1 Input", M98090_REG_MIC1_INPUT_LEVEL,
		M98090_MIC_PA1EN_SHIFT, 0, NULL, 0, max98090_micinput_event,
		SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
@@ -1242,6 +1255,9 @@ static const struct snd_soc_dapm_widget max98091_dapm_widgets[] = {
	SND_SOC_DAPM_SUPPLY("DMIC34_HPF", M98090_REG_FILTER_CONFIG,
		M98090_FLT_DMIC34HPF_SHIFT, 0, NULL, 0),

	SND_SOC_DAPM_MUX("DMIC M2 Mux", SND_SOC_NOPM, 0, 0,
		&max98090_dmic_m2_mux),

	SND_SOC_DAPM_AIF_OUT("AIFOUT2L", "HiFi Capture", 0,
		SND_SOC_NOPM, 0, 0),
	SND_SOC_DAPM_AIF_OUT("AIFOUT2R", "HiFi Capture", 0,