// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright 2014 General Electric Company
 *
 * 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
 *     version 2 as published by the Free Software Foundation.
 *
 *     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 "imx53.dtsi"
#include "imx53-ppd-uboot.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "General Electric CS ONE";
	compatible = "ge,imx53-cpuvo", "fsl,imx53";

	aliases {
		spi0 = &cspi;
		spi1 = &ecspi1;
		spi2 = &ecspi2;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory@70000000 {
		device_type = "memory";
		reg = <0x70000000 0x20000000>,
		      <0xb0000000 0x20000000>;
	};

	cko2_11M: sgtl-clock-cko2 {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <11289600>;
	};

	sgtlsound: sound {
		compatible = "fsl,imx53-cpuvo-sgtl5000",
			     "fsl,imx-audio-sgtl5000";
		model = "imx53-cpuvo-sgtl5000";
		ssi-controller = <&ssi2>;
		audio-codec = <&sgtl5000>;
		audio-routing =
			"MIC_IN", "Mic Jack",
			"Mic Jack", "Mic Bias",
			"Headphone Jack", "HP_OUT";
		mux-int-port = <2>;
		mux-ext-port = <6>;
	};

	reg_sgtl5k: regulator-sgtl5k {
		compatible = "regulator-fixed";
		regulator-name = "regulator-sgtl5k";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	reg_usb_otg_vbus: regulator-usb-otg-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usbotg_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		pinctrl-0 = <&pinctrl_usb_otg_vbus>;
		gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_usb_vbus: regulator-usb-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usbh1_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};

	reg_usbh2_vbus: regulator-usbh2-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usbh2_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usbh2_vbus>;
		gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_usbh3_vbus: regulator-usbh3-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usbh3_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usbh3_vbus>;
		gpio = <&gpio5 27 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_tsiref: regulator-tsiref {
		compatible = "regulator-fixed";
		regulator-name = "tsiref";
		regulator-min-microvolt = <2500000>;
		regulator-max-microvolt = <2500000>;
		regulator-always-on;
	};

	reg_3v3: regulator-3v3 {
		/* TPS54320 */
		compatible = "regulator-fixed";
		regulator-name = "3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	reg_3v3_lcd: regulator-3v3-lcd {
		/* MIC2009 */
		compatible = "regulator-fixed";
		regulator-name = "LCD_3V3";
		vin-supply = <&reg_3v3>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	pwm_bl: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm2 0 50000>;
		brightness-levels = <0 2 5 7 10 12 15 17 20 22 25 28 30 33 35
				     38 40 43 45 48 51 53 56 58 61 63 66 68 71
				     73 76 79 81 84 86 89 91 94 96 99 102 104
				     107 109 112 114 117 119 122 124 127 130
				     132 135 137 140 142 145 147 150 153 155
				     158 160 163 165 168 170 173 175 178 181
				     183 186 188 191 193 196 198 201 204 206
				     209 211 214 216 219 221 224 226 229 232
				     234 237 239 242 244 247 249 252 255>;
		default-brightness-level = <0>;
		enable-gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
		power-supply = <&reg_3v3_lcd>;
	};

	leds {
		compatible = "pwm-leds";

		alarm-brightness {
			pwms = <&pwm1 0 100000>;
			max-brightness = <255>;
		};
	};

	gpio-poweroff {
		compatible = "gpio-poweroff";
		gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>;
	};

	gpio-restart {
		compatible = "gpio-restart";
		gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
		active-delay = <100>;
		inactive-delay = <10>;
		wait-delay = <100>;
	};

	power-gpio-keys {
		compatible = "gpio-keys";

		power-button {
			label = "Power button";
			gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
			linux,code = <KEY_POWER>;
		};
	};

	touch-lock-key {
		compatible = "gpio-keys";

		touch-lock-button {
			label = "Touch lock button";
			gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_F12>;
		};
	};

	usbphy2: usbphy-2 {
		compatible = "usb-nop-xceiv";
		vcc-supply = <&reg_3v3>;
		reset-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
		clock-names = "main_clk";
		clock-frequency = <24000000>;
		clocks = <&clks IMX5_CLK_CKO2>;
		assigned-clocks = <&clks IMX5_CLK_CKO2_SEL>, <&clks IMX5_CLK_OSC>;
		assigned-clock-parents = <&clks IMX5_CLK_OSC>;
	};

	usbphy3: usbphy-3 {
		compatible = "usb-nop-xceiv";
		vcc-supply = <&reg_3v3>;
		reset-gpios = <&gpio2 19 GPIO_ACTIVE_LOW>;
		clock-names = "main_clk";

		clock-frequency = <24000000>;
		clocks = <&clks IMX5_CLK_CKO2>;
		assigned-clocks = <&clks IMX5_CLK_CKO2_SEL>, <&clks IMX5_CLK_OSC>;
		assigned-clock-parents = <&clks IMX5_CLK_OSC>;
	};

	panel-lvds0 {
		compatible = "nvd,9128";
		power-supply = <&reg_3v3_lcd>;

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

&usbphy0 {
	vcc-supply = <&reg_3v3>;
};

&usbphy1 {
	vcc-supply = <&reg_3v3>;
};

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

&cpu0 {
	/* CPU rated to 1GHz, not 1.2GHz as per the default settings */
	operating-points = <
		/* kHz   uV */
		166666  850000
		400000  900000
		800000  1050000
		1000000 1200000
	>;
};

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

	spidev0: spi@0 {
		compatible = "ge,achc";
		reg = <0>;
		spi-max-frequency = <1000000>;
	};

	spidev1: spi@1 {
		compatible = "ge,achc";
		reg = <1>;
		spi-max-frequency = <1000000>;
	};

	gpioxra0: gpio@2 {
		compatible = "exar,xra1403";
		reg = <2>;
		gpio-controller;
		#gpio-cells = <2>;
		spi-max-frequency = <1000000>;
	};

	gpioxra1: gpio@3 {
		compatible = "exar,xra1403";
		reg = <3>;
		gpio-controller;
		#gpio-cells = <2>;
		spi-max-frequency = <1000000>;
	};
};

&ecspi2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi2>;
	cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>;
	status = "okay";

	da9053@0 {
		compatible = "dlg,da9053-aa";
		reg = <0>;
		interrupt-parent = <&gpio3>;
		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
		spi-max-frequency = <1000000>;
		dlg,tsi-as-adc;
		tsiref-supply = <&reg_tsiref>;

		regulators {
			buck1_reg: buck1 {
				regulator-name = "BUCKCORE";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <2075000>;
				regulator-always-on;
			};

			buck2_reg: buck2 {
				regulator-name = "BUCKPRO";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <2075000>;
				regulator-always-on;
			};

			buck3_reg: buck3 {
				regulator-name = "BUCKMEM";
				regulator-min-microvolt = <925000>;
				regulator-max-microvolt = <2500000>;
				regulator-always-on;
			};

			buck4_reg: buck4 {
				regulator-name = "BUCKPERI";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3600000>;
				regulator-always-on;
			};

			ldo1_reg: ldo1 {
				regulator-name = "ldo1_1v3";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo2_reg: ldo2 {
				regulator-name = "ldo2_1v3";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo3_reg: ldo3 {
				regulator-name = "ldo3_3v3";
				regulator-min-microvolt = <1725000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			ldo4_reg: ldo4 {
				regulator-name = "ldo4_2v775";
				regulator-min-microvolt = <1725000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			ldo5_reg: ldo5 {
				regulator-name = "ldo5_3v3";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3600000>;
				regulator-always-on;
			};

			ldo6_reg: ldo6 {
				regulator-name = "ldo6_1v3";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3600000>;
				regulator-always-on;
			};

			ldo7_reg: ldo7 {
				regulator-name = "ldo7_2v75";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3600000>;
				regulator-always-on;
			};

			ldo8_reg: ldo8 {
				regulator-name = "ldo8_1v8";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3600000>;
				regulator-always-on;
			};

			ldo9_reg: ldo9 {
				regulator-name = "ldo9_1v5";
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <3650000>;
				regulator-always-on;
			};

			ldo10_reg: ldo10 {
				regulator-name = "ldo10_1v3";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <3600000>;
				regulator-always-on;
			};
		};
	};

};

&esdhc3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esdhc3>;
	bus-width = <8>;
	non-removable;
	status = "okay";
};

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fec>;
	phy-supply = <&reg_3v3>;
	phy-mode = "rmii";
	phy-reset-gpios = <&gpio2 16 GPIO_ACTIVE_LOW>;
	status = "okay";
};

&i2c1 {
	pinctrl-names = "default", "gpio";
	pinctrl-0 = <&pinctrl_i2c1>;
	pinctrl-1 = <&pinctrl_i2c1_gpio>;
	sda-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
	scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
	status = "okay";

	i2c-switch@70 {
		compatible = "nxp,pca9547";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x70>;
		reset-gpios = <&gpio2 18 GPIO_ACTIVE_LOW>;

		i2c4: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;

			sgtl5000: codec@a {
				compatible = "fsl,sgtl5000";
				reg = <0xa>;
				#sound-dai-cells = <0>;
				VDDA-supply = <&reg_sgtl5k>;
				VDDIO-supply = <&reg_sgtl5k>;
				clocks = <&cko2_11M>;
				status = "okay";
			};
		};

		i2c5: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;

			rtc@30 {
			       compatible = "sii,s35390a";
			       reg = <0x30>;
			};

			temp@48 {
				compatible = "ti,tmp112";
				reg = <0x48>;
			};

			mma8453q: accelerometer@1c {
				compatible = "fsl,mma8453";
				reg = <0x1c>;
				interrupt-parent = <&gpio1>;
				interrupts = <6 IRQ_TYPE_NONE>;
				interrupt-names = "INT1";
			};

			mpl3115: pressure-sensor@60 {
				compatible = "fsl,mpl3115";
				reg = <0x60>;
			};

			eeprom: eeprom@50 {
				compatible = "atmel,24c08";
				reg = <0x50>;
			};
		};

		i2c6: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
		};

		i2c7: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
		};

		i2c8: i2c@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;
		};

		i2c9: i2c@5 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <5>;
		};

		i2c10: i2c@6 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <6>;
		};

		i2c11: i2c@7 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <7>;
		};
	};
};

&i2c2 {
	pinctrl-names = "default", "gpio";
	pinctrl-0 = <&pinctrl_i2c2>;
	pinctrl-1 = <&pinctrl_i2c2_gpio>;
	sda-gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
	scl-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
	status = "okay";

	touchscreen@4b {
		compatible = "atmel,maxtouch";
		reset-gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>;
		reg = <0x4b>;
		interrupt-parent = <&gpio5>;
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
	};
};

&i2c3 {
	pinctrl-names = "default", "gpio";
	pinctrl-0 = <&pinctrl_i2c3>;
	pinctrl-1 = <&pinctrl_i2c3_gpio>;
	sda-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
	scl-gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&ldb {
	status = "okay";

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

		port@2 {
			lvds0_out: endpoint {
				remote-endpoint = <&panel_in_lvds0>;
			};
		};
	};
};

&pmu {
	secure-reg-access;
};

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

&pwm2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm2>;
	status = "okay";
};

&ssi2 {
	status = "okay";
};

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

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

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3>;
	uart-has-rtscts;
	status = "okay";
};

&uart4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart4>;
	status = "okay";
};

&uart5 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart5>;
	status = "okay";
};

&usbotg {
	dr_mode = "otg";
	phy_type = "utmi";
	vbus-supply = <&reg_usb_otg_vbus>;
	pinctrl-0 = <&pinctrl_usb_otg>;
	status = "okay";
};

&usbh1 {
	vbus-supply = <&reg_usb_vbus>;
	phy_type = "utmi";
	dr_mode = "host";
	status = "okay";
};

&usbh2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usbh2>;
	phy_type = "ulpi";
	dr_mode = "host";
	fsl,usbphy = <&usbphy2>;
	vbus-supply = <&reg_usbh2_vbus>;
	status = "okay";
};

&usbh3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usbh3>;
	phy_type = "ulpi";
	dr_mode = "host";
	vbus-supply = <&reg_usbh3_vbus>;
	fsl,usbphy = <&usbphy3>;
	status = "okay";
};

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

	pinctrl_audmux: audmuxgrp {
		fsl,pins = <
			MX53_PAD_DISP0_DAT19__AUDMUX_AUD5_RXD	0x400
			MX53_PAD_DISP0_DAT17__AUDMUX_AUD5_TXD	0x400
			MX53_PAD_DISP0_DAT16__AUDMUX_AUD5_TXC	0x400
			MX53_PAD_DISP0_DAT18__AUDMUX_AUD5_TXFS	0x400
			MX53_PAD_DI0_PIN15__AUDMUX_AUD6_TXC	0x400
			MX53_PAD_DI0_PIN3__AUDMUX_AUD6_TXFS	0x400
			MX53_PAD_DI0_PIN4__AUDMUX_AUD6_RXD	0x400
			MX53_PAD_DI0_PIN2__AUDMUX_AUD6_TXD	0x400
		>;
	};

	pinctrl_ecspi1: ecspi1grp {
		fsl,pins = <
			MX53_PAD_DISP0_DAT21__ECSPI1_MOSI	0x400
			MX53_PAD_DISP0_DAT22__ECSPI1_MISO	0x400
			MX53_PAD_DISP0_DAT20__ECSPI1_SCLK	0x400
			/* ECSPI1_SS0, must treat as GPIO for EzPort */
			MX53_PAD_DISP0_DAT23__GPIO5_17		0x400
			MX53_PAD_KEY_COL2__GPIO4_10		0x0
			MX53_PAD_KEY_ROW2__GPIO4_11		0x0
			MX53_PAD_KEY_COL3__GPIO4_12		0x0
		>;
	};

	pinctrl_ecspi2: ecspi2grp {
		fsl,pins = <
			MX53_PAD_EIM_CS1__ECSPI2_MOSI		0x0
			MX53_PAD_EIM_OE__ECSPI2_MISO		0x0
			MX53_PAD_EIM_CS0__ECSPI2_SCLK		0x0
			MX53_PAD_EIM_RW__GPIO2_26		0x0
		>;
	};

	pinctrl_esdhc1: esdhc1grp {
		fsl,pins = <
			MX53_PAD_SD1_DATA0__ESDHC1_DAT0		0x1d5
			MX53_PAD_SD1_DATA1__ESDHC1_DAT1		0x1d5
			MX53_PAD_SD1_DATA2__ESDHC1_DAT2		0x1d5
			MX53_PAD_SD1_DATA3__ESDHC1_DAT3		0x1d5
			MX53_PAD_SD1_CMD__ESDHC1_CMD		0x1d5
			MX53_PAD_SD1_CLK__ESDHC1_CLK		0x1d5
		>;
	};

	pinctrl_esdhc3: esdhc3grp {
		fsl,pins = <
			MX53_PAD_PATA_DATA8__ESDHC3_DAT0	0x1d5
			MX53_PAD_PATA_DATA9__ESDHC3_DAT1	0x1d5
			MX53_PAD_PATA_DATA10__ESDHC3_DAT2	0x1d5
			MX53_PAD_PATA_DATA11__ESDHC3_DAT3	0x1d5
			MX53_PAD_PATA_DATA0__ESDHC3_DAT4	0x1d5
			MX53_PAD_PATA_DATA1__ESDHC3_DAT5	0x1d5
			MX53_PAD_PATA_DATA2__ESDHC3_DAT6	0x1d5
			MX53_PAD_PATA_DATA3__ESDHC3_DAT7	0x1d5
			MX53_PAD_PATA_RESET_B__ESDHC3_CMD	0x1d5
			MX53_PAD_PATA_IORDY__ESDHC3_CLK		0x1d5
		>;
	};

	pinctrl_fec: fecgrp {
		fsl,pins = <
			MX53_PAD_FEC_MDC__FEC_MDC		0x0
			MX53_PAD_FEC_MDIO__FEC_MDIO		0x0
			MX53_PAD_FEC_REF_CLK__FEC_TX_CLK	0x0
			MX53_PAD_FEC_RX_ER__FEC_RX_ER		0x0
			MX53_PAD_FEC_CRS_DV__FEC_RX_DV		0x0
			MX53_PAD_FEC_RXD1__FEC_RDATA_1		0x0
			MX53_PAD_FEC_RXD0__FEC_RDATA_0		0x0
			MX53_PAD_FEC_TX_EN__FEC_TX_EN		0x0
			MX53_PAD_FEC_TXD1__FEC_TDATA_1		0x0
			MX53_PAD_FEC_TXD0__FEC_TDATA_0		0x0
		>;
	};

	pinctrl_hog_rev6: hoggrp {
		fsl,pins = <
			/* CKO2 */
			MX53_PAD_GPIO_3__CCM_CLKO2		0x4
			/* DEFIB_SYNC_MARKER_IN_IRQ */
			MX53_PAD_GPIO_5__GPIO1_5		0x0
			/* ACCELEROMETER_DATA_RDY_N */
			MX53_PAD_GPIO_6__GPIO1_6		0x0
			/* TEMPERATURE_ALERT_N */
			MX53_PAD_GPIO_7__GPIO1_7		0x0
			/* BAROMETRIC_PRESSURE_DATA_RDY_N */
			MX53_PAD_GPIO_8__GPIO1_8		0x0
			/* DOCKING_I2C_INTERFACE_IRQ_N */
			MX53_PAD_PATA_DATA4__GPIO2_4		0x0
			/* PWR_OUT_TO_DOCK_FAULT_N */
			MX53_PAD_PATA_DATA5__GPIO2_5		0x0
			/* ENABLE_PWR_TO_DOCK_N */
			MX53_PAD_PATA_DATA6__GPIO2_6		0x0
			/* HOST_CONTROLLED_RESET_TO_DOCKING_CONNECTOR_N */
			MX53_PAD_PATA_DATA7__GPIO2_7		0x0
			/* REMOTE_ON_REQUEST_FROM_DOCKING_CONNECTOR_IS_ACTIVE_N */
			MX53_PAD_PATA_DATA12__GPIO2_12		0x0
			/* DOCK_PRESENT_N */
			MX53_PAD_PATA_DATA13__GPIO2_13		0x0
			/* ECG_MARKER_IN_FROM_DOCKING_CONNECTOR_IRQ */
			MX53_PAD_PATA_DATA14__GPIO2_14		0x0
			/* ENABLE_ECG_MARKER_INTERFACE_TO_DOCKING_CONNECTOR */
			MX53_PAD_PATA_DATA15__GPIO2_15		0x0
			/* RESET_IMX535_ETHERNET_PHY_N */
			MX53_PAD_EIM_A22__GPIO2_16		0x0
			/* ENABLE_PWR_TO_LCD_AND_UI_INTERFACE */
			MX53_PAD_EIM_A21__GPIO2_17		0x0
			/* RESET_I2C1_BUS_SEGMENT_MUX_N */
			MX53_PAD_EIM_A20__GPIO2_18		0x0
			/* RESET_IMX535_USB_HOST3_PHY_N */
			MX53_PAD_EIM_A19__GPIO2_19		0x0
			/* ESDHC3_EMMC_NAND_RST_N */
			MX53_PAD_EIM_A18__GPIO2_20		0x0
			/* LCD_AND_UI_INTERFACE_PWR_FAULT_N */
			MX53_PAD_EIM_A17__GPIO2_21		0x0
			/* POWER_DOWN_LVDS0_DESERIALIZER_N */
			MX53_PAD_EIM_A16__GPIO2_22		0x0
			/* POWER_DOWN_LVDS1_DESERIALIZER_N */
			MX53_PAD_EIM_LBA__GPIO2_27		0x0
			/* RESET_DP0_TRANSMITTER_N */
			MX53_PAD_EIM_EB0__GPIO2_28		0x0
			/* RESET_DP1_TRANSMITTER_N */
			MX53_PAD_EIM_EB1__GPIO2_29		0x0
			/* ENABLE_SPDIF_AUDIO_TO_DP0 */
			MX53_PAD_EIM_DA0__GPIO3_0		0x0
			/* ENABLE_SPDIF_AUDIO_TO_DP1 */
			MX53_PAD_EIM_DA1__GPIO3_1		0x0
			/* LVDS1_MUX_CTRL */
			MX53_PAD_EIM_DA2__GPIO3_2		0x0
			/* LVDS0_MUX_CTRL */
			MX53_PAD_EIM_DA3__GPIO3_3		0x0
			/* DP1_TRANSMITTER_IRQ */
			MX53_PAD_EIM_DA4__GPIO3_4		0x0
			/* DP0_TRANSMITTER_IRQ */
			MX53_PAD_EIM_DA5__GPIO3_5		0x0
			/* USB_RESET_N */
			MX53_PAD_EIM_DA6__GPIO3_6		0x0
			/* ENABLE_BATTERY_CHARGER */
			MX53_PAD_EIM_DA7__GPIO3_7		0x0
			/* SOFTWARE_CONTROLLED_PWR_CYCLE */
			MX53_PAD_EIM_DA8__GPIO3_8		0x0
			/* SOFTWARE_CONTROLLED_POWERDOWN */
			MX53_PAD_EIM_DA9__GPIO3_9		0x0
			/* DC_PWR_IN_OK */
			MX53_PAD_EIM_DA10__GPIO3_10		0x0
			/* BATT_PRESENT_N */
			MX53_PAD_EIM_DA11__GPIO3_11		0xe4
			/* PMIC_IRQ_N */
			MX53_PAD_EIM_DA12__GPIO3_12		0x0
			/* PMIC_VDD_FAULT_STATUS_N */
			MX53_PAD_EIM_DA13__GPIO3_13		0x0
			/* IMX535_ETHERNET_PHY_STATUS_IRQ_N */
			MX53_PAD_EIM_DA14__GPIO3_14		0x0
			/* NOT USED - AVAILABLE 3.3V GPIO */
			MX53_PAD_EIM_DA15__GPIO3_15		0x0
			/* NOT USED - AVAILABLE 3.3V GPIO */
			MX53_PAD_EIM_D22__GPIO3_22		0x0
			/* NOT USED - AVAILABLE 3.3V GPIO */
			MX53_PAD_EIM_D24__GPIO3_24		0x0
			/* NBP_PUMP_VALVE_PWR_ENABLE */
			MX53_PAD_EIM_D25__GPIO3_25		0x0
			/* NIBP_RESET_N */
			MX53_PAD_EIM_D26__GPIO3_26		0x0
			/* LATCHED_OVERPRESSURE_N */
			MX53_PAD_EIM_D27__GPIO3_27		0x0
			/* NBP_SBWTCLK */
			MX53_PAD_EIM_D29__GPIO3_29		0x0
			/* ENABLE_WIFI_MODULE */
			MX53_PAD_GPIO_11__GPIO4_1		0x400
			/* WIFI_MODULE_IRQ_N */
			MX53_PAD_GPIO_12__GPIO4_2		0x400
			/* ENABLE_BLUETOOTH_MODULE */
			MX53_PAD_GPIO_13__GPIO4_3		0x400
			/* RESET_IMX535_USB_HOST2_PHY_N */
			MX53_PAD_GPIO_14__GPIO4_4		0x400
			/* ONKEY_IS_DEPRESSED */
			MX53_PAD_KEY_ROW3__GPIO4_13		0x0
			/* UNUSED_GPIO_TO_ALARM_LIGHT_BOARD */
			MX53_PAD_EIM_WAIT__GPIO5_0		0x0
			/* DISPLAY_LOCK_BUTTON_IS_DEPRESSED_N */
			MX53_PAD_EIM_A25__GPIO5_2		0x0
			/* I2C_PCAP_TOUCHSCREEN_IRQ_N */
			MX53_PAD_EIM_A24__GPIO5_4		0x0
			/* NOT USED - AVAILABLE 1.8V GPIO */
			MX53_PAD_DISP0_DAT13__GPIO5_7		0x400
			/* NOT USED - AVAILABLE 1.8V GPIO */
			MX53_PAD_DISP0_DAT14__GPIO5_8		0x400
			/* NOT USED - AVAILABLE 1.8V GPIO */
			MX53_PAD_DISP0_DAT15__GPIO5_9		0x400
			/* HOST_CONTROLLED_RESET_TO_LCD_N */
			MX53_PAD_CSI0_PIXCLK__GPIO5_18		0x0
			/* HOST_CONTROLLED_RESET_TO_PCAP_N */
			MX53_PAD_CSI0_MCLK__GPIO5_19		0x0
			/* LR_SCAN_CTRL */
			MX53_PAD_CSI0_DATA_EN__GPIO5_20		0x0
			/* UD_SCAN_CTRL */
			MX53_PAD_CSI0_VSYNC__GPIO5_21		0x0
			/* DATA_WIDTH_CTRL */
			MX53_PAD_CSI0_DAT10__GPIO5_28		0x0
			/* BACKLIGHT_ENABLE */
			MX53_PAD_CSI0_DAT11__GPIO5_29		0x0
			/* MED_USB_PORT_1_HOST_SELECT */
			MX53_PAD_EIM_A23__GPIO6_6		0x0
			/* MED_USB_PORT_2_HOST_SELECT */
			MX53_PAD_NANDF_CLE__GPIO6_7		0x0
			/* MED_USB_PORT_3_HOST_SELECT */
			MX53_PAD_NANDF_ALE__GPIO6_8		0x0
			/* MED_USB_PORT_4_HOST_SELECT */
			MX53_PAD_NANDF_WP_B__GPIO6_9		0x0
			/* MED_USB_PORT_5_HOST_SELECT */
			MX53_PAD_NANDF_RB0__GPIO6_10		0x0
			/* MED_USB_PORT_6_HOST_SELECT */
			MX53_PAD_NANDF_CS0__GPIO6_11		0x0
			/* MED_USB_PORT_7_HOST_SELECT */
			MX53_PAD_NANDF_WE_B__GPIO6_12		0x0
			/* MED_USB_PORT_8_HOST_SELECT */
			MX53_PAD_NANDF_RE_B__GPIO6_13		0x0
			/* MED_USB_PORT_TO_IMX_SELECT_0 */
			MX53_PAD_NANDF_CS1__GPIO6_14		0x0
			/* MED_USB_PORT_TO_IMX_SELECT_1 */
			MX53_PAD_NANDF_CS2__GPIO6_15		0x0
			/* MED_USB_PORT_TO_IMX_SELECT_2 */
			MX53_PAD_NANDF_CS3__GPIO6_16		0x0
			/* POWER_AND_BOOT_STATUS_INDICATOR */
			MX53_PAD_PATA_INTRQ__GPIO7_2		0x1e4
			/* ACTIVATE_ALARM_LIGHT_RED */
			MX53_PAD_PATA_DIOR__GPIO7_3		0x0
			/* ACTIVATE_ALARM_LIGHT_YELLOW */
			MX53_PAD_PATA_DA_1__GPIO7_7		0x0
			/* ACTIVATE_ALARM_LIGHT_CYAN */
			MX53_PAD_PATA_DA_2__GPIO7_8		0x0
			/* RUNNING_ON_BATTERY_INDICATOR_GREEN */
			MX53_PAD_GPIO_16__GPIO7_11		0x0
			/* BATTERY_STATUS_INDICATOR_AMBER */
			MX53_PAD_GPIO_17__GPIO7_12		0x0
			/* AUDIO_ALARMS_SILENCED_INDICATOR */
			MX53_PAD_GPIO_18__GPIO7_13		0x0
		>;
	};

	pinctrl_i2c1: i2c1grp {
		fsl,pins = <
			MX53_PAD_EIM_D21__I2C1_SCL		0x400001e4
			MX53_PAD_EIM_D28__I2C1_SDA		0x400001e4
		>;
	};

	pinctrl_i2c1_gpio: i2c1gpiogrp {
		fsl,pins = <
			MX53_PAD_EIM_D28__GPIO3_28		0x1e4
			MX53_PAD_EIM_D21__GPIO3_21		0x1e4
		>;
	};

	pinctrl_i2c2: i2c2grp {
		fsl,pins = <
			MX53_PAD_EIM_EB2__I2C2_SCL		0x400001e4
			MX53_PAD_EIM_D16__I2C2_SDA		0x400001e4
		>;
	};

	pinctrl_i2c2_gpio: i2c2gpiogrp {
		fsl,pins = <
			MX53_PAD_EIM_D16__GPIO3_16		0x1e4
			MX53_PAD_EIM_EB2__GPIO2_30		0x1e4
		>;
	};

	pinctrl_i2c3: i2c3grp {
		fsl,pins = <
			MX53_PAD_EIM_D17__I2C3_SCL		0x400001e4
			MX53_PAD_EIM_D18__I2C3_SDA		0x400001e4
		>;
	};

	pinctrl_i2c3_gpio: i2c3gpiogrp {
		fsl,pins = <
			MX53_PAD_EIM_D18__GPIO3_18		0x1e4
			MX53_PAD_EIM_D17__GPIO3_17		0x1e4
		>;
	};

	pinctrl_pwm1: pwm1grp {
		fsl,pins = <
			MX53_PAD_GPIO_9__PWM1_PWMO		0x5
		>;
	};

	pinctrl_pwm2: pwm2grp {
		fsl,pins = <
			MX53_PAD_DISP0_DAT9__PWM2_PWMO		0x5
		>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX53_PAD_PATA_DIOW__UART1_TXD_MUX	0x1e4
			MX53_PAD_PATA_DMACK__UART1_RXD_MUX	0x1e4
		>;
	};

	pinctrl_uart2: uart2grp {
		fsl,pins = <
			MX53_PAD_PATA_DMARQ__UART2_TXD_MUX	0x1e4
			MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX	0x1e4
		>;
	};

	pinctrl_uart3: uart3grp {
		fsl,pins = <
			MX53_PAD_PATA_CS_0__UART3_TXD_MUX	0x1e4
			MX53_PAD_PATA_CS_1__UART3_RXD_MUX	0x1e4
			MX53_PAD_EIM_D23__UART3_CTS		0x1e4
			MX53_PAD_EIM_EB3__UART3_RTS		0x1e4
		>;
	};

	pinctrl_uart4: uart4grp {
		fsl,pins = <
			MX53_PAD_KEY_COL0__UART4_TXD_MUX	0x1e4
			MX53_PAD_KEY_ROW0__UART4_RXD_MUX	0x1e4
		>;
	};

	pinctrl_uart5: uart5grp {
		fsl,pins = <
			MX53_PAD_KEY_COL1__UART5_TXD_MUX	0x1e4
			MX53_PAD_KEY_ROW1__UART5_RXD_MUX	0x1e4
		>;
	};

	pinctrl_usb_otg_vbus: usb-otg-vbusgrp {
		fsl,pins = <
			/* USB_HS_OTG_VBUS_ENABLE */
			MX53_PAD_KEY_ROW4__GPIO4_15		0x1c4
		>;
	};

	pinctrl_usbh2: usbh2grp {
		fsl,pins = <
			/* USB H2 */
			MX53_PAD_DISP0_DAT0__USBOH3_USBH2_DATA_0 0x180
			MX53_PAD_DISP0_DAT1__USBOH3_USBH2_DATA_1 0x180
			MX53_PAD_DISP0_DAT2__USBOH3_USBH2_DATA_2 0x180
			MX53_PAD_DISP0_DAT3__USBOH3_USBH2_DATA_3 0x180
			MX53_PAD_DISP0_DAT4__USBOH3_USBH2_DATA_4 0x180
			MX53_PAD_DISP0_DAT5__USBOH3_USBH2_DATA_5 0x180
			MX53_PAD_DISP0_DAT6__USBOH3_USBH2_DATA_6 0x180
			MX53_PAD_DISP0_DAT7__USBOH3_USBH2_DATA_7 0x180
			MX53_PAD_DISP0_DAT10__USBOH3_USBH2_STP	 0x180
			MX53_PAD_DISP0_DAT11__USBOH3_USBH2_NXT	 0x180
			MX53_PAD_DISP0_DAT12__USBOH3_USBH2_CLK	 0x180
			MX53_PAD_DI0_DISP_CLK__USBOH3_USBH2_DIR	 0x5
			MX53_PAD_EIM_D30__USBOH3_USBH2_OC	 0x180
		>;
	};

	pinctrl_usbh2_vbus: usbh2-vbusgrp {
		fsl,pins = <
			/* USB_HS_HOST2_VBUS_ENABLE */
			MX53_PAD_EIM_D31__GPIO3_31		0x0
		>;
	};

	pinctrl_usbh3_vbus: usbh3-vbusgrp {
		fsl,pins = <
			/* USB_HS_HOST3_VBUS_ENABLE */
			MX53_PAD_CSI0_DAT9__GPIO5_27		0x0
		>;
	};

	pinctrl_usbh3: usbh3grp {
		fsl,pins = <
			/* USB H3 */
			MX53_PAD_CSI0_DAT12__USBOH3_USBH3_DATA_0 0x180
			MX53_PAD_CSI0_DAT13__USBOH3_USBH3_DATA_1 0x180
			MX53_PAD_CSI0_DAT14__USBOH3_USBH3_DATA_2 0x180
			MX53_PAD_CSI0_DAT15__USBOH3_USBH3_DATA_3 0x180
			MX53_PAD_CSI0_DAT16__USBOH3_USBH3_DATA_4 0x180
			MX53_PAD_CSI0_DAT17__USBOH3_USBH3_DATA_5 0x180
			MX53_PAD_CSI0_DAT18__USBOH3_USBH3_DATA_6 0x180
			MX53_PAD_CSI0_DAT19__USBOH3_USBH3_DATA_7 0x180
			MX53_PAD_CSI0_DAT7__USBOH3_USBH3_DIR	 0x5
			MX53_PAD_CSI0_DAT6__USBOH3_USBH3_CLK	 0x180
			MX53_PAD_CSI0_DAT5__USBOH3_USBH3_NXT	 0x180
			MX53_PAD_CSI0_DAT4__USBOH3_USBH3_STP	 0x180
			MX53_PAD_CSI0_DAT8__USBOH3_USBH3_OC	 0x180
		>;
	};

	pinctrl_usb_otg: usbotggrp {
		fsl,pins = <
			/* USB_OTG_FAULT_N */
			MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC	0x180
		>;
	};
};
