* 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 requests 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 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 used
			  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";
