/*
 * Copyright 2011 Freescale Semiconductor, Inc.
 * Copyright 2011 Linaro Ltd.
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
/include/ "imx6q.dtsi"

/ {
	model = "Freescale i.MX6 Quad SABRE Lite Board";
	compatible = "fsl,imx6q-sabrelite", "fsl,imx6q";

	memory {
		reg = <0x10000000 0x40000000>;
	};

	soc {
		aips-bus@02100000 { /* AIPS2 */
			enet@02188000 {
				phy-mode = "rgmii";
				phy-reset-gpios = <&gpio3 23 0>;
				status = "okay";
			};

			usdhc@02198000 { /* uSDHC3 */
				cd-gpios = <&gpio7 0 0>;
				wp-gpios = <&gpio7 1 0>;
				vmmc-supply = <&reg_3p3v>;
				status = "okay";
			};

			usdhc@0219c000 { /* uSDHC4 */
				cd-gpios = <&gpio2 6 0>;
				wp-gpios = <&gpio2 7 0>;
				vmmc-supply = <&reg_3p3v>;
				status = "okay";
			};

			uart2: uart@021e8000 {
				status = "okay";
			};

			i2c@021a0000 { /* I2C1 */
				status = "okay";
				clock-frequency = <100000>;

				codec: sgtl5000@0a {
					compatible = "fsl,sgtl5000";
					reg = <0x0a>;
					VDDA-supply = <&reg_2p5v>;
					VDDIO-supply = <&reg_3p3v>;
				};
			};
		};
	};

	regulators {
		compatible = "simple-bus";

		reg_2p5v: 2p5v {
			compatible = "regulator-fixed";
			regulator-name = "2P5V";
			regulator-min-microvolt = <2500000>;
			regulator-max-microvolt = <2500000>;
			regulator-always-on;
		};

		reg_3p3v: 3p3v {
			compatible = "regulator-fixed";
			regulator-name = "3P3V";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};
	};
};
