On r8a7740 multiple DMA controllers can serve the same slaves with the
same DMA slave IDs. To use this feature DMA controller DT nodes have
to be grouped under "dma-mux" multiplexer nodes and slaves have to be
modified to reference multiplexer nodes instead of individual DMA DT
nodes. Future patches shall add further DMA controller DT nodes under
the same DMA multiplexer DT node.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+rene...@gmail.com>
---

Applies on top of my earlier "ARM: shmobile: r8a7740: add DT node for one 
DMAC instance" patch still under review.

 .../boot/dts/r8a7740-armadillo800eva-reference.dts |   12 +++---
 arch/arm/boot/dts/r8a7740.dtsi                     |   43 +++++++++++--------
 2 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts 
b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
index c201445..1983d49 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
@@ -47,8 +47,8 @@
        vmmc-supply = <&reg_3p3v>;
        bus-width = <8>;
        non-removable;
-       dmas = <&dma0 0xd1
-               &dma0 0xd2>;
+       dmas = <&dmac 0xd1
+               &dmac 0xd2>;
        dma-names = "tx", "rx";
        status = "okay";
 };
@@ -57,8 +57,8 @@
        vmmc-supply = <&reg_3p3v>;
        bus-width = <4>;
        broken-cd;
-       dmas = <&dma0 0xc1
-               &dma0 0xc2>;
+       dmas = <&dmac 0xc1
+               &dmac 0xc2>;
        dma-names = "tx", "rx";
        status = "okay";
 };
@@ -66,8 +66,8 @@
 &sdhi1 {
        vmmc-supply = <&reg_3p3v>;
        bus-width = <4>;
-       dmas = <&dma0 0xc9
-               &dma0 0xca>;
+       dmas = <&dmac 0xc9
+               &dmac 0xca>;
        dma-names = "tx", "rx";
        status = "okay";
 };
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index 054bc1a..965ca4c 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -112,24 +112,31 @@
                              0 149 0x4>;
        };
 
-       dma0: shdma@fe008020 {
-               compatible = "renesas,shdma";
-               reg = <0xfe008020 0x270
-                       0xfe009000 0xc>;
-               interrupt-parent = <&gic>;
-               interrupts = <0 34 4
-                               0 28 4
-                               0 29 4
-                               0 30 4
-                               0 31 4
-                               0 32 4
-                               0 33 4>;
-               interrupt-names = "error",
-                               "ch0", "ch1", "ch2", "ch3",
-                               "ch4", "ch5";
-               #dma-cells = <1>;
-               dma-channels = <6>;
-               dma-requests = <256>;
+       dmac: dma-mux0 {
+               compatible = "simple-bus", "dma-mux";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               dma0: shdma@fe008020 {
+                       compatible = "renesas,shdma";
+                       reg = <0xfe008020 0x270>,
+                               <0xfe009000 0xc>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 34 4
+                                       0 28 4
+                                       0 29 4
+                                       0 30 4
+                                       0 31 4
+                                       0 32 4
+                                       0 33 4>;
+                       interrupt-names = "error",
+                                       "ch0", "ch1", "ch2", "ch3",
+                                       "ch4", "ch5";
+                       #dma-cells = <1>;
+                       dma-channels = <6>;
+                       dma-requests = <256>;
+               };
        };
 
        i2c0: i2c@fff20000 {
-- 
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to