Re: [PATCH v1 1/1] ASoC: wm8903: implement DMIC support

From: Charles Keepax
Date: Mon Mar 27 2023 - 04:38:50 EST


On Sat, Mar 25, 2023 at 10:36:43AM +0200, Svyatoslav Ryhel wrote:
> Add DMIC input and routing.
>
> Tested-by: Svyatoslav Ryhel <clamor95@xxxxxxxxx> # ASUS TF300T
> Signed-off-by: Svyatoslav Ryhel <clamor95@xxxxxxxxx>
> ---
> sound/soc/codecs/wm8903.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c
> index 41346e5ec5ad..9c2f0aadcff3 100644
> --- a/sound/soc/codecs/wm8903.c
> +++ b/sound/soc/codecs/wm8903.c
> @@ -9,7 +9,6 @@
> *
> * TODO:
> * - TDM mode configuration.
> - * - Digital microphone support.
> */
>
> #include <linux/module.h>
> @@ -816,6 +815,7 @@ SND_SOC_DAPM_INPUT("IN2L"),
> SND_SOC_DAPM_INPUT("IN2R"),
> SND_SOC_DAPM_INPUT("IN3L"),
> SND_SOC_DAPM_INPUT("IN3R"),
> +SND_SOC_DAPM_INPUT("DMIC"),
> SND_SOC_DAPM_INPUT("DMICDAT"),

There is already a datapath for the DMIC here, DMICDAT. Are you
sure you don't just need to set the "Left/Right ADC Input" muxes
correctly through the ALSA controls?

>
> SND_SOC_DAPM_OUTPUT("HPOUTL"),
> @@ -996,6 +996,9 @@ static const struct snd_soc_dapm_route wm8903_intercon[] = {
> { "AIFTXL", NULL, "Left Capture Mux" },
> { "AIFTXR", NULL, "Right Capture Mux" },
>
> + { "ADCL", NULL, "DMIC" },
> + { "ADCR", NULL, "DMIC" },
> +

And at any rate these should not be directly connected to the
ADC you need some muxing to indicate whether the DMIC or AMICs
are active. Which the DMICDAT path appears to already have.

Thanks,
Charles