* Generic DMA Controller and DMA request bindings

Generic binding to provide a way for a driver using DMA Engine to retrieve the
DMA request or channel information that goes from a hardware device to a DMA
controller.


* DMA controller

Required property:
- #dma-cells: 		Must be at least 1. Used to provide DMA controller
			specific information. See DMA client binding below for
			more details.

Optional properties:
- dma-channels: 	Number of DMA channels supported by the controller.
- dma-requests: 	Number of DMA request signals supported by the
			controller.

Example:

	dma: dma@48000000 {
		compatible = "ti,omap-sdma";
		reg = <0x48000000 0x1000>;
		interrupts = <0 12 0x4
			      0 13 0x4
			      0 14 0x4
			      0 15 0x4>;
		#dma-cells = <1>;
		dma-channels = <32>;
		dma-requests = <127>;
	};

* DMA router

DMA routers are transparent IP blocks used to route DMA request lines from
devices to the DMA controller. Some SoCs (like TI DRA7x) have more peripherals
integrated with DMA requests than what the DMA controller can handle directly.

Required property:
- dma-masters:		phandle of the DMA controller or list of phandles for
			the DMA controllers the router can direct the signal to.
- #dma-cells: 		Must be at least 1. Used to provide DMA router specific
			information. See DMA client binding below for more
			details.

Optional properties:
- dma-requests: 	Number of incoming request lines the router can handle.
- In the node pointed by the dma-masters:
	- dma-requests:	The router driver might need to look for this in order
			to configure the routing.

Example:
	sdma_xbar: dma-router@4a002b78 {
		compatible = "ti,dra7-dma-crossbar";
		reg = <0x4a002b78 0xfc>;
		#dma-cells = <1>;
		dma-requests = <205>;
		ti,dma-safe-map = <0>;
		dma-masters = <&sdma>;
	};

* DMA client

Client drivers should specify the DMA property using a phandle to the controller
followed by DMA controller specific data.

Required property:
- dmas:			List of one or more DMA specifiers, each consisting of
			- A phandle pointing to DMA controller node
			- A number of integer cells, as determined by the
			  #dma-cells property in the node referenced by phandle
			  containing DMA controller specific information. This
			  typically contains a DMA request line number or a
			  channel number, but can contain any data that is
			  required for configuring a channel.
- dma-names: 		Contains one identifier string for each DMA specifier in
			the dmas property. The specific strings that can be used
			are defined in the binding of the DMA client device.
			Multiple DMA specifiers can be used to represent
			alternatives and in this case the dma-names for those
			DMA specifiers must be identical (see examples).

Examples:

1. A device with one DMA read channel, one DMA write channel:

	i2c1: i2c@1 {
		...
		dmas = <&dma 2		/* read channel */
			&dma 3>;	/* write channel */
		dma-names = "rx", "tx";
		...
	};

2. A single read-write channel with three alternative DMA controllers:

	dmas = <&dma1 5
		&dma2 7
		&dma3 2>;
	dma-names = "rx-tx", "rx-tx", "rx-tx";

3. A device with three channels, one of which has two alternatives:

	dmas = <&dma1 2			/* read channel */
		&dma1 3			/* write channel */
		&dma2 0			/* error read */
		&dma3 0>;		/* alternative error read */
	dma-names = "rx", "tx", "error", "error";
