Add mux so we can select either headset or built-in microphone input.

Signed-off-by: Guido Günther <a...@sigxcpu.org>
---
 .../dts/freescale/imx8mq-librem5-devkit.dts   | 25 ++++++++++++++++---
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts 
b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
index aac05bbaa001..f818af592046 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
@@ -163,18 +163,29 @@ wwan_codec: sound-wwan-codec {
                #sound-dai-cells = <0>;
        };
 
+       mic_mux: mic-mux {
+               compatible = "simple-audio-mux";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_micsel>;
+               mux-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
+               sound-name-prefix = "Mic Mux";
+       };
+
        sound {
                compatible = "simple-audio-card";
-               simple-audio-card,aux-devs = <&speaker_amp>;
+               simple-audio-card,aux-devs = <&speaker_amp>, <&mic_mux>;
                simple-audio-card,name = "Librem 5 Devkit";
                simple-audio-card,format = "i2s";
                simple-audio-card,widgets =
-                       "Microphone", "Microphone Jack",
+                       "Microphone", "Builtin Microphone",
+                       "Microphone", "Headset Microphone",
                        "Headphone", "Headphone Jack",
                        "Speaker", "Builtin Speaker";
                simple-audio-card,routing =
-                       "MIC_IN", "Microphone Jack",
-                       "Microphone Jack", "Mic Bias",
+                       "MIC_IN", "Mic Mux OUT",
+                       "Mic Mux IN1", "Headset Microphone",
+                       "Mic Mux IN2", "Builtin Microphone",
+                       "Mic Mux OUT", "Mic Bias",
                        "Headphone Jack", "HP_OUT",
                        "Builtin Speaker", "Speaker Amp OUTR",
                        "Speaker Amp INR", "LINE_OUT";
@@ -650,6 +661,12 @@ MX8MQ_IOMUXC_SAI5_RXFS_GPIO3_IO19  0x8  /* IMU_INT */
                >;
        };
 
+       pinctrl_micsel: micselgrp {
+               fsl,pins = <
+                       MX8MQ_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5    0xc6  /* 
MIC_SEL */
+               >;
+       };
+
        pinctrl_spkamp: spkamp {
                fsl,pins = <
                        MX8MQ_IOMUXC_SPDIF_TX_GPIO5_IO3         0x81  /* MUTE */
-- 
2.30.0

Reply via email to