.../boot/dts/freescale/imx93-11x11-frdm.dts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+)
Enable Medium Quality Sound (MQS) output on the i.MX93 FRDM 11x11 board
by adding sound card description and enabling sai1 and mqs1 dts nodes,
together with necessary clocks and pinmux.
This supports audio playback via SAI1 DAI which is connected to the MQS1
block.
Co-developed-by: Tom Zheng <haidong.zheng@nxp.com>
Signed-off-by: Tom Zheng <haidong.zheng@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
Changes since v1:
- small typos in the commit message
- added Tom with C-d-B and S-o-B tags.
.../boot/dts/freescale/imx93-11x11-frdm.dts | 36 +++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
index 066c5139842b..a4784c993aeb 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
@@ -81,6 +81,14 @@ vdevbuffer: vdevbuffer@a4020000 {
no-map;
};
};
+
+ sound-mqs {
+ compatible = "fsl,imx6sx-sdb-mqs",
+ "fsl,imx-audio-mqs";
+ model = "mqs-audio";
+ audio-cpu = <&sai1>;
+ audio-codec = <&mqs1>;
+ };
};
&adc1 {
@@ -315,6 +323,27 @@ &lpuart1 { /* console */
status = "okay";
};
+&mqs1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mqs1>;
+ clocks = <&clk IMX93_CLK_MQS1_GATE>;
+ clock-names = "mclk";
+ status = "okay";
+};
+
+&sai1 {
+ #sound-dai-cells = <0>;
+ 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 = <24576000>;
+ fsl,sai-mclk-direction-output;
+ status = "okay";
+};
+
&usbotg1 {
adp-disable;
disable-over-current;
@@ -479,6 +508,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.45.2
On Mon, Jan 12, 2026 at 10:53 AM Daniel Baluta <daniel.baluta@nxp.com> wrote:
> +
> + sound-mqs {
> + compatible = "fsl,imx6sx-sdb-mqs",
> + "fsl,imx-audio-mqs";
Wouldn't it make more sense to use compatible = "fsl,imx-audio-mqs" instead?
On Mon, Jan 12, 2026 at 4:38 PM Fabio Estevam <festevam@gmail.com> wrote:
>
> On Mon, Jan 12, 2026 at 10:53 AM Daniel Baluta <daniel.baluta@nxp.com> wrote:
>
> > +
> > + sound-mqs {
> > + compatible = "fsl,imx6sx-sdb-mqs",
> > + "fsl,imx-audio-mqs";
>
> Wouldn't it make more sense to use compatible = "fsl,imx-audio-mqs" instead?
Yes, this is a good catch. Will fix it in v3.
Discussion for future patches:
1) is it common practice to always have a more specific compatible
even if not used now.
e.g Use
compatible = "fsl,imx93-audio-frdm-mqs", "fsl,imx-audio-mqs";?
2) The current compatible:
compatible = "fsl,imx6sx-sdb-mqs",
"fsl,imx-audio-mqs";
is already used for imx91-11x11-frdm.dts so I guess we should keep it like this
as this is already ABI right?
© 2016 - 2026 Red Hat, Inc.