Skip to content

Commit 7253ddc

Browse files
ADESTMAlexandre Torgue
authored andcommitted
arm64: dts: st: add HPDMA nodes on stm32mp251
The High Performance Direct Memory Access (HPDMA) controller is used to perform programmable data transfers between memory-mapped peripherals and memories (or between memories) via linked-lists. There are 3 instances of HPDMA on stm32mp251, using stm32-dma3 driver, with 16 channels per instance and with one interrupt per channel. Channels 0 to 7 are implemented with a FIFO of 8 bytes. Channels 8 to 11 are implemented with a FIFO of 32 bytes. Channels 12 to 15 are implemented with a FIFO of 128 bytes. Thanks to stm32-dma3 bindings, the user can ask for a channel with specific FIFO size. Signed-off-by: Amelie Delaunay <[email protected]> Signed-off-by: Alexandre Torgue <[email protected]>
1 parent 1b02383 commit 7253ddc

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

arch/arm64/boot/dts/st/stm32mp251.dtsi

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,75 @@
125125
interrupt-parent = <&intc>;
126126
ranges = <0x0 0x0 0x0 0x80000000>;
127127

128+
hpdma: dma-controller@40400000 {
129+
compatible = "st,stm32mp25-dma3";
130+
reg = <0x40400000 0x1000>;
131+
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
132+
<GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
133+
<GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
134+
<GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
135+
<GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
136+
<GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
137+
<GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
138+
<GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
139+
<GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
140+
<GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
141+
<GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
142+
<GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
143+
<GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
144+
<GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
145+
<GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
146+
<GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
147+
clocks = <&scmi_clk CK_SCMI_HPDMA1>;
148+
#dma-cells = <3>;
149+
};
150+
151+
hpdma2: dma-controller@40410000 {
152+
compatible = "st,stm32mp25-dma3";
153+
reg = <0x40410000 0x1000>;
154+
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
155+
<GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
156+
<GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
157+
<GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
158+
<GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
159+
<GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
160+
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
161+
<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
162+
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
163+
<GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
164+
<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
165+
<GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
166+
<GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
167+
<GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
168+
<GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
169+
<GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
170+
clocks = <&scmi_clk CK_SCMI_HPDMA2>;
171+
#dma-cells = <3>;
172+
};
173+
174+
hpdma3: dma-controller@40420000 {
175+
compatible = "st,stm32mp25-dma3";
176+
reg = <0x40420000 0x1000>;
177+
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
178+
<GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
179+
<GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
180+
<GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
181+
<GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
182+
<GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
183+
<GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
184+
<GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
185+
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
186+
<GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
187+
<GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
188+
<GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
189+
<GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
190+
<GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
191+
<GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
192+
<GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
193+
clocks = <&scmi_clk CK_SCMI_HPDMA3>;
194+
#dma-cells = <3>;
195+
};
196+
128197
rifsc: bus@42080000 {
129198
compatible = "st,stm32mp25-rifsc", "simple-bus";
130199
reg = <0x42080000 0x1000>;

0 commit comments

Comments
 (0)