On Sat, Mar 25, 2023 at 10:36:43AM +0200, Svyatoslav Ryhel wrote:
Add DMIC input and routing.
Tested-by: Svyatoslav Ryhel clamor95@gmail.com # ASUS TF300T Signed-off-by: Svyatoslav Ryhel clamor95@gmail.com
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