/*
 * Copyright 2016 United Western Technologies.
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 *
 */

/dts-v1/;
#include "imx6q.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	model = "Uniwest Evi";
	compatible = "uniwest,imx6q-evi", "fsl,imx6q";

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

	reg_usbh1_vbus: regulator-usbhubreset {
		compatible = "regulator-fixed";
		regulator-name = "usbh1_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		enable-active-high;
		startup-delay-us = <2>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usbh1_hubreset>;
		gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
	};

	reg_usb_otg_vbus: regulator-usbotgvbus {
		compatible = "regulator-fixed";
		regulator-name = "usb_otg_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usbotgvbus>;
		gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-always-on;
	};

	panel {
		compatible = "sharp,lq101k1ly04";

		port {
			panel_in: endpoint {
				remote-endpoint = <&lvds0_out>;
			};
		};
	};
};

&ecspi1 {
	cs-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1cs>;
	status = "okay";

	fpga: fpga@0 {
		compatible = "altr,fpga-passive-serial";
		spi-max-frequency = <20000000>;
		reg = <0>;
		pinctrl-0 = <&pinctrl_fpgaspi>;
		nconfig-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
		nstat-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
	};
};

&ecspi3 {
	cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>,
		<&gpio4 25 GPIO_ACTIVE_LOW>,
		<&gpio4 26 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi3 &pinctrl_ecspi3cs>;
	status = "okay";
};

&ecspi5 {
	cs-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>,
		<&gpio1 13 GPIO_ACTIVE_LOW>,
		<&gpio1 12 GPIO_ACTIVE_LOW>,
		<&gpio2 9 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi5 &pinctrl_ecspi5cs>;
	status = "okay";

	eeprom: m95m02@1 {
		compatible = "st,m95m02", "atmel,at25";
		size = <262144>;
		pagesize = <256>;
		address-width = <24>;
		spi-max-frequency = <5000000>;
		reg = <1>;
	};

	pb_rtc: rtc@3 {
		compatible = "nxp,rtc-pcf2123";
		spi-max-frequency = <2450000>;
		spi-cs-high;
		reg = <3>;
	};
};

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet>;
	phy-mode = "rgmii";
	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
	interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
			      <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
	fsl,err006687-workaround-present;
	status = "okay";
};

&gpmi {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_gpminand>;
	status = "okay";
};

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

&i2c3 {
	pinctrl-names = "default", "gpio";
	pinctrl-0 = <&pinctrl_i2c3>;
	pinctrl-1 = <&pinctrl_i2c3_gpio>;
	clock-frequency = <100000>;
	scl-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
	sda-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>;
	status = "okay";

	battery: sbs-battery@b {
		compatible = "sbs,sbs-battery";
		reg = <0x0b>;
		sbs,poll-retry-count = <100>;
		sbs,i2c-retry-count = <100>;
	};
};

&ldb {
	status = "okay";

	lvds0: lvds-channel@0 {
		status = "okay";

		port@4 {
			reg = <4>;
			lvds0_out: endpoint {
				remote-endpoint = <&panel_in>;
			};
		};
	};
};

&ssi1 {
	status = "okay";
};

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

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

&usbh1 {
	vbus-supply = <&reg_usbh1_vbus>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usbh1>;
	dr_mode = "host";
	disable-over-current;
	status = "okay";
};

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

&usdhc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc1>;
	non-removable;
	status = "okay";
};

&weim {
	ranges = <0 0 0x08000000 0x08000000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_weimfpga &pinctrl_weimcs>;
	status = "okay";
};

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

	pinctrl_hog: hoggrp {
		fsl,pins = <
			/* pwr mcu alert irq */
			MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x1b0b0
			/* remainder ???? */
			MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19 0x1b0b0
		>;
	};

	pinctrl_ecspi1: ecspi1grp {
		fsl,pins = <
			MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1
			MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1
			MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1
		>;
	};

	pinctrl_ecspi1cs: ecspi1csgrp {
		fsl,pins = <
			MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x1b0b0
		>;
	};

	pinctrl_ecspi3: ecspi3grp {
		fsl,pins = <
			MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x10068
			MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x10068
			MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x1f068
		>;
	};

	pinctrl_ecspi3cs: ecspi3csgrp {
		fsl,pins = <
			MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x1b0b0
			MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x1b0b0
			MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x1b0b0
			MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x1b0b0
		>;
	};

	pinctrl_ecspi5: ecspi5grp {
		fsl,pins = <
			MX6QDL_PAD_SD2_CLK__ECSPI5_SCLK 0x100b1
			MX6QDL_PAD_SD2_CMD__ECSPI5_MOSI 0x100b1
			MX6QDL_PAD_SD2_DAT0__ECSPI5_MISO 0x100b1
		>;
	};

	pinctrl_ecspi5cs: ecspi5csgrp {
		fsl,pins = <
			MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x1b0b0
			MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x1b0b0
			MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x1b0b0
			MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 0x1b0b0
		>;
	};

	pinctrl_enet: enetgrp {
		fsl,pins = <
			MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
			MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
			MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
			MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
			MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
			MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
			MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
			MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
			MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
			MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
			MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
			MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
			MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
			MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
			MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x4001b0a8
			MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0
			MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
		>;
	};

	pinctrl_fpgaspi: fpgaspigrp {
		fsl,pins = <
			MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0
			MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x1b0b0
		>;
	};

	pinctrl_gpminand: gpminandgrp {
		fsl,pins = <
			MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
			MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
			MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
			MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
			MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
			MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
			MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
			MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
			MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
			MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
			MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
			MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
			MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
			MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
			MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
			MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
			MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x00b1
		>;
	};

	pinctrl_i2c2: i2c2grp {
		fsl,pins = <
			MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
			MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
		>;
	};

	pinctrl_i2c3: i2c3grp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
			MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
		>;
	};

	pinctrl_i2c3_gpio: i2c3gpiogrp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x4001b8b1
			MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x4001b8b1
		>;
	};

	pinctrl_weimcs: weimcsgrp {
		fsl,pins = <
			MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0b1
			MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0b1
		>;
	};

	pinctrl_weimfpga: weimfpgagrp {
		fsl,pins = <
			/* weim misc */
			MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0b1
			MX6QDL_PAD_EIM_RW__EIM_RW 0xb0b1
			MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb060
			MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0xb0b1
			MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0xb0b1
			MX6QDL_PAD_EIM_EB0__EIM_EB0_B 0xb0b1
			MX6QDL_PAD_EIM_EB1__EIM_EB1_B 0xb0b1
			MX6QDL_PAD_EIM_EB2__EIM_EB2_B 0xb0b1
			MX6QDL_PAD_EIM_EB3__EIM_EB3_B 0xb0b1
			/* weim data */
			MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00 0x1b0b0
			MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01 0x1b0b0
			MX6QDL_PAD_CSI0_DAT4__EIM_DATA02 0x1b0b0
			MX6QDL_PAD_CSI0_DAT5__EIM_DATA03 0x1b0b0
			MX6QDL_PAD_CSI0_DAT6__EIM_DATA04 0x1b0b0
			MX6QDL_PAD_CSI0_DAT7__EIM_DATA05 0x1b0b0
			MX6QDL_PAD_CSI0_DAT8__EIM_DATA06 0x1b0b0
			MX6QDL_PAD_CSI0_DAT9__EIM_DATA07 0x1b0b0
			MX6QDL_PAD_CSI0_DAT12__EIM_DATA08 0x1b0b0
			MX6QDL_PAD_CSI0_DAT13__EIM_DATA09 0x1b0b0
			MX6QDL_PAD_CSI0_DAT14__EIM_DATA10 0x1b0b0
			MX6QDL_PAD_CSI0_DAT15__EIM_DATA11 0x1b0b0
			MX6QDL_PAD_CSI0_DAT16__EIM_DATA12 0x1b0b0
			MX6QDL_PAD_CSI0_DAT17__EIM_DATA13 0x1b0b0
			MX6QDL_PAD_CSI0_DAT18__EIM_DATA14 0x1b0b0
			MX6QDL_PAD_CSI0_DAT19__EIM_DATA15 0x1b0b0
			MX6QDL_PAD_EIM_D16__EIM_DATA16 0x1b0b0
			MX6QDL_PAD_EIM_D17__EIM_DATA17 0x1b0b0
			MX6QDL_PAD_EIM_D18__EIM_DATA18 0x1b0b0
			MX6QDL_PAD_EIM_D19__EIM_DATA19 0x1b0b0
			MX6QDL_PAD_EIM_D20__EIM_DATA20 0x1b0b0
			MX6QDL_PAD_EIM_D21__EIM_DATA21 0x1b0b0
			MX6QDL_PAD_EIM_D22__EIM_DATA22 0x1b0b0
			MX6QDL_PAD_EIM_D23__EIM_DATA23 0x1b0b0
			MX6QDL_PAD_EIM_D24__EIM_DATA24 0x1b0b0
			MX6QDL_PAD_EIM_D25__EIM_DATA25 0x1b0b0
			MX6QDL_PAD_EIM_D26__EIM_DATA26 0x1b0b0
			MX6QDL_PAD_EIM_D27__EIM_DATA27 0x1b0b0
			MX6QDL_PAD_EIM_D28__EIM_DATA28 0x1b0b0
			MX6QDL_PAD_EIM_D29__EIM_DATA29 0x1b0b0
			MX6QDL_PAD_EIM_D30__EIM_DATA30 0x1b0b0
			MX6QDL_PAD_EIM_D31__EIM_DATA31 0x1b0b0
			/* weim address */
			MX6QDL_PAD_EIM_A25__EIM_ADDR25 0xb0b1
			MX6QDL_PAD_EIM_A24__EIM_ADDR24 0xb0b1
			MX6QDL_PAD_EIM_A23__EIM_ADDR23 0xb0b1
			MX6QDL_PAD_EIM_A22__EIM_ADDR22 0xb0b1
			MX6QDL_PAD_EIM_A21__EIM_ADDR21 0xb0b1
			MX6QDL_PAD_EIM_A20__EIM_ADDR20 0xb0b1
			MX6QDL_PAD_EIM_A19__EIM_ADDR19 0xb0b1
			MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0b1
			MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0b1
			MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0b1
			MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0b1
			MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0b1
			MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0b1
			MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0b1
			MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0b1
			MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0b1
			MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0b1
			MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0b1
			MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0b1
			MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0b1
			MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0b1
			MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0b1
			MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0b1
			MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0b1
			MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0b1
			MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0b1
		>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
			MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
		>;
	};

	pinctrl_uart2: uart2grp {
		fsl,pins = <
			MX6QDL_PAD_SD3_DAT5__UART2_TX_DATA 0x1b0b1
			MX6QDL_PAD_SD3_DAT4__UART2_RX_DATA 0x1b0b1
			MX6QDL_PAD_SD3_CLK__UART2_RTS_B 0x1b0b1
			MX6QDL_PAD_SD3_CMD__UART2_CTS_B 0x1b0b1
		>;
	};

	pinctrl_usbh1: usbh1grp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0
			/* usbh1_b OC */
			MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0
		>;
	};

	pinctrl_usbh1_hubreset: usbh1hubresetgrp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0
		>;
	};

	pinctrl_usbotg: usbotggrp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
			MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
		>;
	};

	pinctrl_usbotgvbus: usbotgvbusgrp {
		fsl,pins = <
			MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x000b0
		>;
	};

	pinctrl_usdhc1: usdhc1grp {
		fsl,pins = <
			MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059
			MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059
			MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
			MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
			MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
			MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
		>;
	};
};
