* [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms
@ 2026-08-14 7:20 Chancel Liu
2026-08-14 7:20 ` [PATCH 01/17] arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS Chancel Liu
` (16 more replies)
0 siblings, 17 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS (Medium Quality Sound) is an internal audio DAC available on multiple
NXP i.MX9 SoCs. On EVK boards, the MQS output pins are typically shared
with other peripherals (CAN, PDM microphone, etc.), so enabling MQS
requires switching board-level pin muxes and disabling the conflicting
device.
This series adds MQS1 sound card support across the following platforms:
- i.MX91 11x11 EVK
- i.MX93 11x11 EVK
- i.MX93 14x14 EVK
- i.MX943 EVK
- i.MX95 15x15 EVK
- i.MX952 EVK
Chancel Liu (17):
arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties
for MQS
arm64: dts: imx91-11x11-evk: Add board muxes to select between PDM and
MQS1
arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices
for MQS1
arm64: dts: imx93-11x11-evk: Add board muxes to select between PDM and
MQS1
arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices
for MQS1
arm64: dts: imx93-14x14-evk: Add board muxes to select between
FlexCAN1 and MQS1
arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices
for MQS1
arm64: dts: imx94: Add clock and sound-dai-cells properties for MQS1
arm64: dts: imx943-evk: Add board muxes to select between CAN1/PDM and
MQS1/MIC
arm64: dts: imx943-evk: Add pinmux and mark conflicting devices for
MQS1
arm64: dts: imx95: Add clock and sound-dai-cells properties for MQS1
arm64: dts: imx95-15x15-evk: Add board muxes to select between PDM and
MQS1
arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices
for MQS1
arm64: dts: imx952: Add AONMIX MQS device node
arm64: dts: imx952-evk: Add board muxes to select between CAN1/PDM
arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for
MQS1
arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9
platforms
arch/arm64/boot/dts/freescale/Makefile | 12 ++++
arch/arm64/boot/dts/freescale/imx9-mqs.dtso | 54 ++++++++++++++
.../boot/dts/freescale/imx91-11x11-evk.dts | 41 ++++++++++-
.../boot/dts/freescale/imx91_93_common.dtsi | 6 ++
.../boot/dts/freescale/imx93-11x11-evk.dts | 41 ++++++++++-
.../boot/dts/freescale/imx93-14x14-evk.dts | 50 ++++++++++++-
arch/arm64/boot/dts/freescale/imx94.dtsi | 3 +
arch/arm64/boot/dts/freescale/imx943-evk.dts | 70 +++++++++++++-----
.../boot/dts/freescale/imx95-15x15-evk.dts | 42 ++++++++++-
arch/arm64/boot/dts/freescale/imx95.dtsi | 3 +
arch/arm64/boot/dts/freescale/imx952-evk.dts | 71 ++++++++++++++-----
arch/arm64/boot/dts/freescale/imx952.dtsi | 8 +++
12 files changed, 358 insertions(+), 43 deletions(-)
create mode 100644 arch/arm64/boot/dts/freescale/imx9-mqs.dtso
--
2.50.1
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH 01/17] arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:30 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 02/17] arm64: dts: imx91-11x11-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
` (15 subsequent siblings)
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
The "mclk" clock provides the MQS oversampling clock, and #sound-dai-cells
describes the node as an ASoC DAI provider. Both are fixed SoC integration
properties rather than board specific, so add them here in the common dtsi
instead of duplicating them in each board dts.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/imx91_93_common.dtsi | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi b/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
index a1a7e6a0571b..a68ffd04ee08 100644
--- a/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
@@ -100,13 +100,19 @@ gic: interrupt-controller@48000000 {
mqs1: mqs1 {
compatible = "fsl,imx93-mqs";
+ clocks = <&clk IMX93_CLK_MQS1_GATE>;
+ clock-names = "mclk";
gpr = <&aonmix_ns_gpr>;
+ #sound-dai-cells = <0>;
status = "disabled";
};
mqs2: mqs2 {
compatible = "fsl,imx93-mqs";
+ clocks = <&clk IMX93_CLK_MQS2_GATE>;
+ clock-names = "mclk";
gpr = <&wakeupmix_gpr>;
+ #sound-dai-cells = <0>;
status = "disabled";
};
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 02/17] arm64: dts: imx91-11x11-evk: Add board muxes to select between PDM and MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
2026-08-14 7:20 ` [PATCH 01/17] arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:20 ` [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
` (14 subsequent siblings)
16 siblings, 0 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
PDM has pin conflict with MQS1. Add GPIO-controlled board muxes to
route shared signals between PDM and MQS1.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
.../boot/dts/freescale/imx91-11x11-evk.dts | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
index 5716febb5a50..4d1ada6a3942 100644
--- a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
@@ -41,6 +41,25 @@ chosen {
stdout-path = &lpuart1;
};
+ pdm_mqs1_mux: mux-controller-0 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&adp5585 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ pinctrl-gpiomux {
+ compatible = "pinctrl-multiplexer";
+
+ mqs1_fun: mqs1-grp {
+ mux-states = <&pdm_mqs1_mux 1>;
+ };
+
+ pdm_fun: pdm-grp {
+ mux-states = <&pdm_mqs1_mux 0>;
+ };
+ };
+
reg_vref_1v8: regulator-adc-vref {
compatible = "regulator-fixed";
regulator-max-microvolt = <1800000>;
@@ -484,7 +503,7 @@ bluetooth {
&micfil {
pinctrl-names = "default", "sleep";
- pinctrl-0 = <&pinctrl_pdm>;
+ pinctrl-0 = <&pinctrl_pdm>, <&pdm_fun>;
pinctrl-1 = <&pinctrl_pdm_sleep>;
assigned-clocks = <&clk IMX93_CLK_PDM>;
assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
2026-08-14 7:20 ` [PATCH 01/17] arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS Chancel Liu
2026-08-14 7:20 ` [PATCH 02/17] arm64: dts: imx91-11x11-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:31 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 04/17] arm64: dts: imx93-11x11-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
` (13 subsequent siblings)
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS1 shares pins with PDM and its sound card conflicts with the BT SCO
card. Add the MQS1 pinctrl group and label the conflicting device and
card so the shared imx9-mqs overlay can disable them. The overlay and
its Makefile rule are added in a later patch.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
.../boot/dts/freescale/imx91-11x11-evk.dts | 20 +++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
index 4d1ada6a3942..4a3dfafae377 100644
--- a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
@@ -145,7 +145,7 @@ sound-wm8962 {
"IN1R", "AMIC";
};
- sound-bt-sco {
+ mqs1_conflict_card: sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,name = "bt-sco-audio";
simple-audio-card,format = "dsp_a";
@@ -501,7 +501,7 @@ bluetooth {
};
};
-&micfil {
+mqs1_conflict_dev: &micfil {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pinctrl_pdm>, <&pdm_fun>;
pinctrl-1 = <&pinctrl_pdm_sleep>;
@@ -511,10 +511,19 @@ &micfil {
status = "okay";
};
+&mqs1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_fun>;
+};
+
&sai1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pinctrl_sai1>;
pinctrl-1 = <&pinctrl_sai1_sleep>;
+ clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
+ <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
+ <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
assigned-clocks = <&clk IMX93_CLK_SAI1>;
assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
assigned-clock-rates = <12288000>;
@@ -720,6 +729,13 @@ MX91_PAD_I2C2_SDA__LPI2C2_SDA 0x40000b9e
>;
};
+ pinctrl_mqs1: mqs1grp {
+ fsl,pins = <
+ MX91_PAD_PDM_CLK__MQS1_LEFT 0x31e
+ MX91_PAD_PDM_BIT_STREAM0__MQS1_RIGHT 0x31e
+ >;
+ };
+
pinctrl_pdm: pdmgrp {
fsl,pins = <
MX91_PAD_PDM_CLK__PDM_CLK 0x31e
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 04/17] arm64: dts: imx93-11x11-evk: Add board muxes to select between PDM and MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (2 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:20 ` [PATCH 05/17] arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
` (12 subsequent siblings)
16 siblings, 0 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
PDM has pin conflict with MQS1. Add GPIO-controlled board muxes to
route shared signals between PDM and MQS1.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
.../boot/dts/freescale/imx93-11x11-evk.dts | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
index c6db9c85f2ac..4418fc6a0901 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
@@ -16,6 +16,25 @@ aliases {
mmc2 = &usdhc3;
};
+ pdm_mqs1_mux: mux-controller-0 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&adp5585 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ pinctrl-gpiomux {
+ compatible = "pinctrl-multiplexer";
+
+ mqs1_fun: mqs1-grp {
+ mux-states = <&pdm_mqs1_mux 1>;
+ };
+
+ pdm_fun: pdm-grp {
+ mux-states = <&pdm_mqs1_mux 0>;
+ };
+ };
+
reg_m2_pwr: regulator-m2-pwr {
compatible = "regulator-fixed";
regulator-name = "M.2-power";
@@ -88,7 +107,7 @@ cpu {
&micfil {
pinctrl-names = "default", "sleep";
- pinctrl-0 = <&pinctrl_pdm>;
+ pinctrl-0 = <&pinctrl_pdm>, <&pdm_fun>;
pinctrl-1 = <&pinctrl_pdm_sleep>;
assigned-clocks = <&clk IMX93_CLK_PDM>;
assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 05/17] arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (3 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 04/17] arm64: dts: imx93-11x11-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:33 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 06/17] arm64: dts: imx93-14x14-evk: Add board muxes to select between FlexCAN1 and MQS1 Chancel Liu
` (11 subsequent siblings)
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS1 shares pins with PDM and its sound card conflicts with the BT SCO
card. Add the MQS1 pinctrl group and label the conflicting device and
card so the shared imx9-mqs overlay can disable them. The overlay and
its Makefile rule are added in a later patch.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
.../boot/dts/freescale/imx93-11x11-evk.dts | 20 +++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
index 4418fc6a0901..71822d06ebf6 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
@@ -71,7 +71,7 @@ bt_sco_codec: bt-sco-codec {
#sound-dai-cells = <1>;
};
- sound-bt-sco {
+ mqs1_conflict_card: sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,name = "bt-sco-audio";
simple-audio-card,format = "dsp_a";
@@ -105,7 +105,7 @@ cpu {
};
};
-&micfil {
+mqs1_conflict_dev: &micfil {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pinctrl_pdm>, <&pdm_fun>;
pinctrl-1 = <&pinctrl_pdm_sleep>;
@@ -115,6 +115,11 @@ &micfil {
status = "okay";
};
+&mqs1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_fun>;
+};
+
&pcal6524 {
m2-pcm-level-shifter-hog {
gpio-hog;
@@ -127,6 +132,10 @@ &sai1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pinctrl_sai1>;
pinctrl-1 = <&pinctrl_sai1_sleep>;
+ clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
+ <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
+ <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
assigned-clocks = <&clk IMX93_CLK_SAI1>;
assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
assigned-clock-rates = <12288000>;
@@ -150,6 +159,13 @@ &usdhc3 {
};
&iomuxc {
+ pinctrl_mqs1: mqs1grp {
+ fsl,pins = <
+ MX93_PAD_PDM_CLK__MQS1_LEFT 0x31e
+ MX93_PAD_PDM_BIT_STREAM0__MQS1_RIGHT 0x31e
+ >;
+ };
+
pinctrl_pdm: pdmgrp {
fsl,pins = <
MX93_PAD_PDM_CLK__PDM_CLK 0x31e
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 06/17] arm64: dts: imx93-14x14-evk: Add board muxes to select between FlexCAN1 and MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (4 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 05/17] arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:31 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
` (10 subsequent siblings)
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
FlexCAN1 has pin conflict with MQS1. Add GPIO-controlled board muxes to
route shared signals between FlexCAN1 and MQS1.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
.../boot/dts/freescale/imx93-14x14-evk.dts | 30 +++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
index ec78c03f4788..502237fab332 100644
--- a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
@@ -37,6 +37,36 @@ chosen {
stdout-path = &lpuart1;
};
+ can1_mqs1_mux: mux-controller-0 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pcal6524_2 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ mqs1_amp_en_mux: mux-controller-1 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pcal6524_2 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ pinctrl-gpiomux {
+ compatible = "pinctrl-multiplexer";
+
+ can1_fun: can1-grp {
+ mux-states = <&can1_mqs1_mux 0>;
+ };
+
+ mqs1_amp_en: mqs1-amp-en-grp {
+ mux-states = <&mqs1_amp_en_mux 1>;
+ };
+
+ mqs1_fun: mqs1-grp {
+ mux-states = <&can1_mqs1_mux 1>;
+ };
+ };
+
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (5 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 06/17] arm64: dts: imx93-14x14-evk: Add board muxes to select between FlexCAN1 and MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:33 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 08/17] arm64: dts: imx94: Add clock and sound-dai-cells properties " Chancel Liu
` (9 subsequent siblings)
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS1 shares pins with FlexCAN1 and its sound card conflicts with the BT
SCO card. Add the MQS1 pinctrl group and label the conflicting device
and card so the shared imx9-mqs overlay can disable them. The overlay
and its Makefile rule are added in a later patch.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
.../boot/dts/freescale/imx93-14x14-evk.dts | 20 +++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
index 502237fab332..11bb7e52fbb1 100644
--- a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
@@ -204,7 +204,7 @@ reg_vref_1v8: regulator-adc-vref {
regulator-max-microvolt = <1800000>;
};
- sound-bt-sco {
+ mqs1_conflict_card: sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,name = "bt-sco-audio";
simple-audio-card,format = "dsp_a";
@@ -282,7 +282,7 @@ ethphy2: ethernet-phy@2 {
};
};
-&flexcan1 {
+mqs1_conflict_dev: &flexcan1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1>;
xceiver-supply = <®_can1_stby>;
@@ -450,9 +450,18 @@ &mu2 {
status = "okay";
};
+&mqs1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_fun>, <&mqs1_amp_en>;
+};
+
&sai1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai1>;
+ clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
+ <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
+ <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
assigned-clocks = <&clk IMX93_CLK_SAI1>;
assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
assigned-clock-rates = <12288000>;
@@ -570,6 +579,13 @@ MX93_PAD_GPIO_IO29__LPI2C3_SCL 0x40000b9e
>;
};
+ pinctrl_mqs1: mqs1grp {
+ fsl,pins = <
+ MX93_PAD_PDM_CLK__MQS1_LEFT 0x31e
+ MX93_PAD_PDM_BIT_STREAM0__MQS1_RIGHT 0x31e
+ >;
+ };
+
pinctrl_pcal6524: pcal6524grp {
fsl,pins = <
MX93_PAD_CCM_CLKO2__GPIO3_IO27 0x31e
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 08/17] arm64: dts: imx94: Add clock and sound-dai-cells properties for MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (6 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:20 ` [PATCH 09/17] arm64: dts: imx943-evk: Add board muxes to select between CAN1/PDM and MQS1/MIC Chancel Liu
` (8 subsequent siblings)
16 siblings, 0 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS1 MCLK input is driven from the respective SAI1 MCLK output, and
sound-dai-cells describes the node as an ASoC DAI provider. Both are
fixed SoC integration properties rather than board specific, so add them
here in the common dtsi instead of duplicating them in each board dts.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/imx94.dtsi | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx94.dtsi b/arch/arm64/boot/dts/freescale/imx94.dtsi
index 34833e62bd79..a0d1922389d6 100644
--- a/arch/arm64/boot/dts/freescale/imx94.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx94.dtsi
@@ -131,6 +131,9 @@ scmi_misc: protocol@84 {
mqs1: mqs1 {
compatible = "fsl,imx943-aonmix-mqs";
+ clocks = <&scmi_clk IMX94_CLK_SAI1>;
+ clock-names = "mclk";
+ #sound-dai-cells = <0>;
status = "disabled";
};
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 09/17] arm64: dts: imx943-evk: Add board muxes to select between CAN1/PDM and MQS1/MIC
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (7 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 08/17] arm64: dts: imx94: Add clock and sound-dai-cells properties " Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:20 ` [PATCH 10/17] arm64: dts: imx943-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
` (7 subsequent siblings)
16 siblings, 0 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
CAN1 has pin conflict with PDM, and MQS1 has pin conflict with the
MICFIL function. Replace static gpio-hog settings with GPIO-controlled
board muxes using the pinctrl-multiplexer framework, so that the
conflicting functions can be selected at runtime.
Update the MICFIL node to select MICFIL function via PINCTRL.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 49 ++++++++++++++------
1 file changed, 35 insertions(+), 14 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index 64660f94f4e9..07b782ef698a 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -38,6 +38,40 @@ bt_sco_codec: bt-sco-codec {
#sound-dai-cells = <1>;
};
+ can1_pdm_mux: mux-controller-0 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pcal6416_i2c6_u44 12 GPIO_ACTIVE_HIGH>;
+ };
+
+ mqs1_mic_mux: mux-controller-1 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pcal6416_i2c3_u171 11 GPIO_ACTIVE_HIGH>;
+ };
+
+ pinctrl-gpiomux {
+ compatible = "pinctrl-multiplexer";
+
+ can1_fun: can1-grp {
+ mux-states = <&can1_pdm_mux 1>;
+ };
+
+ mic_fun: mic-grp {
+ mux-states = <&mqs1_mic_mux 0>;
+ };
+
+ mqs1_fun: mqs1-grp {
+ mux-states = <&mqs1_mic_mux 1>;
+ };
+
+ pdm_fun: pdm-grp {
+ mux-states = <&can1_pdm_mux 0>;
+ };
+ };
+
flexcan2_phy: can-phy0 {
compatible = "nxp,tjr1443";
#phy-cells = <0>;
@@ -535,12 +569,6 @@ audio-pwren-hog {
gpio-hog;
output-high;
};
-
- mqs-mic-sel-hog {
- gpios = <11 GPIO_ACTIVE_HIGH>;
- gpio-hog;
- output-low;
- };
};
};
@@ -651,13 +679,6 @@ pcal6416_i2c6_u44: gpio@20 {
#gpio-cells = <2>;
gpio-controller;
- /* pdm selection */
- can-pdm-sel-hog {
- gpios = <12 GPIO_ACTIVE_HIGH>;
- gpio-hog;
- output-low;
- };
-
sai3-sel-hog {
gpios = <11 GPIO_ACTIVE_HIGH>;
gpio-hog;
@@ -710,7 +731,7 @@ &micfil {
assigned-clock-rates = <3932160000>,
<3612672000>, <393216000>,
<361267200>, <49152000>;
- pinctrl-0 = <&pinctrl_pdm>;
+ pinctrl-0 = <&pinctrl_pdm>, <&mic_fun>, <&pdm_fun>;
pinctrl-names = "default";
status = "okay";
};
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 10/17] arm64: dts: imx943-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (8 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 09/17] arm64: dts: imx943-evk: Add board muxes to select between CAN1/PDM and MQS1/MIC Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:20 ` [PATCH 11/17] arm64: dts: imx95: Add clock and sound-dai-cells properties " Chancel Liu
` (6 subsequent siblings)
16 siblings, 0 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS1 shares pins with PDM and its sound card conflicts with the WM8962
sound card. Add the MQS1 pinctrl group and label the conflicting device
and card so the shared imx9-mqs overlay can disable them. The overlay
and its Makefile rule are added in a later patch.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 21 ++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index 07b782ef698a..389def180b6d 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -341,7 +341,7 @@ cpu {
};
};
- sound-wm8962 {
+ mqs1_conflict_card: sound-wm8962 {
compatible = "fsl,imx-audio-wm8962";
audio-codec = <&wm8962>;
audio-cpu = <&sai1>;
@@ -720,7 +720,7 @@ bluetooth {
};
};
-&micfil {
+mqs1_conflict_dev: &micfil {
assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
<&scmi_clk IMX94_CLK_AUDIOPLL1>,
@@ -736,6 +736,11 @@ &micfil {
status = "okay";
};
+&mqs1 {
+ pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_fun>, <&pdm_fun>;
+ pinctrl-names = "default";
+};
+
&mu11 {
status = "okay";
};
@@ -782,6 +787,11 @@ &netc_timer1 {
};
&sai1 {
+ clocks = <&scmi_clk IMX94_CLK_BUSAON>, <&dummy>,
+ <&scmi_clk IMX94_CLK_SAI1>, <&dummy>,
+ <&dummy>, <&scmi_clk IMX94_CLK_AUDIOPLL1>,
+ <&scmi_clk IMX94_CLK_AUDIOPLL2>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
<&scmi_clk IMX94_CLK_AUDIOPLL1>,
@@ -904,6 +914,13 @@ IMX94_PAD_GPIO_IO28__LPI2C6_SCL 0x40000b9e
>;
};
+ pinctrl_mqs1: mqs1grp {
+ fsl,pins = <
+ IMX94_PAD_PDM_CLK__MQS1_LEFT 0x31e
+ IMX94_PAD_PDM_BIT_STREAM0__MQS1_RIGHT 0x31e
+ >;
+ };
+
pinctrl_pcie0: pcie0grp {
fsl,pins = <
IMX94_PAD_GPIO_IO20__PCIE1_CLKREQ_B 0x4000031e
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 11/17] arm64: dts: imx95: Add clock and sound-dai-cells properties for MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (9 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 10/17] arm64: dts: imx943-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:30 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 12/17] arm64: dts: imx95-15x15-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
` (5 subsequent siblings)
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS1 MCLK input is driven from the respective SAI1 MCLK output, and
sound-dai-cells describes the node as an ASoC DAI provider. Both are
fixed SoC integration properties rather than board specific, so add them
here in the common dtsi instead of duplicating them in each board dts.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/imx95.dtsi | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
index 38fc47024841..7bc74307d9ae 100644
--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
@@ -439,6 +439,9 @@ hugo_funnel_out_port0: endpoint {
mqs1: mqs-1 {
compatible = "fsl,imx95-aonmix-mqs";
+ clocks = <&scmi_clk IMX95_CLK_SAI1>;
+ clock-names = "mclk";
+ #sound-dai-cells = <0>;
status = "disabled";
};
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 12/17] arm64: dts: imx95-15x15-evk: Add board muxes to select between PDM and MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (10 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 11/17] arm64: dts: imx95: Add clock and sound-dai-cells properties " Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:20 ` [PATCH 13/17] arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
` (4 subsequent siblings)
16 siblings, 0 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
PDM has pin conflict with MQS1. Add GPIO-controlled board muxes to
route shared signals between PDM and MQS1.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
.../boot/dts/freescale/imx95-15x15-evk.dts | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts b/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
index 6aedcbbe915a..aaa2608793bf 100644
--- a/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
@@ -114,6 +114,25 @@ flexcan2_phy: can-phy {
silent-gpios = <&pcal6524 14 GPIO_ACTIVE_HIGH>;
};
+ pdm_mqs1_mux: mux-controller-0 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pcal6524 20 GPIO_ACTIVE_HIGH>;
+ };
+
+ pinctrl-gpiomux {
+ compatible = "pinctrl-multiplexer";
+
+ pdm_fun: pdm-grp {
+ mux-states = <&pdm_mqs1_mux 0>;
+ };
+
+ mqs1_fun: mqs1-grp {
+ mux-states = <&pdm_mqs1_mux 1>;
+ };
+ };
+
reg_m2_pwr: regulator-m2-pwr {
compatible = "regulator-fixed";
regulator-max-microvolt = <3300000>;
@@ -488,7 +507,7 @@ &micfil {
assigned-clock-parents = <0>, <0>, <0>, <0>, <&scmi_clk IMX95_CLK_AUDIOPLL1>;
assigned-clock-rates = <3932160000>, <3612672000>, <393216000>, <361267200>, <49152000>;
#sound-dai-cells = <0>;
- pinctrl-0 = <&pinctrl_pdm>;
+ pinctrl-0 = <&pinctrl_pdm>, <&pdm_fun>;
pinctrl-names = "default";
status = "okay";
};
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 13/17] arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (11 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 12/17] arm64: dts: imx95-15x15-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:36 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 14/17] arm64: dts: imx952: Add AONMIX MQS device node Chancel Liu
` (3 subsequent siblings)
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS1 shares pins with PDM and its sound card conflicts with the BT SCO
card. Add the MQS1 pinctrl group and label the conflicting device and
card so the shared imx9-mqs overlay can disable them. The overlay and
its Makefile rule are added in a later patch.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
.../boot/dts/freescale/imx95-15x15-evk.dts | 21 +++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts b/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
index aaa2608793bf..1013bbfc08b3 100644
--- a/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
@@ -239,7 +239,7 @@ vpu_boot: vpu-boot@a0000000 {
};
};
- sound-bt-sco {
+ mqs1_conflict_card: sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,bitclock-inversion;
simple-audio-card,bitclock-master = <&btcpu>;
@@ -498,7 +498,7 @@ bluetooth {
};
};
-&micfil {
+mqs1_conflict_dev: &micfil {
assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>,
<&scmi_clk IMX95_CLK_AUDIOPLL1>,
@@ -512,6 +512,11 @@ &micfil {
status = "okay";
};
+&mqs1 {
+ pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_fun>;
+ pinctrl-names = "default";
+};
+
&mu7 {
status = "okay";
};
@@ -592,6 +597,11 @@ &pcie0_port0 {
};
&sai1 {
+ clocks = <&scmi_clk IMX95_CLK_BUSAON>, <&dummy>,
+ <&scmi_clk IMX95_CLK_SAI1>, <&dummy>,
+ <&dummy>, <&scmi_clk IMX95_CLK_AUDIOPLL1>,
+ <&scmi_clk IMX95_CLK_AUDIOPLL2>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>,
<&scmi_clk IMX95_CLK_AUDIOPLL1>,
@@ -670,6 +680,13 @@ IMX95_PAD_GPIO_IO27__CAN2_RX 0x39e
>;
};
+ pinctrl_mqs1: mqs1grp {
+ fsl,pins = <
+ IMX95_PAD_PDM_CLK__AONMIX_TOP_MQS1_LEFT 0x31e
+ IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_MQS1_RIGHT 0x31e
+ >;
+ };
+
pinctrl_hp: hpgrp {
fsl,pins = <
IMX95_PAD_GPIO_IO21__GPIO2_IO_BIT21 0x31e
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 14/17] arm64: dts: imx952: Add AONMIX MQS device node
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (12 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 13/17] arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:20 ` [PATCH 15/17] arm64: dts: imx952-evk: Add board muxes to select between CAN1/PDM Chancel Liu
` (2 subsequent siblings)
16 siblings, 0 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
Add DT node for AONMIX MQS (i.e. MQS1).
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/imx952.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx952.dtsi b/arch/arm64/boot/dts/freescale/imx952.dtsi
index 020de00e8285..54dc793a2f69 100644
--- a/arch/arm64/boot/dts/freescale/imx952.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx952.dtsi
@@ -261,6 +261,14 @@ scmi_misc: protocol@84 {
};
};
+ mqs1: mqs1 {
+ compatible = "fsl,imx95-aonmix-mqs";
+ clocks = <&scmi_clk IMX952_CLK_SAI1>;
+ clock-names = "mclk";
+ #sound-dai-cells = <0>;
+ status = "disabled";
+ };
+
gic: interrupt-controller@48000000 {
compatible = "arm,gic-v3";
reg = <0 0x48000000 0 0x10000>,
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 15/17] arm64: dts: imx952-evk: Add board muxes to select between CAN1/PDM
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (13 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 14/17] arm64: dts: imx952: Add AONMIX MQS device node Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:20 ` [PATCH 16/17] arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
2026-08-14 7:20 ` [PATCH 17/17] arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9 platforms Chancel Liu
16 siblings, 0 replies; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
CAN1 has pin conflict with PDM. MQS1 requires an enable signal via a
separate GPIO. Replace static gpio-hog settings with GPIO-controlled
board muxes using the pinctrl-multiplexer framework, so that the
conflicting functions can be selected at runtime.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/imx952-evk.dts | 50 ++++++++++++++------
1 file changed, 36 insertions(+), 14 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx952-evk.dts b/arch/arm64/boot/dts/freescale/imx952-evk.dts
index 2224b90aafe9..e9d735dc2a51 100644
--- a/arch/arm64/boot/dts/freescale/imx952-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx952-evk.dts
@@ -52,6 +52,40 @@ chosen {
stdout-path = &lpuart1;
};
+ can1_pdm_mux: mux-controller-0 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pcal6416 10 GPIO_ACTIVE_HIGH>;
+ };
+
+ mqs1_en_mux: mux-controller-1 {
+ compatible = "gpio-mux";
+ #mux-control-cells = <0>;
+ #mux-state-cells = <1>;
+ mux-gpios = <&pcal6416 15 GPIO_ACTIVE_HIGH>;
+ };
+
+ pinctrl-gpiomux {
+ compatible = "pinctrl-multiplexer";
+
+ can1_fun: can1-grp {
+ mux-states = <&can1_pdm_mux 1>;
+ };
+
+ mqs1_disable: mqs1-disable-grp {
+ mux-states = <&mqs1_en_mux 0>;
+ };
+
+ mqs1_enable: mqs1-enable-grp {
+ mux-states = <&mqs1_en_mux 1>;
+ };
+
+ pdm_fun: pdm-grp {
+ mux-states = <&can1_pdm_mux 0>;
+ };
+ };
+
dmic: dmic {
compatible = "dmic-codec";
#sound-dai-cells = <0>;
@@ -284,7 +318,7 @@ &asrc2 {
/* pin conflict with PDM */
&flexcan1 {
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_flexcan1>;
+ pinctrl-0 = <&pinctrl_flexcan1>, <&mqs1_disable>, <&can1_fun>;
phys = <&flexcan1_phy>;
status = "disabled";
};
@@ -387,18 +421,6 @@ pcal6416: gpio@21 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcal6416>;
vcc-supply = <®_3p3v>;
-
- pdm-can-sel-hog {
- gpio-hog;
- gpios = <10 GPIO_ACTIVE_HIGH>;
- output-low;
- };
-
- mqs-en-hog {
- gpio-hog;
- gpios = <15 GPIO_ACTIVE_HIGH>;
- output-low;
- };
};
};
@@ -491,7 +513,7 @@ &micfil {
<&scmi_clk IMX952_CLK_AUDIOPLL1>;
assigned-clock-rates = <3932160000>, <3612672000>,
<393216000>, <361267200>, <49152000>;
- pinctrl-0 = <&pinctrl_pdm>;
+ pinctrl-0 = <&pinctrl_pdm>, <&mqs1_disable>, <&pdm_fun>;
pinctrl-1 = <&pinctrl_pdm_sleep>;
pinctrl-names = "default", "sleep";
status = "okay";
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 16/17] arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (14 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 15/17] arm64: dts: imx952-evk: Add board muxes to select between CAN1/PDM Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:42 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 17/17] arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9 platforms Chancel Liu
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
MQS1 shares pins with PDM and its sound card conflicts with the BT SCO
card. Add the MQS1 pinctrl group and label the conflicting device and
card so the shared imx9-mqs overlay can disable them. The overlay and
its Makefile rule are added in a later patch.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/imx952-evk.dts | 21 ++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx952-evk.dts b/arch/arm64/boot/dts/freescale/imx952-evk.dts
index e9d735dc2a51..522c6cb9abf2 100644
--- a/arch/arm64/boot/dts/freescale/imx952-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx952-evk.dts
@@ -231,7 +231,7 @@ &mu7 1 1
<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
};
- sound-bt-sco {
+ mqs1_conflict_card: sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,bitclock-inversion;
simple-audio-card,bitclock-master = <&btcpu>;
@@ -503,7 +503,7 @@ &lpspi7 {
status = "okay";
};
-&micfil {
+mqs1_conflict_dev: &micfil {
assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
<&scmi_clk IMX952_CLK_AUDIOPLL1>,
@@ -519,11 +519,21 @@ &micfil {
status = "okay";
};
+&mqs1 {
+ pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_enable>;
+ pinctrl-names = "default";
+};
+
&mu7 {
status = "okay";
};
&sai1 {
+ clocks = <&scmi_clk IMX952_CLK_BUSAON>, <&clk_dummy>,
+ <&scmi_clk IMX952_CLK_SAI1>, <&clk_dummy>,
+ <&clk_dummy>, <&scmi_clk IMX952_CLK_AUDIOPLL1>,
+ <&scmi_clk IMX952_CLK_AUDIOPLL2>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
<&scmi_clk IMX952_CLK_AUDIOPLL1>,
@@ -704,6 +714,13 @@ IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_LPSPI7_SCK 0x39e
>;
};
+ pinctrl_mqs1: mqs1grp {
+ fsl,pins = <
+ IMX952_PAD_PDM_CLK__AONMIX_TOP_MQS1_LEFT 0x31e
+ IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_MQS1_RIGHT 0x31e
+ >;
+ };
+
pinctrl_pcal6416: pcal6416grp {
fsl,pins = <
IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_GPIO2_IO_10 0x31e
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 17/17] arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9 platforms
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
` (15 preceding siblings ...)
2026-08-14 7:20 ` [PATCH 16/17] arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:20 ` Chancel Liu
2026-08-14 7:40 ` sashiko-bot
16 siblings, 1 reply; 29+ messages in thread
From: Chancel Liu @ 2026-08-14 7:20 UTC (permalink / raw)
To: Frank.Li, s.hauer, robh, krzk+dt, conor+dt, imx
Cc: kernel, festevam, linux-arm-kernel, devicetree, linux-kernel
From: Chancel Liu <chancel.liu@nxp.com>
Add a common DT overlay to support MQS sound cards on i.MX9 platforms.
MQS output pins are often shared with other devices, so the overlay
routes SAI1 to MQS1 and disables the conflicting device and sound card.
Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
---
arch/arm64/boot/dts/freescale/Makefile | 12 +++++
arch/arm64/boot/dts/freescale/imx9-mqs.dtso | 54 +++++++++++++++++++++
2 files changed, 66 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx9-mqs.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 95ae85ab4adf..6e9e3226a693 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -613,6 +613,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx91-9x9-qsb.dtb
dtb-$(CONFIG_ARCH_MXC) += imx91-11x11-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx91-11x11-frdm.dtb
dtb-$(CONFIG_ARCH_MXC) += imx91-11x11-frdm-s.dtb
+imx91-11x11-evk-mqs-dtbs += imx91-11x11-evk.dtb imx9-mqs.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx91-11x11-evk-mqs.dtb
dtb-$(CONFIG_ARCH_MXC) += imx91-phyboard-segin.dtb
imx91-9x9-qsb-can1-dtbs += imx91-9x9-qsb.dtb imx91-9x9-qsb-can1.dtbo
@@ -645,6 +647,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk.dtb
imx93-11x11-evk-dy1212w-4856-dtbs += imx93-11x11-evk.dtb imx93-11x11-evk-dy1212w-4856.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk-dy1212w-4856.dtb
+imx93-11x11-evk-mqs-dtbs += imx93-11x11-evk.dtb imx9-mqs.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk-mqs.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm.dtb
@@ -652,6 +656,8 @@ imx93-11x11-frdm-pixpaper-dtbs += imx93-11x11-frdm.dtb imx93-11x11-frdm-pixpaper
dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm-pixpaper.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb
+imx93-14x14-evk-mqs-dtbs += imx93-14x14-evk.dtb imx9-mqs.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk-mqs.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
@@ -703,6 +709,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx943-evk-pcie0-ep.dtb imx943-evk-pcie1-ep.dtb
imx943-evk-sdwifi-dtbs := imx943-evk.dtb imx943-evk-sdwifi.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx943-evk-sdwifi.dtb
+imx943-evk-mqs-dtbs += imx943-evk.dtb imx9-mqs.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx943-evk-mqs.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-ab2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk.dtb
@@ -734,6 +742,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk-pcie.dtb
imx95-15x15-evk-pcie0-ep-dtbs = imx95-15x15-evk-pcie.dtb imx-pcie0-ep.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk-pcie0-ep.dtb
+imx95-15x15-evk-mqs-dtbs += imx95-15x15-evk.dtb imx9-mqs.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk-mqs.dtb
imx95-19x19-evk-pcie0-ep-dtbs += imx95-19x19-evk.dtb imx-pcie0-ep.dtbo
imx95-19x19-evk-pcie1-ep-dtbs += imx95-19x19-evk.dtb imx-pcie1-ep.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-pcie0-ep.dtb imx95-19x19-evk-pcie1-ep.dtb
@@ -742,6 +752,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-libra-rdk-fpsc.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-verdin-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx952-evk.dtb
+imx952-evk-mqs-dtbs += imx952-evk.dtb imx9-mqs.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx952-evk-mqs.dtb
imx8mm-kontron-dl-dtbs := imx8mm-kontron-bl.dtb imx8mm-kontron-dl.dtbo
imx8mm-kontron-bl-lte-dtbs := imx8mm-kontron-bl.dtb imx8mm-kontron-bl-lte.dtbo
diff --git a/arch/arm64/boot/dts/freescale/imx9-mqs.dtso b/arch/arm64/boot/dts/freescale/imx9-mqs.dtso
new file mode 100644
index 000000000000..9ac6d58eacbb
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx9-mqs.dtso
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2026 NXP
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+ sound-mqs {
+ compatible = "audio-graph-card2";
+ links = <&sai1_port1>;
+ label = "mqs-audio";
+ };
+};
+
+&mqs1_conflict_card {
+ status = "disabled";
+};
+
+&mqs1_conflict_dev {
+ status = "disabled";
+};
+
+&mqs1 {
+ status = "okay";
+
+ port {
+ mqs1_endpoint: endpoint {
+ remote-endpoint = <&sai1_endpoint1>;
+ };
+ };
+};
+
+&sai1 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sai1_port1: port@1 {
+ reg = <1>;
+ playback-only;
+
+ sai1_endpoint1: endpoint {
+ dai-format = "left_j";
+ bitclock-master;
+ frame-master;
+ mclk-fs = <512>;
+ system-clock-direction-out;
+ remote-endpoint = <&mqs1_endpoint>;
+ };
+ };
+ };
+};
--
2.50.1
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH 11/17] arm64: dts: imx95: Add clock and sound-dai-cells properties for MQS1
2026-08-14 7:20 ` [PATCH 11/17] arm64: dts: imx95: Add clock and sound-dai-cells properties " Chancel Liu
@ 2026-08-14 7:30 ` sashiko-bot
0 siblings, 0 replies; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:30 UTC (permalink / raw)
To: Chancel Liu; +Cc: conor+dt, imx, Frank.Li, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The commit adds `clocks` and `clock-names` properties to the common `imx95.dtsi` but fails to remove the duplicate definitions from the board-specific DTS files as claimed in the commit message.
--
--- Patch [11]: [PATCH 11/17] arm64: dts: imx95: Add clock and sound-dai-cells properties for MQS1 ---
commit d5073b98fc81da9751dc1ae974fe122948c15d30
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: imx95: Add clock and sound-dai-cells properties for MQS1
This commit adds clock and sound-dai-cells properties to the MQS1 node in the
common imx95.dtsi file. It notes that these are fixed SoC integration
properties that shouldn't be duplicated across board-specific files.
> MQS1 MCLK input is driven from the respective SAI1 MCLK output, and
> sound-dai-cells describes the node as an ASoC DAI provider. Both are
> fixed SoC integration properties rather than board specific, so add them
> here in the common dtsi instead of duplicating them in each board dts.
[Severity: Low]
The commit message mentions adding these properties here "instead of
duplicating them in each board dts", but it looks like the duplicate
definitions still exist in the board files and weren't removed by this
patch.
For example, in arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts:
&mqs1 {
clocks = <&scmi_clk IMX95_CLK_SAI1>;
clock-names = "mclk";
And similarly in arch/arm64/boot/dts/freescale/imx95-19x19-frdm-pro.dts:
&mqs1 {
clocks = <&scmi_clk IMX95_CLK_SAI1>;
clock-names = "mclk";
Should this patch also remove these redundant properties from those board
files to fully consolidate them?
> diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
> index 38fc47024841f..7bc74307d9ae6 100644
> --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
> @@ -439,6 +439,9 @@ hugo_funnel_out_port0: endpoint {
>
> mqs1: mqs-1 {
> compatible = "fsl,imx95-aonmix-mqs";
> + clocks = <&scmi_clk IMX95_CLK_SAI1>;
> + clock-names = "mclk";
> + #sound-dai-cells = <0>;
> status = "disabled";
> };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=11
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 01/17] arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS
2026-08-14 7:20 ` [PATCH 01/17] arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS Chancel Liu
@ 2026-08-14 7:30 ` sashiko-bot
0 siblings, 0 replies; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:30 UTC (permalink / raw)
To: Chancel Liu; +Cc: robh, devicetree, imx, conor+dt, Frank.Li
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incomplete refactoring leaves duplicated property definitions in board files, mismatching the stated commit intent.
--
--- Patch [1]: [PATCH 01/17] arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS ---
commit 3f3b7186dd0d4a7ad6f02447032fc2e5538b3ca5
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS
This commit adds the mclk and #sound-dai-cells properties to the mqs1 and
mqs2 nodes in the common imx91/93 dtsi. The intent is to define these fixed
SoC integration properties centrally rather than duplicating them across
individual board files.
> The "mclk" clock provides the MQS oversampling clock, and #sound-dai-cells
> describes the node as an ASoC DAI provider. Both are fixed SoC integration
> properties rather than board specific, so add them here in the common dtsi
> instead of duplicating them in each board dts.
[Severity: Medium]
The commit message mentions adding these properties here instead of
duplicating them in each board dts. Should this patch also remove the
existing duplicated properties from the board files?
It appears clocks and clock-names are still defined for the mqs1 node override
in arch/arm64/boot/dts/freescale/imx91-11x11-frdm.dts:
&mqs1 {
clocks = <&clk IMX93_CLK_MQS1_GATE>;
clock-names = "mclk";
...
These duplicate properties also still exist in the mqs1 node override in
arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts.
> diff --git a/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi b/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
> index a1a7e6a0571bd..a68ffd04ee084 100644
> --- a/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
> @@ -100,13 +100,19 @@ gic: interrupt-controller@48000000 {
>
> mqs1: mqs1 {
> compatible = "fsl,imx93-mqs";
> + clocks = <&clk IMX93_CLK_MQS1_GATE>;
> + clock-names = "mclk";
> gpr = <&aonmix_ns_gpr>;
> + #sound-dai-cells = <0>;
> status = "disabled";
> };
>
> mqs2: mqs2 {
> compatible = "fsl,imx93-mqs";
> + clocks = <&clk IMX93_CLK_MQS2_GATE>;
> + clock-names = "mclk";
> gpr = <&wakeupmix_gpr>;
> + #sound-dai-cells = <0>;
> status = "disabled";
> };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=1
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 06/17] arm64: dts: imx93-14x14-evk: Add board muxes to select between FlexCAN1 and MQS1
2026-08-14 7:20 ` [PATCH 06/17] arm64: dts: imx93-14x14-evk: Add board muxes to select between FlexCAN1 and MQS1 Chancel Liu
@ 2026-08-14 7:31 ` sashiko-bot
0 siblings, 0 replies; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:31 UTC (permalink / raw)
To: Chancel Liu; +Cc: robh, Frank.Li, imx, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incomplete device tree wiring for board muxes. The newly added pinctrl mux states (`can1_fun`, `mqs1_fun`, `mqs1_amp_en`) are defined but never referenced by any consumer device node (such as `flexcan1`), rendering the board mux configuration functionally dead code.
--
--- Patch [6]: [PATCH 06/17] arm64: dts: imx93-14x14-evk: Add board muxes to select between FlexCAN1 and MQS1 ---
commit adc8546ef31dc705c01516aa1b8dc15eb6eaa575
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: imx93-14x14-evk: Add board muxes to select between FlexCAN1 and MQS1
This commit adds GPIO-controlled board muxes to resolve a pin conflict
between FlexCAN1 and MQS1 on the imx93-14x14-evk board. It defines the
mux controllers and their corresponding pinctrl states.
> diff --git a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
> index ec78c03f4788b..502237fab3324 100644
> --- a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
[ ... ]
> + pinctrl-gpiomux {
> + compatible = "pinctrl-multiplexer";
> +
> + can1_fun: can1-grp {
> + mux-states = <&can1_mqs1_mux 0>;
> + };
> +
> + mqs1_amp_en: mqs1-amp-en-grp {
> + mux-states = <&mqs1_amp_en_mux 1>;
> + };
> +
> + mqs1_fun: mqs1-grp {
> + mux-states = <&can1_mqs1_mux 1>;
> + };
> + };
[Severity: Medium]
Are these new pinctrl mux states missing references from their consumer device
nodes?
The can1_fun, mqs1_amp_en, and mqs1_fun states are defined here, but they
don't appear to be referenced by the flexcan1 or mqs1 device nodes.
For example, if the active flexcan1 device node doesn't include <&can1_fun>
in its pinctrl-0 list, won't this configuration remain unapplied and fail to
resolve the hardware routing?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=6
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 ` [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:31 ` sashiko-bot
2026-08-14 16:20 ` Frank Li
0 siblings, 1 reply; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:31 UTC (permalink / raw)
To: Chancel Liu; +Cc: Frank.Li, imx, robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Undocumented modification of the '&sai1' node's clock properties.
--
--- Patch [3]: [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1 ---
commit 2ae9b14f843efe8a48368cba7c61c4f11632f83b
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1
This patch adds the MQS1 pinctrl group and labels the conflicting sound card
and micfil devices for the imx91-11x11-evk device tree. This allows the shared
imx9-mqs overlay to disable these conflicting devices.
> diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
> index 4d1ada6a3942b..4a3dfafae3773 100644
> --- a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
[ ... ]
> @@ -511,10 +511,19 @@ &micfil {
> status = "okay";
> };
>
> +&mqs1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_fun>;
> +};
> +
> &sai1 {
> pinctrl-names = "default", "sleep";
> pinctrl-0 = <&pinctrl_sai1>;
> pinctrl-1 = <&pinctrl_sai1_sleep>;
> + clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
> + <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
> + <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
> + clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
[Severity: Medium]
The commit message mentions adding the MQS1 pinctrl group and labeling
conflicting devices, but doesn't mention modifying the &sai1 node's clock
properties. Is this change to the clocks and clock-names intentional for this
patch, or was it included by mistake?
If it is intended, could the commit message be updated to explain why the
pll8k clock is being added to the active SAI1 node here?
> assigned-clocks = <&clk IMX93_CLK_SAI1>;
> assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
> assigned-clock-rates = <12288000>;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=3
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 ` [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:33 ` sashiko-bot
2026-08-14 16:22 ` Frank Li
0 siblings, 1 reply; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:33 UTC (permalink / raw)
To: Chancel Liu; +Cc: conor+dt, imx, devicetree, Frank.Li, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The `&flexcan1` node is missing the `<&can1_fun>` pinctrl state to claim the board multiplexer, potentially leaving the physical pins disconnected from the CAN transceiver.
--
--- Patch [7]: [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1 ---
commit dcb616d828fd4526406432c88e7ade3c33414225
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1
This commit adds the MQS1 pinctrl group and labels conflicting devices
(BT SCO card and FlexCAN1) so they can be disabled by a shared overlay.
> diff --git a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
> index 502237fab3324..11bb7e52fbb1e 100644
> --- a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
[ ... ]
> @@ -282,7 +282,7 @@ ethphy2: ethernet-phy@2 {
> };
> };
>
> -&flexcan1 {
> +mqs1_conflict_dev: &flexcan1 {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_flexcan1>;
[Severity: Medium]
Is the &can1_fun pinctrl state missing from the pinctrl-0 list here?
If the MQS1 overlay is applied (setting the mux to state 1) and later
reverted, or if the hardware boots with the multiplexer GPIO high,
flexcan1 will become active but will fail to assert mux state 0.
Without the &can1_fun reference to claim the board multiplexer, the
physical pins may remain disconnected from the CAN transceiver, causing it
to silently fail to communicate on the bus.
> xceiver-supply = <®_can1_stby>;
> status = "okay";
> };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=7
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 05/17] arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 ` [PATCH 05/17] arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:33 ` sashiko-bot
0 siblings, 0 replies; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:33 UTC (permalink / raw)
To: Chancel Liu; +Cc: devicetree, Frank.Li, imx, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Undocumented Functional Change: The patch silently modifies the &sai1 node by adding clocks and clock-names (including pll8k).
- [Medium] Incomplete Conflict Handling: The sound-micfil audio card is not labeled as a conflicting device, leading to infinite probe deferrals when &micfil is disabled.
--
--- Patch [5]: [PATCH 05/17] arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices for MQS1 ---
commit cd0bb14467afd18f66a4e88a88eba385a4784c70
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices for MQS1
This commit adds the MQS1 pinctrl group and labels conflicting devices so
that an upcoming overlay can disable them. It also updates the clocks and
clock-names for the SAI1 interface.
> diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
> --- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
> @@ -105,7 +105,7 @@ cpu {
> };
> };
>
> -&micfil {
> +mqs1_conflict_dev: &micfil {
[Severity: Medium]
When the future overlay disables this device, what happens to the sound-micfil
audio card?
The sound-micfil node depends on the micfil device for its CPU DAI:
sound-micfil {
...
pri-dai-link {
...
cpu {
sound-dai = <&micfil>;
};
};
};
If sound-micfil isn't also labeled as a conflict and disabled by the overlay
alongside this node, will the ALSA SoC core continuously fail to find the CPU
DAI, leading to endless probe deferrals and kernel log spam?
> pinctrl-names = "default", "sleep";
> pinctrl-0 = <&pinctrl_pdm>, <&pdm_fun>;
[ ... ]
> @@ -127,6 +132,10 @@ &sai1 {
> pinctrl-names = "default", "sleep";
> pinctrl-0 = <&pinctrl_sai1>;
> pinctrl-1 = <&pinctrl_sai1_sleep>;
> + clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
> + <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
> + <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
> + clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
[Severity: Medium]
Could the commit message be updated to mention these changes to the SAI1 node?
The addition of the "pll8k" clock alters how the fsl_sai ALSA driver computes
audio rates at runtime, as the driver explicitly checks for this clock to
reparent clocks.
Since this changes the functional behavior of the existing SAI1 configuration,
should it be documented in the commit message or split into a separate patch?
> assigned-clocks = <&clk IMX93_CLK_SAI1>;
> assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=5
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 13/17] arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 ` [PATCH 13/17] arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:36 ` sashiko-bot
0 siblings, 0 replies; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:36 UTC (permalink / raw)
To: Chancel Liu; +Cc: devicetree, robh, Frank.Li, conor+dt, imx
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The commit silently modifies the `&sai1` node to add `pll8k` and `pll11k` clocks and their associated names, without any mention in the commit message. The commit message strictly claims to add the MQS1 pinmux and label conflicting devices for a future overlay.
--
--- Patch [13]: [PATCH 13/17] arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices for MQS1 ---
commit df407242391b2a2d45fd52f25207318251e36b7f
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices for MQS1
This commit adds the MQS1 pinctrl group and labels conflicting devices for
a shared imx9-mqs overlay.
> diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts b/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
> index aaa2608793bf6..1013bbfc08b31 100644
> --- a/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts
[ ... ]
> @@ -592,6 +597,11 @@ &pcie0_port0 {
> };
>
> &sai1 {
> + clocks = <&scmi_clk IMX95_CLK_BUSAON>, <&dummy>,
> + <&scmi_clk IMX95_CLK_SAI1>, <&dummy>,
> + <&dummy>, <&scmi_clk IMX95_CLK_AUDIOPLL1>,
> + <&scmi_clk IMX95_CLK_AUDIOPLL2>;
> + clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
[Severity: Medium]
This isn't a bug, but could the commit message be updated to mention these
additions to &sai1?
The commit message strictly claims to add the MQS1 pinmux and label
conflicting devices for a future overlay. It does not mention adding the
pll8k and pll11k clocks and their associated names to the &sai1 node.
Does this omission mask a change in the dynamic clock switching behavior
of the fsl_sai driver?
Should these clock additions be split into a separate patch, or documented
in the commit message for this one?
> assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>,
> <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>,
> <&scmi_clk IMX95_CLK_AUDIOPLL1>,
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=13
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 17/17] arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9 platforms
2026-08-14 7:20 ` [PATCH 17/17] arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9 platforms Chancel Liu
@ 2026-08-14 7:40 ` sashiko-bot
0 siblings, 0 replies; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:40 UTC (permalink / raw)
To: Chancel Liu; +Cc: Frank.Li, conor+dt, imx, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The MQS overlay orphans the `sound-micfil` ASoC card, leading to an indefinite deferred probe.
--
--- Patch [17]: [PATCH 17/17] arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9 platforms ---
commit 3fb4d43fd09e2139234f5b149b073a22039d004c
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9 platforms
This commit adds a common DT overlay to support MQS sound cards on i.MX9
platforms. It routes SAI1 to MQS1 and disables conflicting devices and sound
cards.
> diff --git a/arch/arm64/boot/dts/freescale/imx9-mqs.dtso b/arch/arm64/boot/dts/freescale/imx9-mqs.dtso
> new file mode 100644
> index 0000000000000..9ac6d58eacbb9
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx9-mqs.dtso
[ ... ]
> +&mqs1_conflict_card {
> + status = "disabled";
> +};
> +
> +&mqs1_conflict_dev {
> + status = "disabled";
> +};
[Severity: Medium]
When the MQS overlay is applied on boards like imx93-11x11-evk.dts, this
disables the conflicting device (which aliases to &micfil), but does it leave
its consumer sound-micfil active?
Looking at arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts:
sound-micfil {
compatible = "fsl,imx-audio-card";
model = "micfil-audio";
pri-dai-link {
link-name = "micfil hifi";
format = "i2s";
cpu {
sound-dai = <&micfil>;
};
};
};
If sound-micfil is not explicitly disabled by an alias here (such as
mqs1_conflict_card2), will the audio subsystem repeatedly attempt to probe it
since its CPU component (&micfil) is missing, resulting in an endless deferred
probe loop?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=17
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 16/17] arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:20 ` [PATCH 16/17] arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
@ 2026-08-14 7:42 ` sashiko-bot
0 siblings, 0 replies; 29+ messages in thread
From: sashiko-bot @ 2026-08-14 7:42 UTC (permalink / raw)
To: Chancel Liu; +Cc: imx, conor+dt, Frank.Li, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The patch silently modifies the `&sai1` node to append SoC-level clock definitions (`pll8k` and `pll11k`) in a board-specific `.dts` file, violating Devicetree abstractions and the commit message's stated scope.
--
--- Patch [16]: [PATCH 16/17] arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for MQS1 ---
commit 8ad36d874036617823df79dfb507cb8569fd6f0b
Author: Chancel Liu <chancel.liu@nxp.com>
arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for MQS1
This commit adds the MQS1 pinctrl group and labels the conflicting device and
sound card so the shared imx9-mqs overlay can disable them.
> diff --git a/arch/arm64/boot/dts/freescale/imx952-evk.dts b/arch/arm64/boot/dts/freescale/imx952-evk.dts
> index e9d735dc2a51b..522c6cb9abf28 100644
> --- a/arch/arm64/boot/dts/freescale/imx952-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx952-evk.dts
[ ... ]
> @@ -519,11 +519,21 @@ &micfil {
> status = "okay";
> };
>
> +&mqs1 {
> + pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_enable>;
> + pinctrl-names = "default";
> +};
> +
> &mu7 {
> status = "okay";
> };
>
> &sai1 {
> + clocks = <&scmi_clk IMX952_CLK_BUSAON>, <&clk_dummy>,
> + <&scmi_clk IMX952_CLK_SAI1>, <&clk_dummy>,
> + <&clk_dummy>, <&scmi_clk IMX952_CLK_AUDIOPLL1>,
> + <&scmi_clk IMX952_CLK_AUDIOPLL2>;
> + clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
[Severity: Medium]
Is it intentional to place these SoC-level clock definitions in the
board-specific .dts file rather than the base SoC .dtsi file?
The added clocks (IMX952_CLK_AUDIOPLL1 and IMX952_CLK_AUDIOPLL2) appear to be
internal SoC clocks. Wiring these to the sai1 peripheral seems like an
SoC-level integration detail, and placing it here might force other boards
using sai1 to duplicate this wiring.
Additionally, this change is not mentioned in the commit message. Could the
commit message be updated to document this, or should this modification be
split into a separate patch?
> assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
> <&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
> <&scmi_clk IMX952_CLK_AUDIOPLL1>,
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=16
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:31 ` sashiko-bot
@ 2026-08-14 16:20 ` Frank Li
0 siblings, 0 replies; 29+ messages in thread
From: Frank Li @ 2026-08-14 16:20 UTC (permalink / raw)
To: sashiko-reviews; +Cc: Chancel Liu, Frank.Li, imx, robh, conor+dt, devicetree
On Fri, Aug 14, 2026 at 07:31:37AM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] Undocumented modification of the '&sai1' node's clock properties.
> --
>
> --- Patch [3]: [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1 ---
> commit 2ae9b14f843efe8a48368cba7c61c4f11632f83b
> Author: Chancel Liu <chancel.liu@nxp.com>
> arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1
>
> This patch adds the MQS1 pinctrl group and labels the conflicting sound card
> and micfil devices for the imx91-11x11-evk device tree. This allows the shared
> imx9-mqs overlay to disable these conflicting devices.
>
> > diff --git a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
> > index 4d1ada6a3942b..4a3dfafae3773 100644
> > --- a/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx91-11x11-evk.dts
>
> [ ... ]
>
> > @@ -511,10 +511,19 @@ &micfil {
> > status = "okay";
> > };
> >
> > +&mqs1 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_mqs1>, <&mqs1_fun>;
> > +};
> > +
> > &sai1 {
> > pinctrl-names = "default", "sleep";
> > pinctrl-0 = <&pinctrl_sai1>;
> > pinctrl-1 = <&pinctrl_sai1_sleep>;
> > + clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
> > + <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
> > + <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
> > + clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
>
> [Severity: Medium]
> The commit message mentions adding the MQS1 pinctrl group and labeling
> conflicting devices, but doesn't mention modifying the &sai1 node's clock
> properties. Is this change to the clocks and clock-names intentional for this
> patch, or was it included by mistake?
>
> If it is intended, could the commit message be updated to explain why the
> pll8k clock is being added to the active SAI1 node here?
Make sense, please update commit message
Frank
>
> > assigned-clocks = <&clk IMX93_CLK_SAI1>;
> > assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
> > assigned-clock-rates = <12288000>;
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=3
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1
2026-08-14 7:33 ` sashiko-bot
@ 2026-08-14 16:22 ` Frank Li
0 siblings, 0 replies; 29+ messages in thread
From: Frank Li @ 2026-08-14 16:22 UTC (permalink / raw)
To: sashiko-reviews; +Cc: Chancel Liu, conor+dt, imx, devicetree, Frank.Li, robh
On Fri, Aug 14, 2026 at 07:33:12AM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] The `&flexcan1` node is missing the `<&can1_fun>` pinctrl state to claim the board multiplexer, potentially leaving the physical pins disconnected from the CAN transceiver.
> --
>
> --- Patch [7]: [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1 ---
> commit dcb616d828fd4526406432c88e7ade3c33414225
> Author: Chancel Liu <chancel.liu@nxp.com>
>
> arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1
>
> This commit adds the MQS1 pinctrl group and labels conflicting devices
> (BT SCO card and FlexCAN1) so they can be disabled by a shared overlay.
>
> > diff --git a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
> > index 502237fab3324..11bb7e52fbb1e 100644
> > --- a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
>
> [ ... ]
>
> > @@ -282,7 +282,7 @@ ethphy2: ethernet-phy@2 {
> > };
> > };
> >
> > -&flexcan1 {
> > +mqs1_conflict_dev: &flexcan1 {
> > pinctrl-names = "default";
> > pinctrl-0 = <&pinctrl_flexcan1>;
>
> [Severity: Medium]
> Is the &can1_fun pinctrl state missing from the pinctrl-0 list here?
>
> If the MQS1 overlay is applied (setting the mux to state 1) and later
> reverted, or if the hardware boots with the multiplexer GPIO high,
> flexcan1 will become active but will fail to assert mux state 0.
>
> Without the &can1_fun reference to claim the board multiplexer, the
> physical pins may remain disconnected from the CAN transceiver, causing it
> to silently fail to communicate on the bus.
Make sense.
Frank
>
> > xceiver-supply = <®_can1_stby>;
> > status = "okay";
> > };
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/20260814072022.4064009-1-chancel.liu@oss.nxp.com?part=7
^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2026-08-14 16:22 UTC | newest]
Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-14 7:20 [PATCH 00/17] arm64: dts: Add MQS1 sound card support for i.MX9 EVK platforms Chancel Liu
2026-08-14 7:20 ` [PATCH 01/17] arm64: dts: imx91_93_common: Add clock and sound-dai-cells properties for MQS Chancel Liu
2026-08-14 7:30 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 02/17] arm64: dts: imx91-11x11-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
2026-08-14 7:20 ` [PATCH 03/17] arm64: dts: imx91-11x11-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
2026-08-14 7:31 ` sashiko-bot
2026-08-14 16:20 ` Frank Li
2026-08-14 7:20 ` [PATCH 04/17] arm64: dts: imx93-11x11-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
2026-08-14 7:20 ` [PATCH 05/17] arm64: dts: imx93-11x11-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
2026-08-14 7:33 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 06/17] arm64: dts: imx93-14x14-evk: Add board muxes to select between FlexCAN1 and MQS1 Chancel Liu
2026-08-14 7:31 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 07/17] arm64: dts: imx93-14x14-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
2026-08-14 7:33 ` sashiko-bot
2026-08-14 16:22 ` Frank Li
2026-08-14 7:20 ` [PATCH 08/17] arm64: dts: imx94: Add clock and sound-dai-cells properties " Chancel Liu
2026-08-14 7:20 ` [PATCH 09/17] arm64: dts: imx943-evk: Add board muxes to select between CAN1/PDM and MQS1/MIC Chancel Liu
2026-08-14 7:20 ` [PATCH 10/17] arm64: dts: imx943-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
2026-08-14 7:20 ` [PATCH 11/17] arm64: dts: imx95: Add clock and sound-dai-cells properties " Chancel Liu
2026-08-14 7:30 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 12/17] arm64: dts: imx95-15x15-evk: Add board muxes to select between PDM and MQS1 Chancel Liu
2026-08-14 7:20 ` [PATCH 13/17] arm64: dts: imx95-15x15-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
2026-08-14 7:36 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 14/17] arm64: dts: imx952: Add AONMIX MQS device node Chancel Liu
2026-08-14 7:20 ` [PATCH 15/17] arm64: dts: imx952-evk: Add board muxes to select between CAN1/PDM Chancel Liu
2026-08-14 7:20 ` [PATCH 16/17] arm64: dts: imx952-evk: Add pinmux and mark conflicting devices for MQS1 Chancel Liu
2026-08-14 7:42 ` sashiko-bot
2026-08-14 7:20 ` [PATCH 17/17] arm64: dts: fsl: Add DT overlay to build MQS1 sound cards on i.MX9 platforms Chancel Liu
2026-08-14 7:40 ` sashiko-bot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.