mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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: Sharique Mohammad <sharq0406@gmail.com> Link: https://patch.msgid.link/20251103091447.771793-1-sharq0406@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
committed by
Mark Brown
parent
db66398fb0
commit
947eaef215
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user