@@ -21,32 +21,41 @@ properties:
2121 - enum :
2222 - fsl,vf610-edma
2323 - fsl,imx7ulp-edma
24+ - fsl,imx8qm-adma
25+ - fsl,imx8qm-edma
26+ - fsl,imx93-edma3
27+ - fsl,imx93-edma4
2428 - items :
2529 - const : fsl,ls1028a-edma
2630 - const : fsl,vf610-edma
2731
2832 reg :
29- minItems : 2
33+ minItems : 1
3034 maxItems : 3
3135
3236 interrupts :
33- minItems : 2
34- maxItems : 17
37+ minItems : 1
38+ maxItems : 64
3539
3640 interrupt-names :
37- minItems : 2
38- maxItems : 17
41+ minItems : 1
42+ maxItems : 64
3943
4044 " #dma-cells " :
41- const : 2
45+ enum :
46+ - 2
47+ - 3
4248
4349 dma-channels :
44- const : 32
50+ minItems : 1
51+ maxItems : 64
4552
4653 clocks :
54+ minItems : 1
4755 maxItems : 2
4856
4957 clock-names :
58+ minItems : 1
5059 maxItems : 2
5160
5261 big-endian :
@@ -65,25 +74,56 @@ required:
6574
6675allOf :
6776 - $ref : dma-controller.yaml#
77+ - if :
78+ properties :
79+ compatible :
80+ contains :
81+ enum :
82+ - fsl,imx8qm-adma
83+ - fsl,imx8qm-edma
84+ - fsl,imx93-edma3
85+ - fsl,imx93-edma4
86+ then :
87+ properties :
88+ " #dma-cells " :
89+ const : 3
90+ # It is not necessary to write the interrupt name for each channel.
91+ # instead, you can simply maintain the sequential IRQ numbers as
92+ # defined for the DMA channels.
93+ interrupt-names : false
94+ clock-names :
95+ items :
96+ - const : dma
97+ clocks :
98+ maxItems : 1
99+
68100 - if :
69101 properties :
70102 compatible :
71103 contains :
72104 const : fsl,vf610-edma
73105 then :
74106 properties :
107+ clocks :
108+ minItems : 2
75109 clock-names :
76110 items :
77111 - const : dmamux0
78112 - const : dmamux1
79113 interrupts :
114+ minItems : 2
80115 maxItems : 2
81116 interrupt-names :
82117 items :
83118 - const : edma-tx
84119 - const : edma-err
85120 reg :
121+ minItems : 2
86122 maxItems : 3
123+ " #dma-cells " :
124+ const : 2
125+ dma-channels :
126+ const : 32
87127
88128 - if :
89129 properties :
@@ -92,14 +132,22 @@ allOf:
92132 const : fsl,imx7ulp-edma
93133 then :
94134 properties :
135+ clock :
136+ minItems : 2
95137 clock-names :
96138 items :
97139 - const : dma
98140 - const : dmamux0
99141 interrupts :
142+ minItems : 2
100143 maxItems : 17
101144 reg :
145+ minItems : 2
102146 maxItems : 2
147+ " #dma-cells " :
148+ const : 2
149+ dma-channels :
150+ const : 32
103151
104152unevaluatedProperties : false
105153
@@ -153,3 +201,47 @@ examples:
153201 clock-names = "dma", "dmamux0";
154202 clocks = <&pcc2 IMX7ULP_CLK_DMA1>, <&pcc2 IMX7ULP_CLK_DMA_MUX1>;
155203 };
204+
205+ - |
206+ #include <dt-bindings/interrupt-controller/arm-gic.h>
207+ #include <dt-bindings/clock/imx93-clock.h>
208+
209+ dma-controller@44000000 {
210+ compatible = "fsl,imx93-edma3";
211+ reg = <0x44000000 0x200000>;
212+ #dma-cells = <3>;
213+ dma-channels = <31>;
214+ interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
215+ <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
216+ <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
217+ <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
218+ <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
219+ <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
220+ <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
221+ <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
222+ <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
223+ <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
224+ <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
225+ <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
226+ <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
227+ <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
228+ <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
229+ <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
230+ <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
231+ <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
232+ <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
233+ <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
234+ <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
235+ <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
236+ <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
237+ <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
238+ <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
239+ <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
240+ <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
241+ <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
242+ <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
243+ <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
244+ <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
245+ clocks = <&clk IMX93_CLK_EDMA1_GATE>;
246+ clock-names = "dma";
247+ };
0 commit comments