arm64: dts: imx8mm: Enable DMIC input on Variscite boards
Subsystems (2)
cover arm64: dts: imx8mm: Enable DMIC input on Variscite boards
This series describes the digital microphone connection to the WM8904 codec on the Variscite DART-MX8M-MINI and VAR-SOM-MX8M-MINI platforms.
Configure IN1L as DMICDAT1 on both platforms to enable the digital microphone capture path.
Stefano Radaelli (2):
arm64: dts: imx8mm-var-dart: Enable WM8904 DMIC input
arm64: dts: imx8mm-var-som: Enable WM8904 DMIC input
arch/arm64/boot/dts/freescale/imx8mm-var-dart.dtsi | 2 ++ arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi | 2 ++ 2 files changed, 4 insertions(+)
base-commit: 31f9ec9f38735f42e1f0ba57347c420e56b99824
Signature · 1 line
2.47.3
PATCH 1/2 arm64: dts: imx8mm-var-dart: Enable WM8904 DMIC input
From: Stefano Radaelli <[email protected]>
The digital microphone data line is connected to the WM8904 IN1L pin, but this connection is not described in the device tree.
Configure IN1L as DMICDAT1 to enable the digital microphone capture path.
--- arch/arm64/boot/dts/freescale/imx8mm-var-dart.dtsi | 2 ++ 1 file changed, 2 insertions(+)
arch/arm64/boot/dts/freescale/imx8mm-var-dart.dtsi +2 -0
@@ -300,6 +300,8 @@ wm8904: audio-codec@1a { /bits/ 16 <0x04af 0x324b 0x0010 0x050e>; /* GPIO1 = DMIC_CLK, don't touch others */ wlf,gpio-cfg = <0x0018>, <0xffff>, <0xffff>, <0xffff>; + /* DMIC is connected to IN1L */ + wlf,in1l-as-dmicdat1; }; };
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [PATCH v1 1/2] arm64: dts: imx8mm-var-dart: Enable WM8904 DMIC input
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] ASoC: dt: imx8mm: stale DMIC audio routing to Microphone Jack --
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] ASoC: dt: imx8mm: stale DMIC audio routing to Microphone Jack
--
commit 9bda3c8c55088e18eaa9e764f1a00912ea93534f
Author: Stefano Radaelli <[email protected]>
arm64: dts: imx8mm-var-dart: Enable WM8904 DMIC input
The digital microphone data line is connected to the WM8904 IN1L pin, but this connection is not described in the device tree. Configure IN1L as DMICDAT1 to enable the digital microphone capture path.
arch/arm64/boot/dts/freescale/imx8mm-var-dart.dtsi wm8904: audio-codec@1a { · line 304
Quoted 10 lines
arch/arm64/boot/dts/freescale/imx8mm-var-dart.dtsi +2
-0@@ -300,6 +300,8 @@ wm8904: audio-codec@1a { /bits/ 16 <0x04af 0x324b 0x0010 0x050e>; /* GPIO1 = DMIC_CLK, don't touch others */ wlf,gpio-cfg = <0x0018>, <0xffff>, <0xffff>, <0xffff>; + /* DMIC is connected to IN1L */ + wlf,in1l-as-dmicdat1;
[Severity: Medium]
Does this patch also need to update the simple-audio-card,routing array in the sound-wm8904 node?
Currently, the routing in arch/arm64/boot/dts/freescale/imx8mm-var-dart.dtsi still maps IN1L to "Microphone Jack":
sound-wm8904 {
...
simple-audio-card,routing =
...
"IN1L", "Microphone Jack",
"IN1R", "Microphone Jack";
...
}Exposing an onboard digital microphone (DMIC) as a "Microphone Jack" causes semantic confusion in ALSA userspace. Audio routing daemons like PulseAudio and PipeWire use widget names to distinguish between built-in microphones and external pluggable headsets.
Leaving the newly configured digital IN1L input tied to an external analog jack breaks userspace jack detection logic and presents incorrect routing options.
Quoted 2 lines
arch/arm64/boot/dts/freescale/imx8mm-var-dart.dtsi +0
-0}; };
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Re: [PATCH v1 1/2] arm64: dts: imx8mm-var-dart: Enable WM8904 DMIC input
Quoted 17 lines · On Fri, Oct 16, 2026 at 08:49:52AM +0000, [email protected] wrote:
[Severity: Medium]
Does this patch also need to update the simple-audio-card,routing array in the sound-wm8904 node?Currently, the routing in
arch/arm64/boot/dts/freescale/imx8mm-var-dart.dtsistill maps IN1L to "Microphone Jack":sound-wm8904 { ... simple-audio-card,routing = ... "IN1L", "Microphone Jack", "IN1R", "Microphone Jack"; ... }
Quoted 9 lines
Exposing an onboard digital microphone (DMIC) as a "Microphone Jack" causes semantic confusion in ALSA userspace. Audio routing daemons like PulseAudio and PipeWire use widget names to distinguish between built-in microphones and external pluggable headsets.
Leaving the newly configured digital IN1L input tied to an external analog jack breaks userspace jack detection logic and presents incorrect routing options.
“Microphone Jack” is the existing DAPM widget name; it does not select analog operation or enable jack detection.
This board does not configure microphone jack detection through simple-audio-card, so I do not see how retaining this name would cause the reported userspace jack detection failure.
This patch adds the missing IN1L DMIC configuration.
The same configuration, including the existing widget name and routing, is also used on the Variscite DART-MX91, DART-MX93 and DART-MX95.
A more descriptive widget name could be considered separately. I would prefer to keep this patch focused on the missing DMIC property.
Stefano
PATCH 2/2 arm64: dts: imx8mm-var-som: Enable WM8904 DMIC input
In reply to Stefano RadaelliFrom: Stefano Radaelli <[email protected]>
The digital microphone data line is connected to the WM8904 IN1L pin, but this connection is not described in the device tree.
Configure IN1L as DMICDAT1 to enable the digital microphone capture path.
--- arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi | 2 ++ 1 file changed, 2 insertions(+)
arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi +2 -0
@@ -348,6 +348,8 @@ wm8904: codec@1a { /bits/ 16 <0x04af 0x324b 0x0010 0x050e>; /* GPIO1 = DMIC_CLK, don't touch others */ wlf,gpio-cfg = <0x0018>, <0xffff>, <0xffff>, <0xffff>; + /* DMIC is connected to IN1L */ + wlf,in1l-as-dmicdat1; }; };
Signature · 1 line
2.47.3
[email protected]
AppliedFrom: Frank Li <[email protected]>
Quoted 11 lines · Stefano Radaelli
This series describes the digital microphone connection to the WM8904 codec on the Variscite DART-MX8M-MINI and VAR-SOM-MX8M-MINI platforms.
Configure IN1L as DMICDAT1 on both platforms to enable the digital microphone capture path.
Stefano Radaelli (2):
arm64: dts: imx8mm-var-dart: Enable WM8904 DMIC input
arm64: dts: imx8mm-var-som: Enable WM8904 DMIC input[...]
Applied to imx/dt64-intend (will appear to linux-next after v7.4-rc1), thanks!
[1/2] arm64: dts: imx8mm-var-dart: Enable WM8904 DMIC input
commit: 98bb62f6426fe83d1d9ad1b0a8a689d2babfbcee
[2/2] arm64: dts: imx8mm-var-som: Enable WM8904 DMIC input
commit: 5391f84729fb68a5b0e3180e4fbf9d64282fd036Best regards,
--
Frank Li <[email protected]>