arm64: dts: renesas: r8a779h0: Add DMA support
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 14 Feb 2024 13:19:27 +0000 (14:19 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Thu, 22 Feb 2024 10:06:33 +0000 (11:06 +0100)
Add device nodes for the Direct Memory Access Controllers for System
(SYS-DMAC) on the Renesas R-Car V4M (R8A779H0) SoC.

Link all DMA consumers to the corresponding DMA controller channels.

Based on patches in the BSP by Thanh Le and Minh Le.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/44de886cd83f41659d2f6962c0e277f548fb0adb.1707916707.git.geert+renesas@glider.be
arch/arm64/boot/dts/renesas/r8a779h0.dtsi

index d50ed1989ef52da73e7ddec711ee0d3fc8e77b54..46c586f4e326959f020affbe256f0c0b3132f52a 100644 (file)
                        clocks = <&cpg CPG_MOD 518>;
                        power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
                        resets = <&cpg 518>;
+                       dmas = <&dmac1 0x91>, <&dmac1 0x90>,
+                              <&dmac2 0x91>, <&dmac2 0x90>;
+                       dma-names = "tx", "rx", "tx", "rx";
                        i2c-scl-internal-delay-ns = <110>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        clocks = <&cpg CPG_MOD 519>;
                        power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
                        resets = <&cpg 519>;
+                       dmas = <&dmac1 0x93>, <&dmac1 0x92>,
+                              <&dmac2 0x93>, <&dmac2 0x92>;
+                       dma-names = "tx", "rx", "tx", "rx";
                        i2c-scl-internal-delay-ns = <110>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        clocks = <&cpg CPG_MOD 520>;
                        power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
                        resets = <&cpg 520>;
+                       dmas = <&dmac1 0x95>, <&dmac1 0x94>,
+                              <&dmac2 0x95>, <&dmac2 0x94>;
+                       dma-names = "tx", "rx", "tx", "rx";
                        i2c-scl-internal-delay-ns = <110>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        clocks = <&cpg CPG_MOD 521>;
                        power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
                        resets = <&cpg 521>;
+                       dmas = <&dmac1 0x97>, <&dmac1 0x96>,
+                              <&dmac2 0x97>, <&dmac2 0x96>;
+                       dma-names = "tx", "rx", "tx", "rx";
                        i2c-scl-internal-delay-ns = <110>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
                        resets = <&cpg 514>;
+                       dmas = <&dmac1 0x31>, <&dmac1 0x30>,
+                              <&dmac2 0x31>, <&dmac2 0x30>;
+                       dma-names = "tx", "rx", "tx", "rx";
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
+               dmac1: dma-controller@e7350000 {
+                       compatible = "renesas,dmac-r8a779h0",
+                                    "renesas,rcar-gen4-dmac";
+                       reg = <0 0xe7350000 0 0x1000>,
+                             <0 0xe7300000 0 0x10000>;
+                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3", "ch4",
+                                         "ch5", "ch6", "ch7", "ch8", "ch9",
+                                         "ch10", "ch11", "ch12", "ch13",
+                                         "ch14", "ch15";
+                       clocks = <&cpg CPG_MOD 709>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 709>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+               };
+
+               dmac2: dma-controller@e7351000 {
+                       compatible = "renesas,dmac-r8a779h0",
+                                    "renesas,rcar-gen4-dmac";
+                       reg = <0 0xe7351000 0 0x1000>,
+                             <0 0xe7310000 0 0x10000>;
+                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3", "ch4",
+                                         "ch5", "ch6", "ch7";
+                       clocks = <&cpg CPG_MOD 710>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 710>;
+                       #dma-cells = <1>;
+                       dma-channels = <8>;
+               };
+
                mmc0: mmc@ee140000 {
                        compatible = "renesas,sdhi-r8a779h0",
                                     "renesas,rcar-gen4-sdhi";