From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Add support for AONMIX MQS (i.e. MQS1).
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
.../boot/dts/freescale/imx95-15x15-frdm.dts | 73 +++++++++++++++++++
arch/arm64/boot/dts/freescale/imx95.dtsi | 5 ++
2 files changed, 78 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
index ca1c4966c867..0f43e3be7058 100644
--- a/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
@@ -243,6 +243,12 @@ codec {
};
};
+ sound-mqs {
+ compatible = "audio-graph-card2";
+ links = <&sai1_port1>;
+ label = "mqs-audio";
+ };
+
usdhc3_pwrseq: usdhc3-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&pcal6524 8 GPIO_ACTIVE_LOW>;
@@ -473,6 +479,21 @@ &mu7 {
status = "okay";
};
+&mqs1 {
+ clocks = <&scmi_clk IMX95_CLK_SAI1>;
+ clock-names = "mclk";
+ pinctrl-0 = <&pinctrl_mqs1>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ mqs1_port: port {
+ mqs1_ep: endpoint {
+ dai-format = "left_j";
+ remote-endpoint = <&sai1_port1_ep>;
+ };
+ };
+};
+
&netc_blk_ctrl {
status = "okay";
};
@@ -534,6 +555,51 @@ &pcie0 {
status = "okay";
};
+&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>,
+ <&scmi_clk IMX95_CLK_AUDIOPLL2>,
+ <&scmi_clk IMX95_CLK_SAI1>;
+ assigned-clock-parents = <0>, <0>, <0>, <0>, <&scmi_clk IMX95_CLK_AUDIOPLL1>;
+ assigned-clock-rates = <3932160000>, <3612672000>,
+ <393216000>, <361267200>,
+ <24576000>;
+ fsl,sai-mclk-direction-output;
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* leave unconnected - no RX in the context of MQS */
+ port@0 {
+ reg = <0>;
+
+ endpoint {
+ };
+ };
+
+ sai1_port1: port@1 {
+ reg = <1>;
+ mclk-fs = <512>;
+
+ sai1_port1_ep: endpoint {
+ dai-format = "left_j";
+ system-clock-direction-out;
+ bitclock-master;
+ frame-master;
+ remote-endpoint = <&mqs1_ep>;
+ };
+ };
+ };
+};
+
&scmi_iomuxc {
pinctrl_emdio: emdiogrp {
fsl,pins = <
@@ -618,6 +684,13 @@ IMX95_PAD_GPIO_IO31__LPI2C4_SCL 0x40000b9e
>;
};
+ pinctrl_mqs1: mqs1grp {
+ fsl,pins = <
+ IMX95_PAD_SAI1_TXFS__AONMIX_TOP_MQS1_LEFT 0x31e
+ IMX95_PAD_SAI1_RXD0__AONMIX_TOP_MQS1_RIGHT 0x31e
+ >;
+ };
+
pinctrl_pcal6524: pcal6524grp {
fsl,pins = <
IMX95_PAD_GPIO_IO34__GPIO5_IO_BIT14 0x31e
diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
index 55e2da094c88..0c55861d673c 100644
--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
@@ -391,6 +391,11 @@ scmi_misc: protocol@84 {
};
};
+ mqs1: mqs-1 {
+ compatible = "fsl,imx95-aonmix-mqs";
+ status = "disabled";
+ };
+
pmu {
compatible = "arm,cortex-a55-pmu";
interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
--
2.43.0
On Mon, Jan 26, 2026 at 06:55:37AM -0800, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> Add support for AONMIX MQS (i.e. MQS1).
>
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> ---
> .../boot/dts/freescale/imx95-15x15-frdm.dts | 73 +++++++++++++++++++
> arch/arm64/boot/dts/freescale/imx95.dtsi | 5 ++
Chip's dtsi and board dts should be two patches.
Frank
> 2 files changed, 78 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
> index ca1c4966c867..0f43e3be7058 100644
> --- a/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
> +++ b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
> @@ -243,6 +243,12 @@ codec {
> };
> };
>
> + sound-mqs {
> + compatible = "audio-graph-card2";
> + links = <&sai1_port1>;
> + label = "mqs-audio";
> + };
> +
> usdhc3_pwrseq: usdhc3-pwrseq {
> compatible = "mmc-pwrseq-simple";
> reset-gpios = <&pcal6524 8 GPIO_ACTIVE_LOW>;
> @@ -473,6 +479,21 @@ &mu7 {
> status = "okay";
> };
>
> +&mqs1 {
> + clocks = <&scmi_clk IMX95_CLK_SAI1>;
> + clock-names = "mclk";
> + pinctrl-0 = <&pinctrl_mqs1>;
> + pinctrl-names = "default";
> + status = "okay";
> +
> + mqs1_port: port {
> + mqs1_ep: endpoint {
> + dai-format = "left_j";
> + remote-endpoint = <&sai1_port1_ep>;
> + };
> + };
> +};
> +
> &netc_blk_ctrl {
> status = "okay";
> };
> @@ -534,6 +555,51 @@ &pcie0 {
> status = "okay";
> };
>
> +&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>,
> + <&scmi_clk IMX95_CLK_AUDIOPLL2>,
> + <&scmi_clk IMX95_CLK_SAI1>;
> + assigned-clock-parents = <0>, <0>, <0>, <0>, <&scmi_clk IMX95_CLK_AUDIOPLL1>;
> + assigned-clock-rates = <3932160000>, <3612672000>,
> + <393216000>, <361267200>,
> + <24576000>;
> + fsl,sai-mclk-direction-output;
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /* leave unconnected - no RX in the context of MQS */
> + port@0 {
> + reg = <0>;
> +
> + endpoint {
> + };
> + };
> +
> + sai1_port1: port@1 {
> + reg = <1>;
> + mclk-fs = <512>;
> +
> + sai1_port1_ep: endpoint {
> + dai-format = "left_j";
> + system-clock-direction-out;
> + bitclock-master;
> + frame-master;
> + remote-endpoint = <&mqs1_ep>;
> + };
> + };
> + };
> +};
> +
> &scmi_iomuxc {
> pinctrl_emdio: emdiogrp {
> fsl,pins = <
> @@ -618,6 +684,13 @@ IMX95_PAD_GPIO_IO31__LPI2C4_SCL 0x40000b9e
> >;
> };
>
> + pinctrl_mqs1: mqs1grp {
> + fsl,pins = <
> + IMX95_PAD_SAI1_TXFS__AONMIX_TOP_MQS1_LEFT 0x31e
> + IMX95_PAD_SAI1_RXD0__AONMIX_TOP_MQS1_RIGHT 0x31e
> + >;
> + };
> +
> pinctrl_pcal6524: pcal6524grp {
> fsl,pins = <
> IMX95_PAD_GPIO_IO34__GPIO5_IO_BIT14 0x31e
> diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
> index 55e2da094c88..0c55861d673c 100644
> --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
> @@ -391,6 +391,11 @@ scmi_misc: protocol@84 {
> };
> };
>
> + mqs1: mqs-1 {
> + compatible = "fsl,imx95-aonmix-mqs";
> + status = "disabled";
> + };
> +
> pmu {
> compatible = "arm,cortex-a55-pmu";
> interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
> --
> 2.43.0
>
On Mon, Jan 26, 2026 at 4:57 PM Laurentiu Mihalcea <laurentiumihalcea111@gmail.com> wrote: > > From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> > > Add support for AONMIX MQS (i.e. MQS1). > > Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
© 2016 - 2026 Red Hat, Inc.