/*
 * Copyright (C) 2015 Freescale Semiconductor, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/dts-v1/;

#include <dt-bindings/input/input.h>
#include "imx7d.dtsi"

/ {
	model = "Freescale i.MX7 DDR3 12x12 ARM2 Board";
	compatible = "fsl,imx7d-12x12-ddr3-arm2", "fsl,imx7d";

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

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_gpio_keys>;

		volume-up {
			label = "Volume Up";
			gpios = <&gpio3 17 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
		};

		volume-down {
			label = "Volume Down";
			gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEDOWN>;
		};
	};

	pxp_v4l2_out {
		compatible = "fsl,imx7d-pxp-v4l2", "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2";
		status = "okay";
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		reg_sd3_vmmc: sd3_vmmc {
			compatible = "regulator-fixed";
			regulator-name = "VCC_SD3";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
			gpio = <&gpio6 11 GPIO_ACTIVE_HIGH>;
			enable-active-high;
		};

		reg_usb_otg1_vbus: regulator@0 {
			compatible = "regulator-fixed";
			reg = <0>;
			regulator-name = "usb_otg1_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio4 5 GPIO_ACTIVE_HIGH>;
			enable-active-high;
		};

		reg_usb_otg2_vbus: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "usb_otg2_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
			enable-active-high;
		};

		reg_vref_1v8: regulator@2 {
			compatible = "regulator-fixed";
			regulator-name = "vref-1v8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		reg_can1_3v3: can1-3v3 {
			compatible = "regulator-fixed";
			regulator-name = "can1-3v3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
		};

		reg_can2_3v3: can2-3v3 {
			compatible = "regulator-fixed";
			regulator-name = "can2-3v3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
		};
	};

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

&adc1 {
	vref-supply = <&reg_vref_1v8>;
	status = "okay";
};

&cpu0 {
	arm-supply = <&sw1a_reg>;
};

&ecspi4 {
	fsl,spi-num-chipselects = <4>;
	cs-gpios = <&gpio5 3 0>, <&gpio5 4 0>, <&gpio5 5 0>, <&gpio5 6 0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi4_1 &pinctrl_ecspi4_cs_1>;
	status = "disabled";

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

&epxp {
	status = "okay";
};

&flexcan1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan1>;
	xceiver-supply = <&reg_can1_3v3>;
	status = "disabled";
};

&flexcan2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flexcan2>;
	xceiver-supply = <&reg_can2_3v3>;
	status = "disabled";
};

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

	pmic: pfuze3000@08 {
		compatible = "fsl,pfuze3000";
		reg = <0x08>;

		regulators {
			sw1a_reg: sw1a {
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};
			/* use sw1c_reg to align with pfuze100/pfuze200 */
			sw1c_reg: sw1b {
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1475000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <6250>;
			};

			sw2_reg: sw2 {
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <1850000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw3a_reg: sw3 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1650000>;
				regulator-boot-on;
				regulator-always-on;
			};

			swbst_reg: swbst {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5150000>;
			};

			snvs_reg: vsnvs {
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <3000000>;
				regulator-boot-on;
				regulator-always-on;
			};

			vref_reg: vrefddr {
				regulator-boot-on;
				regulator-always-on;
			};

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

			vgen2_reg: vldo2 {
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1550000>;
			};

			vgen3_reg: vccsd {
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vgen4_reg: v33 {
				regulator-min-microvolt = <2850000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

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

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

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

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

	imx7d-12x12-ddr3-arm2 {
		pinctrl_hog_1: hoggrp-1 {
			fsl,pins = <
				MX7D_PAD_GPIO1_IO14__GPIO1_IO14 	0x59
				MX7D_PAD_GPIO1_IO15__GPIO1_IO15 	0x59
				MX7D_PAD_SD2_RESET_B__GPIO5_IO11 	0x59
			>;
		};

		pinctrl_ecspi4_cs_1: ecspi4_cs_grp-1 {
			fsl,pins = <
				MX7D_PAD_SD1_CLK__GPIO5_IO3 	0x2
				MX7D_PAD_SD1_CMD__GPIO5_IO4 	0x2
				MX7D_PAD_SD1_DATA0__GPIO5_IO5 	0x2
				MX7D_PAD_SD1_DATA1__GPIO5_IO6 	0x2
			>;
		};

		pinctrl_ecspi4_1: ecspi4grp-1 {
			fsl,pins = <
				MX7D_PAD_SD1_RESET_B__ECSPI4_SCLK 	0x2
				MX7D_PAD_SD1_WP__ECSPI4_MOSI 		0x2
				MX7D_PAD_SD1_CD_B__ECSPI4_MISO 	 	0x2
			>;
		};

		pinctrl_flexcan1: flexcan1grp {
			fsl,pins = <
				MX7D_PAD_SD3_DATA5__FLEXCAN1_TX 	0x59
				MX7D_PAD_SD3_DATA7__FLEXCAN1_RX 	0x59
			>;
		};

		pinctrl_flexcan2: flexcan2grp {
			fsl,pins = <
				MX7D_PAD_SD3_DATA6__FLEXCAN2_TX 	0x59
				MX7D_PAD_SD3_DATA4__FLEXCAN2_RX 	0x59
			>;
		};

		pinctrl_gpio_keys: gpio_keysgrp {
			fsl,pins = <
				MX7D_PAD_LCD_DATA12__GPIO3_IO17 0x32
				MX7D_PAD_LCD_DATA13__GPIO3_IO18 0x32
			>;
		};

		pinctrl_i2c3_1: i2c3grp-1 {
			fsl,pins = <
				MX7D_PAD_ENET1_RGMII_RD0__I2C3_SCL 0x4000007f
				MX7D_PAD_ENET1_RGMII_RD1__I2C3_SDA 0x4000007f
			>;
		};

		pinctrl_i2c4_1: i2c4grp-1 {
			fsl,pins = <
				MX7D_PAD_ENET1_RGMII_TD2__I2C4_SCL 0x4000007f
				MX7D_PAD_ENET1_RGMII_TD3__I2C4_SDA 0x4000007f
			>;
		};

		pinctrl_lcdif_dat: lcdifdatgrp {
			fsl,pins = <
				MX7D_PAD_EPDC_DATA00__LCD_DATA0  0x4001b0b0
				MX7D_PAD_EPDC_DATA01__LCD_DATA1  0x4001b0b0
				MX7D_PAD_EPDC_DATA02__LCD_DATA2  0x4001b0b0
				MX7D_PAD_EPDC_DATA03__LCD_DATA3  0x4001b0b0
				MX7D_PAD_EPDC_DATA04__LCD_DATA4  0x4001b0b0
				MX7D_PAD_EPDC_DATA05__LCD_DATA5  0x4001b0b0
				MX7D_PAD_EPDC_DATA06__LCD_DATA6  0x4001b0b0
				MX7D_PAD_EPDC_DATA07__LCD_DATA7  0x4001b0b0
				MX7D_PAD_EPDC_DATA08__LCD_DATA8  0x4001b0b0
				MX7D_PAD_EPDC_DATA09__LCD_DATA9  0x4001b0b0
				MX7D_PAD_EPDC_DATA10__LCD_DATA10 0x4001b0b0
				MX7D_PAD_EPDC_DATA11__LCD_DATA11 0x4001b0b0
				MX7D_PAD_EPDC_DATA12__LCD_DATA12 0x4001b0b0
				MX7D_PAD_EPDC_DATA13__LCD_DATA13 0x4001b0b0
				MX7D_PAD_EPDC_DATA14__LCD_DATA14 0x4001b0b0
				MX7D_PAD_EPDC_DATA15__LCD_DATA15 0x4001b0b0
				MX7D_PAD_EPDC_SDLE__LCD_DATA16   0x4001b0b0
				MX7D_PAD_EPDC_SDOE__LCD_DATA17   0x4001b0b0
				MX7D_PAD_EPDC_SDSHR__LCD_DATA18  0x4001b0b0
				MX7D_PAD_EPDC_SDCE0__LCD_DATA19  0x4001b0b0
				MX7D_PAD_EPDC_SDCE1__LCD_DATA20  0x4001b0b0
				MX7D_PAD_EPDC_SDCE2__LCD_DATA21  0x4001b0b0
				MX7D_PAD_EPDC_SDCE3__LCD_DATA22  0x4001b0b0
				MX7D_PAD_EPDC_GDCLK__LCD_DATA23  0x4001b0b0
			>;
		};

		pinctrl_lcdif_ctrl: lcdifctrlgrp {
			fsl,pins = <
				MX7D_PAD_EPDC_SDCLK__LCD_CLK 		0x4001b0b0
				MX7D_PAD_EPDC_BDR1__LCD_ENABLE 		0x4001b0b0
				MX7D_PAD_EPDC_PWR_STAT__LCD_VSYNC 	0x4001b0b0
				MX7D_PAD_EPDC_PWR_COM__LCD_HSYNC 	0x4001b0b0
			>;
		};

		pinctrl_pwm1: pwm1grp {
			fsl,pins = <
				MX7D_PAD_GPIO1_IO08__PWM1_OUT 0x110b0
			>;
		};

		pinctrl_uart1_1: uart1grp-1 {
			fsl,pins = <
				MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x79
				MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX 0x79
			>;
		};

		pinctrl_usdhc2_1: usdhc2grp-1 {
			fsl,pins = <
				MX7D_PAD_SD2_CMD__SD2_CMD     	0x59
				MX7D_PAD_SD2_CLK__SD2_CLK     	0x19
				MX7D_PAD_SD2_DATA0__SD2_DATA0 	0x59
				MX7D_PAD_SD2_DATA1__SD2_DATA1 	0x59
				MX7D_PAD_SD2_DATA2__SD2_DATA2 	0x59
				MX7D_PAD_SD2_DATA3__SD2_DATA3 	0x59
				MX7D_PAD_ECSPI1_SCLK__SD2_DATA4 0x59
				MX7D_PAD_ECSPI1_MOSI__SD2_DATA5 0x59
				MX7D_PAD_ECSPI1_MISO__SD2_DATA6 0x59
				MX7D_PAD_ECSPI1_SS0__SD2_DATA7 	0x59
			>;
		};

		pinctrl_usdhc2_1_100mhz: usdhc2grp-1_100mhz {
			fsl,pins = <
				MX7D_PAD_SD2_CMD__SD2_CMD     	0x5a
				MX7D_PAD_SD2_CLK__SD2_CLK     	0x1a
				MX7D_PAD_SD2_DATA0__SD2_DATA0 	0x5a
				MX7D_PAD_SD2_DATA1__SD2_DATA1 	0x5a
				MX7D_PAD_SD2_DATA2__SD2_DATA2 	0x5a
				MX7D_PAD_SD2_DATA3__SD2_DATA3 	0x5a
				MX7D_PAD_ECSPI1_SCLK__SD2_DATA4 0x5a
				MX7D_PAD_ECSPI1_MOSI__SD2_DATA5 0x5a
				MX7D_PAD_ECSPI1_MISO__SD2_DATA6 0x5a
				MX7D_PAD_ECSPI1_SS0__SD2_DATA7 	0x5a
			>;
		};

		pinctrl_usdhc2_1_200mhz: usdhc2grp-1_200mhz {
			fsl,pins = <
				MX7D_PAD_SD2_CMD__SD2_CMD     	0x5b
				MX7D_PAD_SD2_CLK__SD2_CLK     	0x1b
				MX7D_PAD_SD2_DATA0__SD2_DATA0 	0x5b
				MX7D_PAD_SD2_DATA1__SD2_DATA1 	0x5b
				MX7D_PAD_SD2_DATA2__SD2_DATA2 	0x5b
				MX7D_PAD_SD2_DATA3__SD2_DATA3 	0x5b
				MX7D_PAD_ECSPI1_SCLK__SD2_DATA4 0x5b
				MX7D_PAD_ECSPI1_MOSI__SD2_DATA5 0x5b
				MX7D_PAD_ECSPI1_MISO__SD2_DATA6 0x5b
				MX7D_PAD_ECSPI1_SS0__SD2_DATA7 	0x5b
			>;
		};

		pinctrl_usdhc3_1: usdhc3grp-1 {
			fsl,pins = <
				MX7D_PAD_SD3_CMD__SD3_CMD	    0x59
				MX7D_PAD_SD3_CLK__SD3_CLK	    0x19
				MX7D_PAD_SD3_DATA0__SD3_DATA0   0x59
				MX7D_PAD_SD3_DATA1__SD3_DATA1   0x59
				MX7D_PAD_SD3_DATA2__SD3_DATA2   0x59
				MX7D_PAD_SD3_DATA3__SD3_DATA3   0x59
			>;
		};
	};
};

&iomuxc_lpsr {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog_2>;

	imx7d-12x12-ddr3-arm2 {
		pinctrl_hog_2: hoggrp-2 {
			fsl,pins = <
				MX7D_PAD_LPSR_GPIO1_IO02__GPIO1_IO2	0x59 /* flexcan stby1 */
				MX7D_PAD_LPSR_GPIO1_IO03__GPIO1_IO3	0x59 /* flexcan stby2 */
				MX7D_PAD_LPSR_GPIO1_IO01__ANATOP_24M_OUT	0x80000000
			>;
		};

		pinctrl_i2c1_1: i2c1grp-1 {
			fsl,pins = <
				MX7D_PAD_LPSR_GPIO1_IO04__I2C1_SCL	0x4000007f
				MX7D_PAD_LPSR_GPIO1_IO05__I2C1_SDA	0x4000007f
			>;
		};

		pinctrl_i2c2_1: i2c2grp-1 {
			fsl,pins = <
				MX7D_PAD_LPSR_GPIO1_IO06__I2C2_SCL	0x4000007f
				MX7D_PAD_LPSR_GPIO1_IO07__I2C2_SDA	0x4000007f
			>;
		};
	};
};

&lcdif {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lcdif_dat
		     &pinctrl_lcdif_ctrl>;
	display = <&display0>;
	status = "okay";

	display0: display {
		bits-per-pixel = <16>;
		bus-width = <24>;

		display-timings {
			native-mode = <&timing0>;
			timing0: timing0 {
				clock-frequency = <33500000>;
				hactive = <800>;
				vactive = <480>;
				hback-porch = <89>;
				hfront-porch = <164>;
				vback-porch = <23>;
				vfront-porch = <10>;
				hsync-len = <10>;
				vsync-len = <10>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <0>;
			};
		};
	};
};

&sdma {
	status = "okay";
};

&pcie {
	pinctrl-names = "default";
	status = "disabled";
};

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

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

&usbh {
	status = "okay";
};

&usbotg1 {
	vbus-supply = <&reg_usb_otg1_vbus>;
	srp-disable;
	hnp-disable;
	adp-disable;
	status = "okay";
};

&usbotg2 {
	vbus-supply = <&reg_usb_otg2_vbus>;
	srp-disable;
	hnp-disable;
	adp-disable;
	status = "okay";
};

&usdhc2 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc2_1>;
	pinctrl-1 = <&pinctrl_usdhc2_1_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_1_200mhz>;
	assigned-clocks = <&clks IMX7D_USDHC2_ROOT_CLK>;
	assigned-clocks-rates = <400000000>;
	bus-width = <8>;
	tuning-step = <2>;
	non-removable;
	keep-power-in-suspend;
	status = "okay";
};

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