@@ -21,32 +21,41 @@ properties:
21
21
- enum :
22
22
- fsl,vf610-edma
23
23
- fsl,imx7ulp-edma
24
+ - fsl,imx8qm-adma
25
+ - fsl,imx8qm-edma
26
+ - fsl,imx93-edma3
27
+ - fsl,imx93-edma4
24
28
- items :
25
29
- const : fsl,ls1028a-edma
26
30
- const : fsl,vf610-edma
27
31
28
32
reg :
29
- minItems : 2
33
+ minItems : 1
30
34
maxItems : 3
31
35
32
36
interrupts :
33
- minItems : 2
34
- maxItems : 17
37
+ minItems : 1
38
+ maxItems : 64
35
39
36
40
interrupt-names :
37
- minItems : 2
38
- maxItems : 17
41
+ minItems : 1
42
+ maxItems : 64
39
43
40
44
" #dma-cells " :
41
- const : 2
45
+ enum :
46
+ - 2
47
+ - 3
42
48
43
49
dma-channels :
44
- const : 32
50
+ minItems : 1
51
+ maxItems : 64
45
52
46
53
clocks :
54
+ minItems : 1
47
55
maxItems : 2
48
56
49
57
clock-names :
58
+ minItems : 1
50
59
maxItems : 2
51
60
52
61
big-endian :
@@ -65,25 +74,56 @@ required:
65
74
66
75
allOf :
67
76
- $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
+
68
100
- if :
69
101
properties :
70
102
compatible :
71
103
contains :
72
104
const : fsl,vf610-edma
73
105
then :
74
106
properties :
107
+ clocks :
108
+ minItems : 2
75
109
clock-names :
76
110
items :
77
111
- const : dmamux0
78
112
- const : dmamux1
79
113
interrupts :
114
+ minItems : 2
80
115
maxItems : 2
81
116
interrupt-names :
82
117
items :
83
118
- const : edma-tx
84
119
- const : edma-err
85
120
reg :
121
+ minItems : 2
86
122
maxItems : 3
123
+ " #dma-cells " :
124
+ const : 2
125
+ dma-channels :
126
+ const : 32
87
127
88
128
- if :
89
129
properties :
@@ -92,14 +132,22 @@ allOf:
92
132
const : fsl,imx7ulp-edma
93
133
then :
94
134
properties :
135
+ clock :
136
+ minItems : 2
95
137
clock-names :
96
138
items :
97
139
- const : dma
98
140
- const : dmamux0
99
141
interrupts :
142
+ minItems : 2
100
143
maxItems : 17
101
144
reg :
145
+ minItems : 2
102
146
maxItems : 2
147
+ " #dma-cells " :
148
+ const : 2
149
+ dma-channels :
150
+ const : 32
103
151
104
152
unevaluatedProperties : false
105
153
@@ -153,3 +201,47 @@ examples:
153
201
clock-names = "dma", "dmamux0";
154
202
clocks = <&pcc2 IMX7ULP_CLK_DMA1>, <&pcc2 IMX7ULP_CLK_DMA_MUX1>;
155
203
};
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