]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: st: add DMA support on U(S)ART instances of stm32mp25
authorAmelie Delaunay <amelie.delaunay@foss.st.com>
Wed, 16 Oct 2024 12:39:59 +0000 (14:39 +0200)
committerAlexandre Torgue <alexandre.torgue@foss.st.com>
Tue, 29 Oct 2024 16:07:05 +0000 (17:07 +0100)
Add dmas and dma-names properties in u(s)art nodes of stm32mp251.dtsi to
enable DMA support.
RX channel requires to prevent pack/unpack feature of DMA to avoid losing
bytes when interrupting RX transfer, as it uses a cyclic buffer.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
arch/arm64/boot/dts/st/stm32mp251.dtsi
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts

index 130602eda9a2e535d024ed4414b2df12679eea2f..9deaf89a9ee8dfbb68ed0a37ec827cdad66e2848 100644 (file)
                                reg = <0x400e0000 0x400>;
                                interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_USART2>;
+                               dmas = <&hpdma 11 0x20 0x10012>,
+                                      <&hpdma 12 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 32>;
                                status = "disabled";
                        };
                                reg = <0x400f0000 0x400>;
                                interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_USART3>;
+                               dmas = <&hpdma 13 0x20 0x10012>,
+                                      <&hpdma 14 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 33>;
                                status = "disabled";
                        };
                                reg = <0x40100000 0x400>;
                                interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_UART4>;
+                               dmas = <&hpdma 15 0x20 0x10012>,
+                                      <&hpdma 16 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 34>;
                                status = "disabled";
                        };
                                reg = <0x40110000 0x400>;
                                interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_UART5>;
+                               dmas = <&hpdma 17 0x20 0x10012>,
+                                      <&hpdma 18 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 35>;
                                status = "disabled";
                        };
                                reg = <0x40220000 0x400>;
                                interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_USART6>;
+                               dmas = <&hpdma 19 0x20 0x10012>,
+                                      <&hpdma 20 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 36>;
                                status = "disabled";
                        };
                                reg = <0x402c0000 0x400>;
                                interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_UART9>;
+                               dmas = <&hpdma 25 0x20 0x10012>,
+                                      <&hpdma 26 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 39>;
                                status = "disabled";
                        };
                                reg = <0x40330000 0x400>;
                                interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_USART1>;
+                               dmas = <&hpdma 9 0x20 0x10012>,
+                                      <&hpdma 10 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 31>;
                                status = "disabled";
                        };
                                reg = <0x40370000 0x400>;
                                interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_UART7>;
+                               dmas = <&hpdma 21 0x20 0x10012>,
+                                      <&hpdma 22 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 37>;
                                status = "disabled";
                        };
                                reg = <0x40380000 0x400>;
                                interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&rcc CK_KER_UART8>;
+                               dmas = <&hpdma 23 0x20 0x10012>,
+                                      <&hpdma 24 0x20 0x3021>;
+                               dma-names = "rx", "tx";
                                access-controllers = <&rifsc 38>;
                                status = "disabled";
                        };
index 6b68aeaf79ba3238785e5bb485c808449ca1f003..6f393b082789144936ec0d4a406ea4069700e269 100644 (file)
        pinctrl-0 = <&usart2_pins_a>;
        pinctrl-1 = <&usart2_idle_pins_a>;
        pinctrl-2 = <&usart2_sleep_pins_a>;
+       /delete-property/dmas;
+       /delete-property/dma-names;
        status = "okay";
 };