/*
 * 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@02000000 { /* AIPS1 */
			spba-bus@02000000 {
				ecspi@02008000 { /* eCSPI1 */
					fsl,spi-num-chipselects = <1>;
					cs-gpios = <&gpio3 19 0>;
					pinctrl-names = "default";
					pinctrl-0 = <&pinctrl_ecspi1_1>;
					status = "okay";

					flash: m25p80@0 {
						compatible = "sst,sst25vf016b";
						spi-max-frequency = <20000000>;
						reg = <0>;
					};
				};

				ssi1: ssi@02028000 {
					fsl,mode = "i2s-slave";
					status = "okay";
				};
			};

			iomuxc@020e0000 {
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_gpio_hog>;

				gpios {
					pinctrl_gpio_hog: gpiohog {
						fsl,pins = <
							   144  0x80000000	/* MX6Q_PAD_EIM_D22__GPIO_3_22 */
							   121  0x80000000	/* MX6Q_PAD_EIM_D19__GPIO_3_19 */
							   >;
					};
				};
			};
		};

		aips-bus@02100000 { /* AIPS2 */
			usb@02184000 { /* USB OTG */
				vbus-supply = <&reg_usb_otg_vbus>;
				status = "okay";
			};

			usb@02184200 { /* USB1 */
				status = "okay";
			};

			ethernet@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";
			};

			audmux@021d8000 {
				status = "okay";
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_audmux_1>;
			};

			uart2: serial@021e8000 {
				status = "okay";
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_serial2_1>;
			};

			i2c@021a0000 { /* I2C1 */
				status = "okay";
				clock-frequency = <100000>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_i2c1_1>;

				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;
		};

		reg_usb_otg_vbus: usb_otg_vbus {
			compatible = "regulator-fixed";
			regulator-name = "usb_otg_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio3 22 0>;
			enable-active-high;
		};
	};

	sound {
		compatible = "fsl,imx6q-sabrelite-sgtl5000",
			     "fsl,imx-audio-sgtl5000";
		model = "imx6q-sabrelite-sgtl5000";
		ssi-controller = <&ssi1>;
		audio-codec = <&codec>;
		audio-routing =
			"MIC_IN", "Mic Jack",
			"Mic Jack", "Mic Bias",
			"Headphone Jack", "HP_OUT";
		mux-int-port = <1>;
		mux-ext-port = <4>;
	};
};
