/*
 * 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 = "Data Modul RealQ7 Board";
	compatible = "dmo,imx6q-realq7", "fsl,imx6q";

	chosen {
		linux,stdout-path = "/soc/aips-bus@02100000/serial@021e8000";
	};

	aliases {
		stmpe0 = &stmpe_1;
		stmpe1 = &stmpe_2;
		gpio7 = &stmpe_gpio_1;
		gpio8 = &stmpe_gpio_2;
	};

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

	di0 {
		compatible = "fsl,imx-parallel-display";
		interface-pix-fmt = "rgb24";
		crtcs = <&ipu1 0>;
	};

	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 = <&gpio7 12 0>;
		};

		reg_usb_host1: usb_host1_en {
			compatible = "regulator-fixed";
			regulator-name = "usb_host1_en";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio3 31 0>;
			enable-active-high;
		};
	};
};

&ecspi5 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi_5_1>;
	fsl,spi-num-chipselects = <1>;
	cs-gpios = <&gpio1 12 0>;
	status = "okay";

	flash: m25p80@0 {
		compatible = "m25p80";
		spi-max-frequency = <40000000>;
		reg = <0>;
	};
};

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet_1>;
	phy-mode = "rgmii";
	phy-reset-gpios = <&gpio3 23 0>;
	status = "okay";
};

&i2c2 {
	status = "okay";
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2
		     &pinctrl_stmpe_1_1
		     &pinctrl_stmpe_2_1>;

	stmpe_1: stmpe1601@40 {
		compatible = "stmpe1601";
		reg = <0x40>;
		interrupts = <30 0>;
		interrupt-parent = <&gpio3>;
		stmpe_gpio_1: stmpe_gpio {
			compatible = "st,stmpe-gpio";
		};
	};

	stmpe_2: stmpe1601@44 {
		compatible = "stmpe1601";
		reg = <0x44>;
		interrupts = <2 0>;
		interrupt-parent = <&gpio5>;
		stmpe_gpio_2: stmpe_gpio {
			compatible = "st,stmpe-gpio";
		};
	};

	temp1: ad7414@4c {
		compatible = "ad7414";
		reg = <0x4c>;
	};

	temp2: ad7414@4d {
		compatible = "ad7414";
		reg = <0x4d>;
	};

	rtc: m41t62@68 {
		compatible = "m41t62";
		reg = <0x68>;
	};

	pmic: pf0100@08 {
		compatible = "pf0100-regulator";
		reg = <0x08>;
		interrupt-parent = <&gpio3>;
		interrupts = <20 8>;

		regulators {
			reg_vddcore: sw1ab {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-always-on;
			};

			reg_vddsoc: sw1c {
				regulator-min-microvolt = <300000>;
				regulator-max-microvolt = <1875000>;
				regulator-always-on;
			};

			reg_gen_3v3: sw2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			reg_ddr_1v5a: sw3a {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-always-on;
			};

			reg_ddr_1v5b: sw3b {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-always-on;
			};

			reg_ddr_vtt: sw4 {
				regulator-min-microvolt = <400000>;
				regulator-max-microvolt = <1975000>;
				regulator-always-on;
			};

			reg_5v_600mA: swbst {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5150000>;
				regulator-always-on;
			};

			reg_snvs_3v: vsnvs {
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
			};

			reg_vrefddr: vrefddr {
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <750000>;
				regulator-always-on;
			};

			reg_vgen1_1v5: vgen1 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
				/* not used */
			};

			reg_vgen2_1v2_eth: vgen2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
				regulator-always-on;
			};

			reg_vgen3_2v8: vgen3 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			reg_vgen4_1v8: vgen4 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			reg_vgen5_1v8_eth: vgen5 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			reg_vgen6_3v3: vgen6 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};
		};
	};
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog>, <&pinctrl_pfuze_1>;

	hog {
		pinctrl_hog: hoggrp-1 {
			fsl,pins = <
				MX6Q_PAD_EIM_A16__GPIO2_IO22 0x80000000
				MX6Q_PAD_EIM_A17__GPIO2_IO21 0x80000000
			>;
		};
	};

	i2c2 {
		pinctrl_i2c2: i2c2grp {
			fsl,pins = <
				MX6Q_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
				MX6Q_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
			>;
		};
	};

	uart {
		pinctrl_uart1_2: uart1grp-2 {
			fsl,pins = <
				MX6Q_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
				MX6Q_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
			>;
		};
	};

	pfuze {
		pinctrl_pfuze_1: pfuze100grp1 {
			fsl,pins = <
				MX6Q_PAD_EIM_D20__GPIO3_IO20 0x198c0
			>;
		};
	};

	stmpe_1 {
		pinctrl_stmpe_1_1: stmpe1grp-1 {
			fsl,pins = <
				MX6Q_PAD_EIM_D30__GPIO3_IO30 0x80000000
			>;
		};
	};

	stmpe_2 {
		pinctrl_stmpe_2_1: stmpe2grp-1 {
			fsl,pins = <
				MX6Q_PAD_EIM_A25__GPIO5_IO02 0x80000000
			>;
		};
	};

	ecspi5 {
		pinctrl_ecspi_5_1: ecspi5rp-1 {
			fsl,pins = <
				MX6Q_PAD_SD1_DAT0__ECSPI5_MISO 0x80000000
				MX6Q_PAD_SD1_CMD__ECSPI5_MOSI 0x80000000
				MX6Q_PAD_SD2_DAT3__GPIO1_IO12 0x80000000 /* cs0: m25p80 */
			>;
		};
	};
};

&sata {
	status = "okay";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1_2>;
	status = "okay";
};

&uart2 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart2_1>;
};

&usbh1 {
	vbus-supply = <&reg_usb_host1>;
	status = "okay";
	disable-over-current;
};

&usbotg {
	vbus-supply = <&reg_usb_otg_vbus>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usbotg_1>;
	disable-over-current;
	status = "okay";
};

&usdhc3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc3_2>;
	vmmc-supply = <&reg_3p3v>;
	status = "okay";
};

&usdhc4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc4_1>;
	vmmc-supply = <&reg_3p3v>;
	non-removable;
	bus-width = <8>;
	status = "okay";
};
