@@ -21,8 +21,8 @@ properties:
21
21
- enum :
22
22
- fsl,vf610-edma
23
23
- fsl,imx7ulp-edma
24
- - fsl,imx8qm-adma
25
24
- fsl,imx8qm-edma
25
+ - fsl,imx8ulp-edma
26
26
- fsl,imx93-edma3
27
27
- fsl,imx93-edma4
28
28
- fsl,imx95-edma5
@@ -43,6 +43,17 @@ properties:
43
43
maxItems : 64
44
44
45
45
" #dma-cells " :
46
+ description : |
47
+ Specifies the number of cells needed to encode an DMA channel.
48
+
49
+ Encode for cells number 2:
50
+ cell 0: index of dma channel mux instance.
51
+ cell 1: peripheral dma request id.
52
+
53
+ Encode for cells number 3:
54
+ cell 0: peripheral dma request id.
55
+ cell 1: dma channel priority.
56
+ cell 2: bitmask, defined at include/dt-bindings/dma/fsl-edma.h
46
57
enum :
47
58
- 2
48
59
- 3
@@ -53,11 +64,18 @@ properties:
53
64
54
65
clocks :
55
66
minItems : 1
56
- maxItems : 2
67
+ maxItems : 33
57
68
58
69
clock-names :
59
70
minItems : 1
60
- maxItems : 2
71
+ maxItems : 33
72
+
73
+ power-domains :
74
+ description :
75
+ The number of power domains matches the number of channels, arranged
76
+ in ascending order according to their associated DMA channels.
77
+ minItems : 1
78
+ maxItems : 64
61
79
62
80
big-endian :
63
81
description : |
@@ -70,7 +88,6 @@ required:
70
88
- compatible
71
89
- reg
72
90
- interrupts
73
- - clocks
74
91
- dma-channels
75
92
76
93
allOf :
80
97
compatible :
81
98
contains :
82
99
enum :
83
- - fsl,imx8qm-adma
84
100
- fsl,imx8qm-edma
85
101
- fsl,imx93-edma3
86
102
- fsl,imx93-edma4
@@ -108,6 +124,7 @@ allOf:
108
124
properties :
109
125
clocks :
110
126
minItems : 2
127
+ maxItems : 2
111
128
clock-names :
112
129
items :
113
130
- const : dmamux0
@@ -136,6 +153,7 @@ allOf:
136
153
properties :
137
154
clock :
138
155
minItems : 2
156
+ maxItems : 2
139
157
clock-names :
140
158
items :
141
159
- const : dma
@@ -151,6 +169,58 @@ allOf:
151
169
dma-channels :
152
170
const : 32
153
171
172
+ - if :
173
+ properties :
174
+ compatible :
175
+ contains :
176
+ const : fsl,imx8ulp-edma
177
+ then :
178
+ properties :
179
+ clocks :
180
+ minItems : 33
181
+ clock-names :
182
+ minItems : 33
183
+ items :
184
+ oneOf :
185
+ - const : dma
186
+ - pattern : " ^ch(0[0-9]|[1-2][0-9]|3[01])$"
187
+
188
+ interrupt-names : false
189
+ interrupts :
190
+ minItems : 32
191
+ " #dma-cells " :
192
+ const : 3
193
+
194
+ - if :
195
+ properties :
196
+ compatible :
197
+ contains :
198
+ enum :
199
+ - fsl,vf610-edma
200
+ - fsl,imx7ulp-edma
201
+ - fsl,imx93-edma3
202
+ - fsl,imx93-edma4
203
+ - fsl,imx95-edma5
204
+ - fsl,imx8ulp-edma
205
+ - fsl,ls1028a-edma
206
+ then :
207
+ required :
208
+ - clocks
209
+
210
+ - if :
211
+ properties :
212
+ compatible :
213
+ contains :
214
+ enum :
215
+ - fsl,imx8qm-adma
216
+ - fsl,imx8qm-edma
217
+ then :
218
+ required :
219
+ - power-domains
220
+ else :
221
+ properties :
222
+ power-domains : false
223
+
154
224
unevaluatedProperties : false
155
225
156
226
examples :
@@ -206,44 +276,27 @@ examples:
206
276
207
277
- |
208
278
#include <dt-bindings/interrupt-controller/arm-gic.h>
209
- #include <dt-bindings/clock/imx93-clock .h>
279
+ #include <dt-bindings/firmware/imx/rsrc .h>
210
280
211
- dma-controller@44000000 {
212
- compatible = "fsl,imx93-edma3 ";
213
- reg = <0x44000000 0x200000 >;
281
+ dma-controller@5a9f0000 {
282
+ compatible = "fsl,imx8qm-edma ";
283
+ reg = <0x5a9f0000 0x90000 >;
214
284
#dma-cells = <3>;
215
- dma-channels = <31>;
216
- interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
217
- <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
218
- <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
219
- <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
220
- <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
221
- <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
222
- <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
223
- <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
224
- <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
225
- <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
226
- <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
227
- <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
228
- <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
229
- <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
230
- <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
231
- <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
232
- <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
233
- <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
234
- <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
235
- <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
236
- <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
237
- <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
238
- <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
239
- <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
240
- <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
241
- <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
242
- <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
243
- <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
244
- <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
245
- <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
246
- <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
247
- clocks = <&clk IMX93_CLK_EDMA1_GATE>;
248
- clock-names = "dma";
285
+ dma-channels = <8>;
286
+ interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
287
+ <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
288
+ <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>,
289
+ <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>,
290
+ <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>,
291
+ <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
292
+ <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>,
293
+ <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>;
294
+ power-domains = <&pd IMX_SC_R_DMA_3_CH0>,
295
+ <&pd IMX_SC_R_DMA_3_CH1>,
296
+ <&pd IMX_SC_R_DMA_3_CH2>,
297
+ <&pd IMX_SC_R_DMA_3_CH3>,
298
+ <&pd IMX_SC_R_DMA_3_CH4>,
299
+ <&pd IMX_SC_R_DMA_3_CH5>,
300
+ <&pd IMX_SC_R_DMA_3_CH6>,
301
+ <&pd IMX_SC_R_DMA_3_CH7>;
249
302
};
0 commit comments