* Actions Semi Owl SoCs DMA controller

This binding follows the generic DMA bindings defined in dma.txt.

Required properties:
- compatible: Should be "actions,s900-dma".
- reg: Should contain DMA registers location and length.
- interrupts: Should contain 4 interrupts shared by all channel.
- #dma-cells: Must be <1>. Used to represent the number of integer
              cells in the dmas property of client device.
- dma-channels: Physical channels supported.
- dma-requests: Number of DMA request signals supported by the controller.
                Refer to Documentation/devicetree/bindings/dma/dma.txt
- clocks: Phandle and Specifier of the clock feeding the DMA controller.

Example:

Controller:
                dma: dma-controller@e0260000 {
                        compatible = "actions,s900-dma";
                        reg = <0x0 0xe0260000 0x0 0x1000>;
                        interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
                        dma-channels = <12>;
                        dma-requests = <46>;
                        clocks = <&clock CLK_DMAC>;
                };

Client:

DMA clients connected to the Actions Semi Owl SoCs DMA controller must
use the format described in the dma.txt file, using a two-cell specifier
for each channel.

The two cells in order are:
1. A phandle pointing to the DMA controller.
2. The channel id.

uart5: serial@e012a000 {
        ...
        dma-names = "tx", "rx";
        dmas = <&dma 26>, <&dma 27>;
        ...
};
