* UART (Universal Asynchronous Receiver/Transmitter)

Required properties:
- compatible : one of:
	- "ns8250"
	- "ns16450"
	- "ns16550a"
	- "ns16550"
	- "ns16750"
	- "ns16850"
	- For Tegra20, must contain "nvidia,tegra20-uart"
	- For other Tegra, must contain '"nvidia,<chip>-uart",
	  "nvidia,tegra20-uart"' where <chip> is tegra30, tegra114, tegra124,
	  tegra132, or tegra210.
	- "nxp,lpc3220-uart"
	- "ralink,rt2880-uart"
	- For MediaTek BTIF, must contain '"mediatek,<chip>-btif",
	  "mediatek,mtk-btif"' where <chip> is mt7622, mt7623.
	- "altr,16550-FIFO32"
	- "altr,16550-FIFO64"
	- "altr,16550-FIFO128"
	- "fsl,16550-FIFO64"
	- "fsl,ns16550"
	- "intel,xscale-uart"
	- "ti,da830-uart"
	- "aspeed,ast2400-vuart"
	- "aspeed,ast2500-vuart"
	- "nuvoton,npcm750-uart"
	- "serial" if the port type is unknown.
- reg : offset and length of the register set for the device.
- interrupts : should contain uart interrupt.
- clock-frequency : the input clock frequency for the UART
	 or
  clocks phandle to refer to the clk used as per Documentation/devicetree
  /bindings/clock/clock-bindings.txt

Optional properties:
- current-speed : the current active speed of the UART.
- reg-offset : offset to apply to the mapbase from the start of the registers.
- reg-shift : quantity to shift the register offsets by.
- reg-io-width : the size (in bytes) of the IO accesses that should be
  performed on the device.  There are some systems that require 32-bit
  accesses to the UART (e.g. TI davinci).
- used-by-rtas : set to indicate that the port is in use by the OpenFirmware
  RTAS and should not be registered.
- no-loopback-test: set to indicate that the port does not implements loopback
  test mode
- fifo-size: the fifo size of the UART.
- auto-flow-control: one way to enable automatic flow control support. The
  driver is allowed to detect support for the capability even without this
  property.
- tx-threshold: Specify the TX FIFO low water indication for parts with
  programmable TX FIFO thresholds.
- resets : phandle + reset specifier pairs
- overrun-throttle-ms : how long to pause uart rx when input overrun is encountered.
- {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD
  line respectively. It will use specified GPIO instead of the peripheral
  function pin for the UART feature. If unsure, don't specify this property.

Note:
* fsl,ns16550:
  ------------
  Freescale DUART is very similar to the PC16552D (and to a
  pair of NS16550A), albeit with some nonstandard behavior such as
  erratum A-004737 (relating to incorrect BRK handling).

  Represents a single port that is compatible with the DUART found
  on many Freescale chips (examples include mpc8349, mpc8548,
  mpc8641d, p4080 and ls2085a).

Example:

	uart@80230000 {
		compatible = "ns8250";
		reg = <0x80230000 0x100>;
		clock-frequency = <3686400>;
		interrupts = <10>;
		reg-shift = <2>;
	};

Example for OMAP UART using GPIO-based modem control signals:

	uart4: serial@49042000 {
		compatible = "ti,omap3-uart";
		reg = <0x49042000 0x400>;
		interrupts = <80>;
		ti,hwmods = "uart4";
		clock-frequency = <48000000>;
		cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>;
		rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
		dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
		dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
		dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
		rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
	};
