* Atmel Universal Synchronous Asynchronous Receiver/Transmitter (USART)

Required properties for USART:
- compatible: Should be "atmel,<chip>-usart" or "atmel,<chip>-dbgu"
  The compatible <chip> indicated will be the first SoC to support an
  additional mode or an USART new feature.
  For the dbgu UART, use "atmel,<chip>-dbgu", "atmel,<chip>-usart"
- reg: Should contain registers location and length
- interrupts: Should contain interrupt
- clock-names: tuple listing input clock names.
	Required elements: "usart"
- clocks: phandles to input clocks.

Required properties for USART in SPI mode:
- #size-cells      : Must be <0>
- #address-cells   : Must be <1>
- cs-gpios: chipselects (internal cs not supported)
- atmel,usart-mode : Must be <AT91_USART_MODE_SPI> (found in dt-bindings/mfd/at91-usart.h)

Optional properties in serial and SPI mode:
- dma bindings for dma transfer:
	- dmas: DMA specifier, consisting of a phandle to DMA controller node,
		memory peripheral interface and USART DMA channel ID, FIFO configuration.
		The order of DMA channels is fixed. The first DMA channel must be TX
		associated channel and the second one must be RX associated channel.
		Refer to dma.txt and atmel-dma.txt for details.
	- dma-names: "tx" for TX channel.
		     "rx" for RX channel.
		     The order of dma-names is also fixed. The first name must be "tx"
		     and the second one must be "rx" as in the examples below.

Optional properties in serial mode:
- atmel,use-dma-rx: use of PDC or DMA for receiving data
- atmel,use-dma-tx: use of PDC or DMA for transmitting data
- {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD line respectively.
  It will use specified PIO instead of the peripheral function pin for the USART feature.
  If unsure, don't specify this property.
- atmel,fifo-size: maximum number of data the RX and TX FIFOs can store for FIFO
  capable USARTs.
- rs485-rts-delay, rs485-rx-during-tx, linux,rs485-enabled-at-boot-time: see rs485.txt

<chip> compatible description:
- at91rm9200:  legacy USART support
- at91sam9260: generic USART implementation for SAM9 SoCs

Example:
- use PDC:
	usart0: serial@fff8c000 {
		compatible = "atmel,at91sam9260-usart";
		reg = <0xfff8c000 0x4000>;
		interrupts = <7>;
		clocks = <&usart0_clk>;
		clock-names = "usart";
		atmel,use-dma-rx;
		atmel,use-dma-tx;
		rts-gpios = <&pioD 15 GPIO_ACTIVE_LOW>;
		cts-gpios = <&pioD 16 GPIO_ACTIVE_LOW>;
		dtr-gpios = <&pioD 17 GPIO_ACTIVE_LOW>;
		dsr-gpios = <&pioD 18 GPIO_ACTIVE_LOW>;
		dcd-gpios = <&pioD 20 GPIO_ACTIVE_LOW>;
		rng-gpios = <&pioD 19 GPIO_ACTIVE_LOW>;
	};

- use DMA:
	usart0: serial@f001c000 {
		compatible = "atmel,at91sam9260-usart";
		reg = <0xf001c000 0x100>;
		interrupts = <12 4 5>;
		clocks = <&usart0_clk>;
		clock-names = "usart";
		atmel,use-dma-rx;
		atmel,use-dma-tx;
		dmas = <&dma0 2 0x3>,
		       <&dma0 2 0x204>;
		dma-names = "tx", "rx";
		atmel,fifo-size = <32>;
	};

- SPI mode:
	#include <dt-bindings/mfd/at91-usart.h>

	spi0: spi@f001c000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "atmel,at91rm9200-usart", "atmel,at91sam9260-usart";
		atmel,usart-mode = <AT91_USART_MODE_SPI>;
		reg = <0xf001c000 0x100>;
		interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5>;
		clocks = <&usart0_clk>;
		clock-names = "usart";
		dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(3)>,
		       <&dma0 2 (AT91_DMA_CFG_PER_ID(4) | AT91_DMA_CFG_FIFOCFG_ASAP)>;
		dma-names = "tx", "rx";
		cs-gpios = <&pioB 3 0>;
	};
