/*
 * Copyright 2012 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
 */

/ {
	aliases {
		mxcfb0 = &mxcfb1;
		mxcfb1 = &mxcfb2;
		mxcfb2 = &mxcfb3;
		mxcfb3 = &mxcfb4;
	};

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

	battery: max8903@0 {
		compatible = "fsl,max8903-charger";
		pinctrl-names = "default";
		dok_input = <&gpio2 24 1>;
		uok_input = <&gpio1 27 1>;
		chg_input = <&gpio3 23 1>;
		flt_input = <&gpio5 2 1>;
		fsl,dcm_always_high;
		fsl,dc_valid;
		fsl,usb_valid;
		status = "okay";
	};

	hannstar_cabc {
		compatible = "hannstar,cabc";

		lvds0 {
			gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
		};

		lvds1 {
			gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;
		};
	};

	leds {
		compatible = "gpio-leds";

		charger-led {
			gpios = <&gpio1 2 0>;
			linux,default-trigger = "max8903-charger-charging";
			retain-state-suspended;
		};
	};

	regulators {
		compatible = "simple-bus";

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

		reg_usb_h1_vbus: usb_h1_vbus {
			compatible = "regulator-fixed";
			regulator-name = "usb_h1_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio1 29 0>;
			enable-active-high;
		};

		reg_audio: wm8962_supply {
			compatible = "regulator-fixed";
			regulator-name = "wm8962-supply";
			gpio = <&gpio4 10 0>;
			enable-active-high;
		};

		reg_mipi_dsi_pwr_on: mipi_dsi_pwr_on {
			compatible = "regulator-fixed";
			regulator-name = "mipi_dsi_pwr_on";
			gpio = <&gpio6 14 0>;
			enable-active-high;
		};

		reg_sensor: sensor_supply {
			compatible = "regulator-fixed";
			regulator-name = "sensor-supply";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio2 31 0>;
			startup-delay-us = <500>;
			enable-active-high;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		power {
			label = "Power Button";
			gpios = <&gpio3 29 1>;
			linux,code = <116>; /* KEY_POWER */
			gpio-key,wakeup;
		};

		volume-up {
			label = "Volume Up";
			gpios = <&gpio1 4 1>;
			linux,code = <115>; /* KEY_VOLUMEUP */
		};

		volume-down {
			label = "Volume Down";
			gpios = <&gpio1 5 1>;
			linux,code = <114>; /* KEY_VOLUMEDOWN */
		};
	};

	sound {
		compatible = "fsl,imx6q-sabresd-wm8962",
			   "fsl,imx-audio-wm8962";
		model = "wm8962-audio";
		cpu-dai = <&ssi2>;
		audio-codec = <&codec>;
		audio-routing =
			"Headphone Jack", "HPOUTL",
			"Headphone Jack", "HPOUTR",
			"Ext Spk", "SPKOUTL",
			"Ext Spk", "SPKOUTR",
			"MICBIAS", "AMIC",
			"IN3R", "MICBIAS",
			"DMIC", "MICBIAS",
			"DMICDAT", "DMIC";
		mux-int-port = <2>;
		mux-ext-port = <3>;
		hp-det-gpios = <&gpio7 8 1>;
		mic-det-gpios = <&gpio1 9 1>;
	};

	sound-hdmi {
		compatible = "fsl,imx6q-audio-hdmi",
			     "fsl,imx-audio-hdmi";
		model = "imx-audio-hdmi";
		hdmi-controller = <&hdmi_audio>;
	};

	mxcfb1: fb@0 {
		compatible = "fsl,mxc_sdc_fb";
		disp_dev = "ldb";
		interface_pix_fmt = "RGB666";
		default_bpp = <16>;
		int_clk = <0>;
		late_init = <0>;
		status = "disabled";
	};

	mxcfb2: fb@1 {
		compatible = "fsl,mxc_sdc_fb";
		disp_dev = "hdmi";
		interface_pix_fmt = "RGB24";
		mode_str ="1920x1080M@60";
		default_bpp = <24>;
		int_clk = <0>;
		late_init = <0>;
		status = "disabled";
	};

	mxcfb3: fb@2 {
		compatible = "fsl,mxc_sdc_fb";
		disp_dev = "lcd";
		interface_pix_fmt = "RGB565";
		mode_str ="CLAA-WVGA";
		default_bpp = <16>;
		int_clk = <0>;
		late_init = <0>;
		status = "disabled";
	};

	mxcfb4: fb@3 {
		compatible = "fsl,mxc_sdc_fb";
		disp_dev = "ldb";
		interface_pix_fmt = "RGB666";
		default_bpp = <16>;
		int_clk = <0>;
		late_init = <0>;
		status = "disabled";
	};

	lcd@0 {
		compatible = "fsl,lcd";
		ipu_id = <0>;
		disp_id = <0>;
		default_ifmt = "RGB565";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ipu1_1>;
		status = "okay";
	};

	backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm1 0 5000000>;
		brightness-levels = <0 4 8 16 32 64 128 255>;
		default-brightness-level = <7>;
	};

	v4l2_cap_0 {
		compatible = "fsl,imx6q-v4l2-capture";
		ipu_id = <0>;
		csi_id = <0>;
		mclk_source = <0>;
		status = "okay";
	};

	v4l2_cap_1 {
		compatible = "fsl,imx6q-v4l2-capture";
		ipu_id = <0>;
		csi_id = <1>;
		mclk_source = <0>;
		status = "okay";
	};

	v4l2_out {
		compatible = "fsl,mxc_v4l2_output";
		status = "okay";
	};

	mipi_dsi_reset: mipi-dsi-reset {
		compatible = "gpio-reset";
		reset-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
		reset-delay-us = <50>;
		#reset-cells = <0>;
	};
};

&audmux {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_audmux_2>;
	status = "okay";
};

&cpu0 {
	arm-supply = <&sw1a_reg>;
	soc-supply = <&sw1c_reg>;
	pu-supply = <&pu_dummy>; /* use pu_dummy if VDDSOC share with VDDPU */
};

&ecspi1 {
	fsl,spi-num-chipselects = <1>;
	cs-gpios = <&gpio4 9 0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi1_2>;
	status = "okay";

	flash: m25p80@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "st,m25p32";
		spi-max-frequency = <20000000>;
		reg = <0>;
	};
};

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

&gpc {
	fsl,cpu_pupscr_sw2iso = <0xf>;
	fsl,cpu_pupscr_sw = <0xf>;
	fsl,cpu_pdnscr_iso2sw = <0x1>;
	fsl,cpu_pdnscr_iso = <0x1>;
	fsl,ldo-bypass = <1>; /* use ldo-bypass, u-boot will check it and configure */
	fsl,wdog-reset = <2>; /* watchdog select of reset source */
	pu-supply = <&pu_dummy>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */
};

&wdog1 {
	status = "disabled";
};

&wdog2 {
	status = "okay";
};

&gpu {
	pu-supply = <&pu_dummy>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */
};

&hdmi_audio {
	status = "okay";
};

&hdmi_cec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hdmi_cec_2>;
	status = "okay";
};

&hdmi_core {
	ipu_id = <0>;
	disp_id = <0>;
	status = "okay";
};

&hdmi_video {
	fsl,phy_reg_vlev = <0x0294>;
	fsl,phy_reg_cksymtx = <0x800d>;
	status = "okay";
};

&i2c1 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c1_2>;
	status = "okay";

	codec: wm8962@1a {
		compatible = "wlf,wm8962";
		reg = <0x1a>;
		clocks = <&clks 201>;
		DCVDD-supply = <&reg_audio>;
		DBVDD-supply = <&reg_audio>;
		AVDD-supply = <&reg_audio>;
		CPVDD-supply = <&reg_audio>;
		MICVDD-supply = <&reg_audio>;
		PLLVDD-supply = <&reg_audio>;
		SPKVDD1-supply = <&reg_audio>;
		SPKVDD2-supply = <&reg_audio>;
		amic-mono;
		gpio-cfg = <
			0x0000 /* 0:Default */
			0x0000 /* 1:Default */
			0x0013 /* 2:FN_DMICCLK */
			0x0000 /* 3:Default */
			0x8014 /* 4:FN_DMICCDAT */
			0x0000 /* 5:Default */
		>;
       };

	ov564x: ov564x@3c {
		compatible = "ovti,ov564x";
		reg = <0x3c>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ipu1_2>;
		clocks = <&clks 201>;
		clock-names = "csi_mclk";
		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
		AVDD-supply = <&vgen3_reg>;  /* 2.8v, on rev C board is VGEN3,
						on rev B board is VGEN5 */
		DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
		pwn-gpios = <&gpio1 16 1>;   /* active low: SD1_DAT0 */
		rst-gpios = <&gpio1 17 0>;   /* active high: SD1_DAT1 */
		csi_id = <0>;
		mclk = <24000000>;
		mclk_source = <0>;
	};

	mma8451@1c {
		compatible = "fsl,mma8451";
		reg = <0x1c>;
		position = <0>;
		vdd-supply = <&reg_sensor>;
		vddio-supply = <&reg_sensor>;
		interrupt-parent = <&gpio1>;
		interrupts = <18 8>;
		interrupt-route = <1>;
	};
};

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

	hdmi: edid@50 {
		compatible = "fsl,imx6-hdmi-i2c";
		reg = <0x50>;
	};

	max11801@48 {
		compatible = "maxim,max11801";
		reg = <0x48>;
		interrupt-parent = <&gpio3>;
		interrupts = <26 2>;
		work-mode = <1>;/*DCM mode*/
	};

	ov5640_mipi: ov5640_mipi@3c { /* i2c2 driver */
		compatible = "ovti,ov5640_mipi";
		reg = <0x3c>;
		clocks = <&clks 201>;
		clock-names = "csi_mclk";
		DOVDD-supply = <&vgen4_reg>; /* 1.8v */
		AVDD-supply = <&vgen3_reg>;  /* 2.8v, rev C board is VGEN3
						rev B board is VGEN5 */
		DVDD-supply = <&vgen2_reg>;  /* 1.5v*/
		pwn-gpios = <&gpio1 19 1>;   /* active low: SD1_CLK */
		rst-gpios = <&gpio1 20 0>;   /* active high: SD1_DAT2 */
		csi_id = <1>;
		mclk = <24000000>;
		mclk_source = <0>;
	};

        egalax_ts@04 {
                compatible = "eeti,egalax_ts";
                reg = <0x04>;
                interrupt-parent = <&gpio6>;
                interrupts = <8 2>;
                wakeup-gpios = <&gpio6 8 0>;
        };
};

&i2c3 {
        clock-frequency = <100000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c3_2>;
        status = "okay";

        egalax_ts@04 {
                compatible = "eeti,egalax_ts";
                reg = <0x04>;
                interrupt-parent = <&gpio6>;
                interrupts = <7 2>;
                wakeup-gpios = <&gpio6 7 0>;
        };

	mag3110@0e {
		compatible = "fsl,mag3110";
		reg = <0x0e>;
		position = <2>;
		vdd-supply = <&reg_sensor>;
		vddio-supply = <&reg_sensor>;
		interrupt-parent = <&gpio3>;
		interrupts = <16 1>;
	};

	elan@10 {
		compatible = "elan,elan-touch";
		reg = <0x10>;
		interrupt-parent = <&gpio3>;
		interrupts = <28 3>;
		gpio_elan_cs = <&gpio2 18 0>;
		gpio_elan_rst = <&gpio3 8 0>;
		gpio_intr = <&gpio3 28 0>;
		status = "okay";
	};

	isl29023@44 {
		compatible = "fsl,isl29023";
		reg = <0x44>;
		rext = <499>;
		vdd-supply = <&reg_sensor>;
		interrupt-parent = <&gpio3>;
		interrupts = <9 2>;
	};
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog_1>;

	hog {
		pinctrl_hog_1: hoggrp-1 {
			fsl,pins = <
				MX6QDL_PAD_GPIO_4__GPIO1_IO04   0x80000000
				MX6QDL_PAD_GPIO_5__GPIO1_IO05   0x80000000
				MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x80000000
				MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x80000000
				MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x80000000
				MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x80000000
				MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x80000000
				MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000
				MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x130b0
				MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000
				MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x80000000
				MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x80000000
				MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x80000000
				MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x80000000
				MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000
				MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x80000000
				MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000
				MX6QDL_PAD_EIM_D22__GPIO3_IO22  0x80000000
				MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x80000000
				MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x80000000
				MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x80000000
				MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x80000000
				MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x80000000
				MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x80000000
				MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x80000000
				MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x80000000
				MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x80000000
				MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x80000000
				MX6QDL_PAD_GPIO_1__WDOG2_B 0x80000000
				MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x80000000
				MX6QDL_PAD_SD1_CMD__GPIO1_IO18 0x80000000
			>;
		};
	};
};

&ldb {
	status = "okay";

	lvds-channel@0 {
		fsl,data-mapping = "spwg";
		fsl,data-width = <18>;
		status = "okay";

		display-timings {
			native-mode = <&timing0>;
			timing0: hsd100pxn1 {
				clock-frequency = <65000000>;
				hactive = <1024>;
				vactive = <768>;
				hback-porch = <220>;
				hfront-porch = <40>;
				vback-porch = <21>;
				vfront-porch = <7>;
				hsync-len = <60>;
				vsync-len = <10>;
			};
		};
	};

	lvds-channel@1 {
		fsl,data-mapping = "spwg";
		fsl,data-width = <18>;
		primary;
		status = "okay";

		display-timings {
			native-mode = <&timing1>;
			timing1: hsd100pxn1 {
				clock-frequency = <65000000>;
				hactive = <1024>;
				vactive = <768>;
				hback-porch = <220>;
				hfront-porch = <40>;
				vback-porch = <21>;
				vfront-porch = <7>;
				hsync-len = <60>;
				vsync-len = <10>;
			};
		};
	};
};

&mipi_csi {
	status = "okay";
	ipu_id = <0>;
	csi_id = <1>;
	v_channel = <0>;
	lanes = <2>;
};

&mipi_dsi {
	dev_id = <0>;
	disp_id = <1>;
	lcd_panel = "TRULY-WVGA";
	disp-power-on-supply = <&reg_mipi_dsi_pwr_on>;
	resets = <&mipi_dsi_reset>;
	status = "okay";
};

&dcic1 {
	dcic_id = <0>;
	dcic_mux = "dcic-hdmi";
	status = "okay";
};

&dcic2 {
	dcic_id = <1>;
	dcic_mux = "dcic-lvds1";
	status = "okay";
};

&pcie {
	power-on-gpio = <&gpio3 19 0>;
	reset-gpio = <&gpio7 12 0>;
	status = "okay";
};


&pwm1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm1_1>;
	status = "okay";
};

&ssi2 {
	fsl,mode = "i2s-slave";
	status = "okay";
};

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

&usbh1 {
	vbus-supply = <&reg_usb_h1_vbus>;
	status = "okay";
};

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

&usdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc2_1>;
	cd-gpios = <&gpio2 2 0>;
	wp-gpios = <&gpio2 3 0>;
	no-1-8-v;
	keep-power-in-suspend;
	enable-sdio-wakeup;
	status = "okay";
};

&usdhc3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc3_1>;
	cd-gpios = <&gpio2 0 0>;
	wp-gpios = <&gpio2 1 0>;
	no-1-8-v;
	keep-power-in-suspend;
	enable-sdio-wakeup;
	status = "okay";
};

&usdhc4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc4_1>;
        bus-width = <8>;
        non-removable;
        no-1-8-v;
	keep-power-in-suspend;
        status = "okay";
};

&vpu {
	pu-supply = <&pu_dummy>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */
};
