* Samsung's Exynos SoC based boards

Required root node properties:
    - compatible = should be one or more of the following.
	- "samsung,artik5"	- for Exynos3250-based Samsung ARTIK5 module.
	- "samsung,artik5-eval" - for Exynos3250-based Samsung ARTIK5 eval board.
	- "samsung,monk"	- for Exynos3250-based Samsung Simband board.
	- "samsung,rinato"	- for Exynos3250-based Samsung Gear2 board.
	- "samsung,smdkv310"	- for Exynos4210-based Samsung SMDKV310 eval board.
	- "samsung,trats"	- for Exynos4210-based Tizen Reference board.
	- "samsung,universal_c210" - for Exynos4210-based Samsung board.
	- "samsung,smdk4412",	- for Exynos4412-based Samsung SMDK4412 eval board.
	- "samsung,trats2"	- for Exynos4412-based Tizen Reference board.
	- "samsung,smdk5250"	- for Exynos5250-based Samsung SMDK5250 eval board.
	- "samsung,xyref5260"	- for Exynos5260-based Samsung board.
	- "samsung,smdk5410"	- for Exynos5410-based Samsung SMDK5410 eval board.
	- "samsung,smdk5420"	- for Exynos5420-based Samsung SMDK5420 eval board.
	- "samsung,sd5v1"	- for Exynos5440-based Samsung board.
	- "samsung,ssdk5440"	- for Exynos5440-based Samsung board.

* Other companies Exynos SoC based
  * FriendlyARM
	- "friendlyarm,tiny4412"  - for Exynos4412-based FriendlyARM
				    TINY4412 board.

  * Google
	- "google,pi"		- for Exynos5800-based Google Peach Pi
				  Rev 10+ board,
	  also: "google,pi-rev16", "google,pi-rev15", "google,pi-rev14",
		"google,pi-rev13", "google,pi-rev12", "google,pi-rev11",
		"google,pi-rev10", "google,peach".

	- "google,pit"		- for Exynos5420-based Google Peach Pit
				  Rev 6+ (Exynos5420),
	  also: "google,pit-rev16", "google,pit-rev15", "google,pit-rev14",
		"google,pit-rev13", "google,pit-rev12", "google,pit-rev11",
		"google,pit-rev10", "google,pit-rev9", "google,pit-rev8",
		"google,pit-rev7", "google,pit-rev6", "google,peach".

	- "google,snow-rev4"	- for Exynos5250-based Google Snow board,
	  also: "google,snow"
	- "google,snow-rev5"	- for Exynos5250-based Google Snow
				  Rev 5+ board.
	- "google,spring"	- for Exynos5250-based Google Spring board.

  * Hardkernel
	- "hardkernel,odroid-u3"  - for Exynos4412-based Hardkernel Odroid U3.
	- "hardkernel,odroid-x"   - for Exynos4412-based Hardkernel Odroid X.
	- "hardkernel,odroid-x2"  - for Exynos4412-based Hardkernel Odroid X2.
	- "hardkernel,odroid-xu"  - for Exynos5410-based Hardkernel Odroid XU.
	- "hardkernel,odroid-xu3" - for Exynos5422-based Hardkernel Odroid XU3.
	- "hardkernel,odroid-xu3-lite" - for Exynos5422-based Hardkernel
					 Odroid XU3 Lite board.
	- "hardkernel,odroid-xu4" - for Exynos5422-based Hardkernel Odroid XU4.

  * Insignal
	- "insignal,arndale"      - for Exynos5250-based Insignal Arndale board.
	- "insignal,arndale-octa" - for Exynos5420-based Insignal Arndale
				    Octa board.
	- "insignal,origen"       - for Exynos4210-based Insignal Origen board.
	- "insignal,origen4412    - for Exynos4412-based Insignal Origen board.


Optional nodes:
    - firmware node, specifying presence and type of secure firmware:
        - compatible: only "samsung,secure-firmware" is currently supported
        - reg: address of non-secure SYSRAM used for communication with firmware

	firmware@0203F000 {
		compatible = "samsung,secure-firmware";
		reg = <0x0203F000 0x1000>;
	};
