[PATCH 1/4] arm64: dts: imx952: Add audio device nodes

Shengjiu Wang posted 4 patches 3 weeks, 5 days ago
There is a newer version of this series
[PATCH 1/4] arm64: dts: imx952: Add audio device nodes
Posted by Shengjiu Wang 3 weeks, 5 days ago
Add audio device nodes, include SAI, MICFIL, ASRC, Audio Mixer.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx952.dtsi | 199 ++++++++++++++++++++++
 1 file changed, 199 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx952.dtsi b/arch/arm64/boot/dts/freescale/imx952.dtsi
index 0f86b5626cdd..5787c12e788f 100644
--- a/arch/arm64/boot/dts/freescale/imx952.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx952.dtsi
@@ -823,6 +823,156 @@ usdhc3: mmc@42c40000 {
 			};
 		};
 
+		aips5: bus@43000000 {
+			compatible = "fsl,aips-bus", "simple-bus";
+			reg = <0 0x43000000 0 0x800000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x43000000 0x0 0x43000000 0x800000>;
+
+			asrc1: asrc@43000000 {
+				compatible = "fsl,imx952-asrc";
+				reg = <0x43000000 0x10000>;
+				interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+					 <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+					 <&scmi_clk IMX952_CLK_ASRC1>,
+					 <&scmi_clk IMX952_CLK_ASRC2>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>;
+				clock-names = "mem", "ipg",
+					      "asrck_0", "asrck_1", "asrck_2", "asrck_3",
+					      "asrck_4", "asrck_5", "asrck_6", "asrck_7",
+					      "asrck_8", "asrck_9", "asrck_a", "asrck_b",
+					      "asrck_c", "asrck_d", "asrck_e", "asrck_f",
+					      "spba";
+				dmas = <&edma2 97 0 0>, <&edma2 98 0 0>, <&edma2 99 0 0>,
+				       <&edma2 100 0 1>, <&edma2 101 0 1>, <&edma2 102 0 1>;
+				dma-names = "rxa", "rxb", "rxc",
+					    "txa", "txb", "txc";
+				#sound-dai-cells = <0>;
+				fsl,asrc-rate  = <8000>;
+				fsl,asrc-width = <16>;
+				status = "disabled";
+			};
+
+			asrc2: asrc@430f0000 {
+				compatible = "fsl,imx952-asrc";
+				reg = <0x430f0000 0x10000>;
+				interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+					 <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+					 <&scmi_clk IMX952_CLK_ASRC1>,
+					 <&scmi_clk IMX952_CLK_ASRC2>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>,
+					 <&clk_dummy>;
+				clock-names = "mem", "ipg",
+					      "asrck_0", "asrck_1", "asrck_2", "asrck_3",
+					      "asrck_4", "asrck_5", "asrck_6", "asrck_7",
+					      "asrck_8", "asrck_9", "asrck_a", "asrck_b",
+					      "asrck_c", "asrck_d", "asrck_e", "asrck_f",
+					      "spba";
+				dmas = <&edma2 103 0 0>, <&edma2 104 0 0>, <&edma2 105 0 0>,
+				       <&edma2 106 0 1>, <&edma2 107 0 1>, <&edma2 108 0 1>;
+				dma-names = "rxa", "rxb", "rxc",
+					    "txa", "txb", "txc";
+				#sound-dai-cells = <0>;
+				fsl,asrc-rate  = <8000>;
+				fsl,asrc-width = <16>;
+				status = "disabled";
+			};
+
+			amix: amix@431f0000 {
+				compatible = "fsl,imx952-audmix";
+				reg = <0x431f0000 0x10000>;
+				clocks = <&scmi_clk IMX952_CLK_AUDMIX1>;
+				clock-names = "ipg";
+				status = "disabled";
+			};
+
+			sai3: sai@433e0000 {
+				compatible = "fsl,imx952-sai", "fsl,imx95-sai";
+				reg = <0x433e0000 0x10000>;
+				interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>, <&clk_dummy>,
+					 <&scmi_clk IMX952_CLK_SAI3>, <&clk_dummy>,
+					 <&clk_dummy>;
+				clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+				dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 0>;
+				dma-names = "rx", "tx";
+				#sound-dai-cells = <0>;
+				status = "disabled";
+			};
+
+			sai4: sai@433f0000 {
+				compatible = "fsl,imx952-sai", "fsl,imx95-sai";
+				reg = <0x433f0000 0x10000>;
+				interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>, <&clk_dummy>,
+					 <&scmi_clk IMX952_CLK_SAI4>, <&clk_dummy>,
+					 <&clk_dummy>;
+				clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+				dmas = <&edma2 68 0 FSL_EDMA_RX>, <&edma2 67 0 0>;
+				dma-names = "rx", "tx";
+				#sound-dai-cells = <0>;
+				status = "disabled";
+			};
+
+			sai5: sai@43400000 {
+				compatible = "fsl,imx952-sai", "fsl,imx95-sai";
+				reg = <0x43400000 0x10000>;
+				interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>, <&clk_dummy>,
+					 <&scmi_clk IMX952_CLK_SAI5>, <&clk_dummy>,
+					 <&clk_dummy>;
+				clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+				dmas = <&edma2 70 0 FSL_EDMA_RX>, <&edma2 69 0 0>;
+				dma-names = "rx", "tx";
+				#sound-dai-cells = <0>;
+				status = "disabled";
+			};
+
+			sai6: sai@43410000 {
+				compatible = "fsl,imx952-sai", "fsl,imx95-sai";
+				reg = <0x43410000 0x10000>;
+				interrupts = <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>, <&clk_dummy>,
+					 <&scmi_clk IMX952_CLK_SAI3>, <&clk_dummy>,
+					 <&clk_dummy>;
+				clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+				dmas = <&edma2 96 0 FSL_EDMA_RX>, <&edma2 95 0 0>;
+				dma-names = "rx", "tx";
+				#sound-dai-cells = <0>;
+				status = "disabled";
+			};
+		};
+
 		gpio2: gpio@43810000 {
 			compatible = "fsl,imx95-gpio", "fsl,imx8ulp-gpio";
 			reg = <0x0 0x43810000 0x0 0x1000>;
@@ -1062,6 +1212,40 @@ flexcan1: can@443a0000 {
 				status = "disabled";
 			};
 
+			sai1: sai@443b0000 {
+				compatible = "fsl,imx952-sai", "fsl,imx95-sai";
+				reg = <0x443b0000 0x10000>;
+				interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&scmi_clk IMX952_CLK_BUSAON>, <&clk_dummy>,
+					 <&scmi_clk IMX952_CLK_SAI1>, <&clk_dummy>,
+					 <&clk_dummy>;
+				clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+				dmas = <&edma1 25 0 FSL_EDMA_RX>, <&edma1 24 0 0>;
+				dma-names = "rx", "tx";
+				#sound-dai-cells = <0>;
+				status = "disabled";
+			};
+
+			micfil: micfil@44520000 {
+				compatible = "fsl,imx943-micfil";
+				reg = <0x44520000 0x10000>;
+				interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+					     <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&scmi_clk IMX952_CLK_BUSAON>,
+					 <&scmi_clk IMX952_CLK_PDM>,
+					 <&scmi_clk IMX952_CLK_AUDIOPLL1>,
+					 <&scmi_clk IMX952_CLK_AUDIOPLL2>,
+					 <&clk_dummy>;
+				clock-names = "ipg_clk", "ipg_clk_app",
+					      "pll8k", "pll11k", "clkext3";
+				dmas = <&edma1 6 0 5>;
+				dma-names = "rx";
+				#sound-dai-cells = <0>;
+				status = "disabled";
+			};
+
 			adc1: adc@44530000 {
 				compatible = "nxp,imx93-adc";
 				reg = <0x44530000 0x10000>;
@@ -1281,5 +1465,20 @@ usbmisc2: usbmisc@4c200200 {
 			reg = <0x0 0x4c200200 0x0 0x200>,
 			      <0x0 0x4c010014 0x0 0x4>;
 		};
+
+		sai2: sai@4c880000 {
+			compatible = "fsl,imx952-sai", "fsl,imx95-sai";
+			reg = <0x0 0x4c880000 0x0 0x10000>;
+			interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&scmi_clk IMX952_CLK_BUSNETCMIX>, <&clk_dummy>,
+				 <&scmi_clk IMX952_CLK_SAI2>, <&clk_dummy>,
+				 <&clk_dummy>;
+			clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+			dmas = <&edma2 59 0 FSL_EDMA_RX>, <&edma2 58 0 0>;
+			dma-names = "rx", "tx";
+			#sound-dai-cells = <0>;
+			power-domains = <&scmi_devpd IMX952_PD_NETC>;
+			status = "disabled";
+		};
 	};
 };
-- 
2.34.1
Re: [PATCH 1/4] arm64: dts: imx952: Add audio device nodes
Posted by Daniel Baluta 3 weeks, 5 days ago
On 3/12/26 05:49, Shengjiu Wang wrote:
> Add audio device nodes, include SAI, MICFIL, ASRC, Audio Mixer.
>
> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx952.dtsi | 199 ++++++++++++++++++++++
>  1 file changed, 199 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx952.dtsi b/arch/arm64/boot/dts/freescale/imx952.dtsi
> index 0f86b5626cdd..5787c12e788f 100644
> --- a/arch/arm64/boot/dts/freescale/imx952.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx952.dtsi
> @@ -823,6 +823,156 @@ usdhc3: mmc@42c40000 {
>  			};
>  		};
>  
> +		aips5: bus@43000000 {
> +			compatible = "fsl,aips-bus", "simple-bus";
> +			reg = <0 0x43000000 0 0x800000>;
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			ranges = <0x43000000 0x0 0x43000000 0x800000>;
> +
> +			asrc1: asrc@43000000 {
> +				compatible = "fsl,imx952-asrc";
> +				reg = <0x43000000 0x10000>;
> +				interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
> +					 <&scmi_clk IMX952_CLK_BUSWAKEUP>,
> +					 <&scmi_clk IMX952_CLK_ASRC1>,
> +					 <&scmi_clk IMX952_CLK_ASRC2>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>,
> +					 <&clk_dummy>;
> +				clock-names = "mem", "ipg",
> +					      "asrck_0", "asrck_1", "asrck_2", "asrck_3",
> +					      "asrck_4", "asrck_5", "asrck_6", "asrck_7",
> +					      "asrck_8", "asrck_9", "asrck_a", "asrck_b",
> +					      "asrck_c", "asrck_d", "asrck_e", "asrck_f",
> +					      "spba";
> +				dmas = <&edma2 97 0 0>, <&edma2 98 0 0>, <&edma2 99 0 0>,
> +				       <&edma2 100 0 1>, <&edma2 101 0 1>, <&edma2 102 0 1>;

For consistency we should use symbolic macros for directions like you did below.
Use FSL_EDMA_RX for rx direction and also introduce FSL_EDMA_TX for tx direction.


> +				dma-names = "rxa", "rxb", "rxc",
> +					    "txa", "txb", "txc";
> +				#sound-dai-cells = <0>;
> +				fsl,asrc-rate  = <8000>;
> +				fsl,asrc-width = <16>;
> +				status = "disabled";
> +			};


[...]

> +			sai3: sai@433e0000 {
> +				compatible = "fsl,imx952-sai", "fsl,imx95-sai";
> +				reg = <0x433e0000 0x10000>;
> +				interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>, <&clk_dummy>,
> +					 <&scmi_clk IMX952_CLK_SAI3>, <&clk_dummy>,
> +					 <&clk_dummy>;
> +				clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
> +				dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 0>;
As I said we should introduce FSL_EDMA_TX and this will read as:

dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 FSL_EDMA_TX>;

Otherwise, looks good to me.
Re: [PATCH 1/4] arm64: dts: imx952: Add audio device nodes
Posted by Shengjiu Wang 3 weeks, 5 days ago
On Thu, Mar 12, 2026 at 2:40 PM Daniel Baluta <daniel.baluta@oss.nxp.com> wrote:
>
> On 3/12/26 05:49, Shengjiu Wang wrote:
> > Add audio device nodes, include SAI, MICFIL, ASRC, Audio Mixer.
> >
> > Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
> > ---
> >  arch/arm64/boot/dts/freescale/imx952.dtsi | 199 ++++++++++++++++++++++
> >  1 file changed, 199 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx952.dtsi b/arch/arm64/boot/dts/freescale/imx952.dtsi
> > index 0f86b5626cdd..5787c12e788f 100644
> > --- a/arch/arm64/boot/dts/freescale/imx952.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx952.dtsi
> > @@ -823,6 +823,156 @@ usdhc3: mmc@42c40000 {
> >                       };
> >               };
> >
> > +             aips5: bus@43000000 {
> > +                     compatible = "fsl,aips-bus", "simple-bus";
> > +                     reg = <0 0x43000000 0 0x800000>;
> > +                     #address-cells = <1>;
> > +                     #size-cells = <1>;
> > +                     ranges = <0x43000000 0x0 0x43000000 0x800000>;
> > +
> > +                     asrc1: asrc@43000000 {
> > +                             compatible = "fsl,imx952-asrc";
> > +                             reg = <0x43000000 0x10000>;
> > +                             interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
> > +                             clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
> > +                                      <&scmi_clk IMX952_CLK_BUSWAKEUP>,
> > +                                      <&scmi_clk IMX952_CLK_ASRC1>,
> > +                                      <&scmi_clk IMX952_CLK_ASRC2>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>,
> > +                                      <&clk_dummy>;
> > +                             clock-names = "mem", "ipg",
> > +                                           "asrck_0", "asrck_1", "asrck_2", "asrck_3",
> > +                                           "asrck_4", "asrck_5", "asrck_6", "asrck_7",
> > +                                           "asrck_8", "asrck_9", "asrck_a", "asrck_b",
> > +                                           "asrck_c", "asrck_d", "asrck_e", "asrck_f",
> > +                                           "spba";
> > +                             dmas = <&edma2 97 0 0>, <&edma2 98 0 0>, <&edma2 99 0 0>,
> > +                                    <&edma2 100 0 1>, <&edma2 101 0 1>, <&edma2 102 0 1>;
>
> For consistency we should use symbolic macros for directions like you did below.
> Use FSL_EDMA_RX for rx direction and also introduce FSL_EDMA_TX for tx direction.

Yes, should use FSL_EDMA_RX.

But introduce FSL_EDMA_TX, it should be zero,  FSL_EDMA_TX = 0.
is it necessary to add it in include/dt-bindings/dma/fsl-edma.h?

Best regards
Shengjiu Wang

>
>
> > +                             dma-names = "rxa", "rxb", "rxc",
> > +                                         "txa", "txb", "txc";
> > +                             #sound-dai-cells = <0>;
> > +                             fsl,asrc-rate  = <8000>;
> > +                             fsl,asrc-width = <16>;
> > +                             status = "disabled";
> > +                     };
>
>
> [...]
>
> > +                     sai3: sai@433e0000 {
> > +                             compatible = "fsl,imx952-sai", "fsl,imx95-sai";
> > +                             reg = <0x433e0000 0x10000>;
> > +                             interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
> > +                             clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>, <&clk_dummy>,
> > +                                      <&scmi_clk IMX952_CLK_SAI3>, <&clk_dummy>,
> > +                                      <&clk_dummy>;
> > +                             clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
> > +                             dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 0>;
> As I said we should introduce FSL_EDMA_TX and this will read as:
>
> dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 FSL_EDMA_TX>;
>
> Otherwise, looks good to me.
>
>
>
>
Re: [PATCH 1/4] arm64: dts: imx952: Add audio device nodes
Posted by Daniel Baluta 3 weeks, 5 days ago
On 3/12/26 08:54, Shengjiu Wang wrote:
>> On 3/12/26 05:49, Shengjiu Wang wrote:
>>> Add audio device nodes, include SAI, MICFIL, ASRC, Audio Mixer.
>>>
>>> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
>>> ---
>>>  arch/arm64/boot/dts/freescale/imx952.dtsi | 199 ++++++++++++++++++++++
>>>  1 file changed, 199 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/freescale/imx952.dtsi b/arch/arm64/boot/dts/freescale/imx952.dtsi
>>> index 0f86b5626cdd..5787c12e788f 100644
>>> --- a/arch/arm64/boot/dts/freescale/imx952.dtsi
>>> +++ b/arch/arm64/boot/dts/freescale/imx952.dtsi
>>> @@ -823,6 +823,156 @@ usdhc3: mmc@42c40000 {
>>>                       };
>>>               };
>>>
>>> +             aips5: bus@43000000 {
>>> +                     compatible = "fsl,aips-bus", "simple-bus";
>>> +                     reg = <0 0x43000000 0 0x800000>;
>>> +                     #address-cells = <1>;
>>> +                     #size-cells = <1>;
>>> +                     ranges = <0x43000000 0x0 0x43000000 0x800000>;
>>> +
>>> +                     asrc1: asrc@43000000 {
>>> +                             compatible = "fsl,imx952-asrc";
>>> +                             reg = <0x43000000 0x10000>;
>>> +                             interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
>>> +                             clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
>>> +                                      <&scmi_clk IMX952_CLK_BUSWAKEUP>,
>>> +                                      <&scmi_clk IMX952_CLK_ASRC1>,
>>> +                                      <&scmi_clk IMX952_CLK_ASRC2>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>,
>>> +                                      <&clk_dummy>;
>>> +                             clock-names = "mem", "ipg",
>>> +                                           "asrck_0", "asrck_1", "asrck_2", "asrck_3",
>>> +                                           "asrck_4", "asrck_5", "asrck_6", "asrck_7",
>>> +                                           "asrck_8", "asrck_9", "asrck_a", "asrck_b",
>>> +                                           "asrck_c", "asrck_d", "asrck_e", "asrck_f",
>>> +                                           "spba";
>>> +                             dmas = <&edma2 97 0 0>, <&edma2 98 0 0>, <&edma2 99 0 0>,
>>> +                                    <&edma2 100 0 1>, <&edma2 101 0 1>, <&edma2 102 0 1>;
>> For consistency we should use symbolic macros for directions like you did below.
>> Use FSL_EDMA_RX for rx direction and also introduce FSL_EDMA_TX for tx direction.
> Yes, should use FSL_EDMA_RX.
>
> But introduce FSL_EDMA_TX, it should be zero,  FSL_EDMA_TX = 0.
> is it necessary to add it in include/dt-bindings/dma/fsl-edma.h?

I would say yes. For consistency with FSL_EDMA_RX and also for

code readability.

A user doesn't know that 0 means TX. 

We could go on and merge this patch as is right now, no problems. And come back later

with a set of cleanup patches that do this for all dtses.


Re: [PATCH 1/4] arm64: dts: imx952: Add audio device nodes
Posted by Shengjiu Wang 3 weeks, 5 days ago
On Thu, Mar 12, 2026 at 3:10 PM Daniel Baluta <daniel.baluta@oss.nxp.com> wrote:
>
> On 3/12/26 08:54, Shengjiu Wang wrote:
> >> On 3/12/26 05:49, Shengjiu Wang wrote:
> >>> Add audio device nodes, include SAI, MICFIL, ASRC, Audio Mixer.
> >>>
> >>> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
> >>> ---
> >>>  arch/arm64/boot/dts/freescale/imx952.dtsi | 199 ++++++++++++++++++++++
> >>>  1 file changed, 199 insertions(+)
> >>>
> >>> diff --git a/arch/arm64/boot/dts/freescale/imx952.dtsi b/arch/arm64/boot/dts/freescale/imx952.dtsi
> >>> index 0f86b5626cdd..5787c12e788f 100644
> >>> --- a/arch/arm64/boot/dts/freescale/imx952.dtsi
> >>> +++ b/arch/arm64/boot/dts/freescale/imx952.dtsi
> >>> @@ -823,6 +823,156 @@ usdhc3: mmc@42c40000 {
> >>>                       };
> >>>               };
> >>>
> >>> +             aips5: bus@43000000 {
> >>> +                     compatible = "fsl,aips-bus", "simple-bus";
> >>> +                     reg = <0 0x43000000 0 0x800000>;
> >>> +                     #address-cells = <1>;
> >>> +                     #size-cells = <1>;
> >>> +                     ranges = <0x43000000 0x0 0x43000000 0x800000>;
> >>> +
> >>> +                     asrc1: asrc@43000000 {
> >>> +                             compatible = "fsl,imx952-asrc";
> >>> +                             reg = <0x43000000 0x10000>;
> >>> +                             interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
> >>> +                             clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
> >>> +                                      <&scmi_clk IMX952_CLK_BUSWAKEUP>,
> >>> +                                      <&scmi_clk IMX952_CLK_ASRC1>,
> >>> +                                      <&scmi_clk IMX952_CLK_ASRC2>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>,
> >>> +                                      <&clk_dummy>;
> >>> +                             clock-names = "mem", "ipg",
> >>> +                                           "asrck_0", "asrck_1", "asrck_2", "asrck_3",
> >>> +                                           "asrck_4", "asrck_5", "asrck_6", "asrck_7",
> >>> +                                           "asrck_8", "asrck_9", "asrck_a", "asrck_b",
> >>> +                                           "asrck_c", "asrck_d", "asrck_e", "asrck_f",
> >>> +                                           "spba";
> >>> +                             dmas = <&edma2 97 0 0>, <&edma2 98 0 0>, <&edma2 99 0 0>,
> >>> +                                    <&edma2 100 0 1>, <&edma2 101 0 1>, <&edma2 102 0 1>;
> >> For consistency we should use symbolic macros for directions like you did below.
> >> Use FSL_EDMA_RX for rx direction and also introduce FSL_EDMA_TX for tx direction.
> > Yes, should use FSL_EDMA_RX.
> >
> > But introduce FSL_EDMA_TX, it should be zero,  FSL_EDMA_TX = 0.
> > is it necessary to add it in include/dt-bindings/dma/fsl-edma.h?
>
> I would say yes. For consistency with FSL_EDMA_RX and also for
>
> code readability.
>
> A user doesn't know that 0 means TX.
>
> We could go on and merge this patch as is right now, no problems. And come back later
>
> with a set of cleanup patches that do this for all dtses.

I think it is better to have another patch set to introduce
FSL_EDMA_TX for all dtses.

I will add FSL_EDMA_RX in the next version.

Best regards
shengjiu Wang
>
>