* STMicroelectronics STM32 DMA controller

The STM32 DMA is a general-purpose direct memory access controller capable of
supporting 8 independent DMA channels. Each channel can have up to 8 requests.

Required properties:
- compatible: Should be "st,stm32-dma"
- reg: Should contain DMA registers location and length. This should include
  all of the per-channel registers.
- interrupts: Should contain all of the per-channel DMA interrupts in
  ascending order with respect to the DMA channel index.
- clocks: Should contain the input clock of the DMA instance.
- #dma-cells : Must be <4>. See DMA client paragraph for more details.

Optional properties:
- resets: Reference to a reset controller asserting the DMA controller
- st,mem2mem: boolean; if defined, it indicates that the controller supports
  memory-to-memory transfer

Example:

	dma2: dma-controller@40026400 {
		compatible = "st,stm32-dma";
		reg = <0x40026400 0x400>;
		interrupts = <56>,
			     <57>,
			     <58>,
			     <59>,
			     <60>,
			     <68>,
			     <69>,
			     <70>;
		clocks = <&clk_hclk>;
		#dma-cells = <4>;
		st,mem2mem;
		resets = <&rcc 150>;
	};

* DMA client

DMA clients connected to the STM32 DMA controller must use the format
described in the dma.txt file, using a five-cell specifier for each
channel: a phandle to the DMA controller plus the following four integer cells:

1. The channel id
2. The request line number
3. A 32bit mask specifying the DMA channel configuration which are device
   dependent:
  -bit 9: Peripheral Increment Address
	0x0: no address increment between transfers
	0x1: increment address between transfers
 -bit 10: Memory Increment Address
	0x0: no address increment between transfers
	0x1: increment address between transfers
 -bit 15: Peripheral Increment Offset Size
	0x0: offset size is linked to the peripheral bus width
	0x1: offset size is fixed to 4 (32-bit alignment)
 -bit 16-17: Priority level
	0x0: low
	0x1: medium
	0x2: high
	0x3: very high
4. A 32bit mask specifying the DMA FIFO threshold configuration which are device
   dependent:
 -bit 0-1: Fifo threshold
	0x0: 1/4 full FIFO
	0x1: 1/2 full FIFO
	0x2: 3/4 full FIFO
	0x3: full FIFO

Example:

	usart1: serial@40011000 {
		compatible = "st,stm32-usart", "st,stm32-uart";
		reg = <0x40011000 0x400>;
		interrupts = <37>;
		clocks = <&clk_pclk2>;
		dmas = <&dma2 2 4 0x10400 0x3>,
		       <&dma2 7 5 0x10200 0x3>;
		dma-names = "rx", "tx";
	};
