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

#include "skeleton.dtsi"
#include "imx51-pinfunc.h"

/ {
	aliases {
		gpio0 = &gpio1;
		gpio1 = &gpio2;
		gpio2 = &gpio3;
		gpio3 = &gpio4;
		i2c0 = &i2c1;
		i2c1 = &i2c2;
		serial0 = &uart1;
		serial1 = &uart2;
		serial2 = &uart3;
		spi0 = &ecspi1;
		spi1 = &ecspi2;
		spi2 = &cspi;
	};

	tzic: tz-interrupt-controller@e0000000 {
		compatible = "fsl,imx51-tzic", "fsl,tzic";
		interrupt-controller;
		#interrupt-cells = <1>;
		reg = <0xe0000000 0x4000>;
	};

	clocks {
		#address-cells = <1>;
		#size-cells = <0>;

		ckil {
			compatible = "fsl,imx-ckil", "fixed-clock";
			clock-frequency = <32768>;
		};

		ckih1 {
			compatible = "fsl,imx-ckih1", "fixed-clock";
			clock-frequency = <0>;
		};

		ckih2 {
			compatible = "fsl,imx-ckih2", "fixed-clock";
			clock-frequency = <0>;
		};

		osc {
			compatible = "fsl,imx-osc", "fixed-clock";
			clock-frequency = <24000000>;
		};
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a8";
			reg = <0>;
			clock-latency = <61036>; /* two CLK32 periods */
			clocks = <&clks 24>;
			clock-names = "cpu";
			operating-points = <
				/* kHz  uV (No regulator support) */
				160000  0
				800000  0
			>;
		};
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		interrupt-parent = <&tzic>;
		ranges;

		iram: iram@1ffe0000 {
			compatible = "mmio-sram";
			reg = <0x1ffe0000 0x20000>;
		};

		ipu: ipu@40000000 {
			#crtc-cells = <1>;
			compatible = "fsl,imx51-ipu";
			reg = <0x40000000 0x20000000>;
			interrupts = <11 10>;
			clocks = <&clks 59>, <&clks 110>, <&clks 61>;
			clock-names = "bus", "di0", "di1";
			resets = <&src 2>;
		};

		aips@70000000 { /* AIPS1 */
			compatible = "fsl,aips-bus", "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x70000000 0x10000000>;
			ranges;

			spba@70000000 {
				compatible = "fsl,spba-bus", "simple-bus";
				#address-cells = <1>;
				#size-cells = <1>;
				reg = <0x70000000 0x40000>;
				ranges;

				esdhc1: esdhc@70004000 {
					compatible = "fsl,imx51-esdhc";
					reg = <0x70004000 0x4000>;
					interrupts = <1>;
					clocks = <&clks 44>, <&clks 0>, <&clks 71>;
					clock-names = "ipg", "ahb", "per";
					status = "disabled";
				};

				esdhc2: esdhc@70008000 {
					compatible = "fsl,imx51-esdhc";
					reg = <0x70008000 0x4000>;
					interrupts = <2>;
					clocks = <&clks 45>, <&clks 0>, <&clks 72>;
					clock-names = "ipg", "ahb", "per";
					bus-width = <4>;
					status = "disabled";
				};

				uart3: serial@7000c000 {
					compatible = "fsl,imx51-uart", "fsl,imx21-uart";
					reg = <0x7000c000 0x4000>;
					interrupts = <33>;
					clocks = <&clks 32>, <&clks 33>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

				ecspi1: ecspi@70010000 {
					#address-cells = <1>;
					#size-cells = <0>;
					compatible = "fsl,imx51-ecspi";
					reg = <0x70010000 0x4000>;
					interrupts = <36>;
					clocks = <&clks 51>, <&clks 52>;
					clock-names = "ipg", "per";
					status = "disabled";
				};

				ssi2: ssi@70014000 {
					compatible = "fsl,imx51-ssi", "fsl,imx21-ssi";
					reg = <0x70014000 0x4000>;
					interrupts = <30>;
					clocks = <&clks 49>;
					dmas = <&sdma 24 1 0>,
					       <&sdma 25 1 0>;
					dma-names = "rx", "tx";
					fsl,fifo-depth = <15>;
					fsl,ssi-dma-events = <25 24 23 22>; /* TX0 RX0 TX1 RX1 */
					status = "disabled";
				};

				esdhc3: esdhc@70020000 {
					compatible = "fsl,imx51-esdhc";
					reg = <0x70020000 0x4000>;
					interrupts = <3>;
					clocks = <&clks 46>, <&clks 0>, <&clks 73>;
					clock-names = "ipg", "ahb", "per";
					bus-width = <4>;
					status = "disabled";
				};

				esdhc4: esdhc@70024000 {
					compatible = "fsl,imx51-esdhc";
					reg = <0x70024000 0x4000>;
					interrupts = <4>;
					clocks = <&clks 47>, <&clks 0>, <&clks 74>;
					clock-names = "ipg", "ahb", "per";
					bus-width = <4>;
					status = "disabled";
				};
			};

			usbphy0: usbphy@0 {
				compatible = "usb-nop-xceiv";
				clocks = <&clks 75>;
				clock-names = "main_clk";
				status = "okay";
			};

			usbotg: usb@73f80000 {
				compatible = "fsl,imx51-usb", "fsl,imx27-usb";
				reg = <0x73f80000 0x0200>;
				interrupts = <18>;
				clocks = <&clks 108>;
				fsl,usbmisc = <&usbmisc 0>;
				fsl,usbphy = <&usbphy0>;
				status = "disabled";
			};

			usbh1: usb@73f80200 {
				compatible = "fsl,imx51-usb", "fsl,imx27-usb";
				reg = <0x73f80200 0x0200>;
				interrupts = <14>;
				clocks = <&clks 108>;
				fsl,usbmisc = <&usbmisc 1>;
				status = "disabled";
			};

			usbh2: usb@73f80400 {
				compatible = "fsl,imx51-usb", "fsl,imx27-usb";
				reg = <0x73f80400 0x0200>;
				interrupts = <16>;
				clocks = <&clks 108>;
				fsl,usbmisc = <&usbmisc 2>;
				status = "disabled";
			};

			usbh3: usb@73f80600 {
				compatible = "fsl,imx51-usb", "fsl,imx27-usb";
				reg = <0x73f80600 0x0200>;
				interrupts = <17>;
				clocks = <&clks 108>;
				fsl,usbmisc = <&usbmisc 3>;
				status = "disabled";
			};

			usbmisc: usbmisc@73f80800 {
				#index-cells = <1>;
				compatible = "fsl,imx51-usbmisc";
				reg = <0x73f80800 0x200>;
				clocks = <&clks 108>;
			};

			gpio1: gpio@73f84000 {
				compatible = "fsl,imx51-gpio", "fsl,imx35-gpio";
				reg = <0x73f84000 0x4000>;
				interrupts = <50 51>;
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
			};

			gpio2: gpio@73f88000 {
				compatible = "fsl,imx51-gpio", "fsl,imx35-gpio";
				reg = <0x73f88000 0x4000>;
				interrupts = <52 53>;
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
			};

			gpio3: gpio@73f8c000 {
				compatible = "fsl,imx51-gpio", "fsl,imx35-gpio";
				reg = <0x73f8c000 0x4000>;
				interrupts = <54 55>;
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
			};

			gpio4: gpio@73f90000 {
				compatible = "fsl,imx51-gpio", "fsl,imx35-gpio";
				reg = <0x73f90000 0x4000>;
				interrupts = <56 57>;
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
			};

			kpp: kpp@73f94000 {
				compatible = "fsl,imx51-kpp", "fsl,imx21-kpp";
				reg = <0x73f94000 0x4000>;
				interrupts = <60>;
				clocks = <&clks 0>;
				status = "disabled";
			};

			wdog1: wdog@73f98000 {
				compatible = "fsl,imx51-wdt", "fsl,imx21-wdt";
				reg = <0x73f98000 0x4000>;
				interrupts = <58>;
				clocks = <&clks 0>;
			};

			wdog2: wdog@73f9c000 {
				compatible = "fsl,imx51-wdt", "fsl,imx21-wdt";
				reg = <0x73f9c000 0x4000>;
				interrupts = <59>;
				clocks = <&clks 0>;
				status = "disabled";
			};

			gpt: timer@73fa0000 {
				compatible = "fsl,imx51-gpt", "fsl,imx31-gpt";
				reg = <0x73fa0000 0x4000>;
				interrupts = <39>;
				clocks = <&clks 36>, <&clks 41>;
				clock-names = "ipg", "per";
			};

			iomuxc: iomuxc@73fa8000 {
				compatible = "fsl,imx51-iomuxc";
				reg = <0x73fa8000 0x4000>;
			};

			pwm1: pwm@73fb4000 {
				#pwm-cells = <2>;
				compatible = "fsl,imx51-pwm", "fsl,imx27-pwm";
				reg = <0x73fb4000 0x4000>;
				clocks = <&clks 37>, <&clks 38>;
				clock-names = "ipg", "per";
				interrupts = <61>;
			};

			pwm2: pwm@73fb8000 {
				#pwm-cells = <2>;
				compatible = "fsl,imx51-pwm", "fsl,imx27-pwm";
				reg = <0x73fb8000 0x4000>;
				clocks = <&clks 39>, <&clks 40>;
				clock-names = "ipg", "per";
				interrupts = <94>;
			};

			uart1: serial@73fbc000 {
				compatible = "fsl,imx51-uart", "fsl,imx21-uart";
				reg = <0x73fbc000 0x4000>;
				interrupts = <31>;
				clocks = <&clks 28>, <&clks 29>;
				clock-names = "ipg", "per";
				status = "disabled";
			};

			uart2: serial@73fc0000 {
				compatible = "fsl,imx51-uart", "fsl,imx21-uart";
				reg = <0x73fc0000 0x4000>;
				interrupts = <32>;
				clocks = <&clks 30>, <&clks 31>;
				clock-names = "ipg", "per";
				status = "disabled";
			};

			src: src@73fd0000 {
				compatible = "fsl,imx51-src";
				reg = <0x73fd0000 0x4000>;
				#reset-cells = <1>;
			};

			clks: ccm@73fd4000{
				compatible = "fsl,imx51-ccm";
				reg = <0x73fd4000 0x4000>;
				interrupts = <0 71 0x04 0 72 0x04>;
				#clock-cells = <1>;
			};
		};

		aips@80000000 {	/* AIPS2 */
			compatible = "fsl,aips-bus", "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x80000000 0x10000000>;
			ranges;

			iim: iim@83f98000 {
				compatible = "fsl,imx51-iim", "fsl,imx27-iim";
				reg = <0x83f98000 0x4000>;
				interrupts = <69>;
				clocks = <&clks 107>;
			};

			owire: owire@83fa4000 {
				compatible = "fsl,imx51-owire", "fsl,imx21-owire";
				reg = <0x83fa4000 0x4000>;
				interrupts = <88>;
				clocks = <&clks 159>;
				status = "disabled";
			};

			ecspi2: ecspi@83fac000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx51-ecspi";
				reg = <0x83fac000 0x4000>;
				interrupts = <37>;
				clocks = <&clks 53>, <&clks 54>;
				clock-names = "ipg", "per";
				status = "disabled";
			};

			sdma: sdma@83fb0000 {
				compatible = "fsl,imx51-sdma", "fsl,imx35-sdma";
				reg = <0x83fb0000 0x4000>;
				interrupts = <6>;
				clocks = <&clks 56>, <&clks 56>;
				clock-names = "ipg", "ahb";
				#dma-cells = <3>;
				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin";
			};

			cspi: cspi@83fc0000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx51-cspi", "fsl,imx35-cspi";
				reg = <0x83fc0000 0x4000>;
				interrupts = <38>;
				clocks = <&clks 55>, <&clks 55>;
				clock-names = "ipg", "per";
				status = "disabled";
			};

			i2c2: i2c@83fc4000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx51-i2c", "fsl,imx21-i2c";
				reg = <0x83fc4000 0x4000>;
				interrupts = <63>;
				clocks = <&clks 35>;
				status = "disabled";
			};

			i2c1: i2c@83fc8000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx51-i2c", "fsl,imx21-i2c";
				reg = <0x83fc8000 0x4000>;
				interrupts = <62>;
				clocks = <&clks 34>;
				status = "disabled";
			};

			ssi1: ssi@83fcc000 {
				compatible = "fsl,imx51-ssi", "fsl,imx21-ssi";
				reg = <0x83fcc000 0x4000>;
				interrupts = <29>;
				clocks = <&clks 48>;
				dmas = <&sdma 28 0 0>,
				       <&sdma 29 0 0>;
				dma-names = "rx", "tx";
				fsl,fifo-depth = <15>;
				fsl,ssi-dma-events = <29 28 27 26>; /* TX0 RX0 TX1 RX1 */
				status = "disabled";
			};

			audmux: audmux@83fd0000 {
				compatible = "fsl,imx51-audmux", "fsl,imx31-audmux";
				reg = <0x83fd0000 0x4000>;
				status = "disabled";
			};

			weim: weim@83fda000 {
				#address-cells = <2>;
				#size-cells = <1>;
				compatible = "fsl,imx51-weim";
				reg = <0x83fda000 0x1000>;
				clocks = <&clks 57>;
				ranges = <
					0 0 0xb0000000 0x08000000
					1 0 0xb8000000 0x08000000
					2 0 0xc0000000 0x08000000
					3 0 0xc8000000 0x04000000
					4 0 0xcc000000 0x02000000
					5 0 0xce000000 0x02000000
				>;
				status = "disabled";
			};

			nfc: nand@83fdb000 {
				compatible = "fsl,imx51-nand";
				reg = <0x83fdb000 0x1000 0xcfff0000 0x10000>;
				interrupts = <8>;
				clocks = <&clks 60>;
				status = "disabled";
			};

			pata: pata@83fe0000 {
				compatible = "fsl,imx51-pata", "fsl,imx27-pata";
				reg = <0x83fe0000 0x4000>;
				interrupts = <70>;
				clocks = <&clks 172>;
				status = "disabled";
			};

			ssi3: ssi@83fe8000 {
				compatible = "fsl,imx51-ssi", "fsl,imx21-ssi";
				reg = <0x83fe8000 0x4000>;
				interrupts = <96>;
				clocks = <&clks 50>;
				dmas = <&sdma 46 0 0>,
				       <&sdma 47 0 0>;
				dma-names = "rx", "tx";
				fsl,fifo-depth = <15>;
				fsl,ssi-dma-events = <47 46 37 35>; /* TX0 RX0 TX1 RX1 */
				status = "disabled";
			};

			fec: ethernet@83fec000 {
				compatible = "fsl,imx51-fec", "fsl,imx27-fec";
				reg = <0x83fec000 0x4000>;
				interrupts = <87>;
				clocks = <&clks 42>, <&clks 42>, <&clks 42>;
				clock-names = "ipg", "ahb", "ptp";
				status = "disabled";
			};
		};
	};
};

&iomuxc {
	audmux {
		pinctrl_audmux_1: audmuxgrp-1 {
			fsl,pins = <
				MX51_PAD_AUD3_BB_TXD__AUD3_TXD 0x80000000
				MX51_PAD_AUD3_BB_RXD__AUD3_RXD 0x80000000
				MX51_PAD_AUD3_BB_CK__AUD3_TXC  0x80000000
				MX51_PAD_AUD3_BB_FS__AUD3_TXFS 0x80000000
			>;
		};
	};

	fec {
		pinctrl_fec_1: fecgrp-1 {
			fsl,pins = <
				MX51_PAD_EIM_EB2__FEC_MDIO	   0x80000000
				MX51_PAD_EIM_EB3__FEC_RDATA1	   0x80000000
				MX51_PAD_EIM_CS2__FEC_RDATA2	   0x80000000
				MX51_PAD_EIM_CS3__FEC_RDATA3	   0x80000000
				MX51_PAD_EIM_CS4__FEC_RX_ER	   0x80000000
				MX51_PAD_EIM_CS5__FEC_CRS	   0x80000000
				MX51_PAD_NANDF_RB2__FEC_COL	   0x80000000
				MX51_PAD_NANDF_RB3__FEC_RX_CLK	   0x80000000
				MX51_PAD_NANDF_D9__FEC_RDATA0	   0x80000000
				MX51_PAD_NANDF_D8__FEC_TDATA0	   0x80000000
				MX51_PAD_NANDF_CS2__FEC_TX_ER	   0x80000000
				MX51_PAD_NANDF_CS3__FEC_MDC	   0x80000000
				MX51_PAD_NANDF_CS4__FEC_TDATA1	   0x80000000
				MX51_PAD_NANDF_CS5__FEC_TDATA2	   0x80000000
				MX51_PAD_NANDF_CS6__FEC_TDATA3	   0x80000000
				MX51_PAD_NANDF_CS7__FEC_TX_EN	   0x80000000
				MX51_PAD_NANDF_RDY_INT__FEC_TX_CLK 0x80000000
			>;
		};

		pinctrl_fec_2: fecgrp-2 {
			fsl,pins = <
				MX51_PAD_DI_GP3__FEC_TX_ER	  0x80000000
				MX51_PAD_DI2_PIN4__FEC_CRS	  0x80000000
				MX51_PAD_DI2_PIN2__FEC_MDC	  0x80000000
				MX51_PAD_DI2_PIN3__FEC_MDIO	  0x80000000
				MX51_PAD_DI2_DISP_CLK__FEC_RDATA1 0x80000000
				MX51_PAD_DI_GP4__FEC_RDATA2	  0x80000000
				MX51_PAD_DISP2_DAT0__FEC_RDATA3   0x80000000
				MX51_PAD_DISP2_DAT1__FEC_RX_ER	  0x80000000
				MX51_PAD_DISP2_DAT6__FEC_TDATA1	  0x80000000
				MX51_PAD_DISP2_DAT7__FEC_TDATA2	  0x80000000
				MX51_PAD_DISP2_DAT8__FEC_TDATA3	  0x80000000
				MX51_PAD_DISP2_DAT9__FEC_TX_EN	  0x80000000
				MX51_PAD_DISP2_DAT10__FEC_COL	  0x80000000
				MX51_PAD_DISP2_DAT11__FEC_RX_CLK  0x80000000
				MX51_PAD_DISP2_DAT12__FEC_RX_DV	  0x80000000
				MX51_PAD_DISP2_DAT13__FEC_TX_CLK  0x80000000
				MX51_PAD_DISP2_DAT14__FEC_RDATA0  0x80000000
				MX51_PAD_DISP2_DAT15__FEC_TDATA0  0x80000000
			>;
		};
	};

	ecspi1 {
		pinctrl_ecspi1_1: ecspi1grp-1 {
			fsl,pins = <
				MX51_PAD_CSPI1_MISO__ECSPI1_MISO 0x185
				MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI 0x185
				MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK 0x185
			>;
		};
	};

	ecspi2 {
		pinctrl_ecspi2_1: ecspi2grp-1 {
			fsl,pins = <
				MX51_PAD_NANDF_RB3__ECSPI2_MISO 0x185
				MX51_PAD_NANDF_D15__ECSPI2_MOSI 0x185
				MX51_PAD_NANDF_RB2__ECSPI2_SCLK 0x185
			>;
		};
	};

	esdhc1 {
		pinctrl_esdhc1_1: esdhc1grp-1 {
			fsl,pins = <
				MX51_PAD_SD1_CMD__SD1_CMD     0x400020d5
				MX51_PAD_SD1_CLK__SD1_CLK     0x20d5
				MX51_PAD_SD1_DATA0__SD1_DATA0 0x20d5
				MX51_PAD_SD1_DATA1__SD1_DATA1 0x20d5
				MX51_PAD_SD1_DATA2__SD1_DATA2 0x20d5
				MX51_PAD_SD1_DATA3__SD1_DATA3 0x20d5
			>;
		};
	};

	esdhc2 {
		pinctrl_esdhc2_1: esdhc2grp-1 {
			fsl,pins = <
				MX51_PAD_SD2_CMD__SD2_CMD     0x400020d5
				MX51_PAD_SD2_CLK__SD2_CLK     0x20d5
				MX51_PAD_SD2_DATA0__SD2_DATA0 0x20d5
				MX51_PAD_SD2_DATA1__SD2_DATA1 0x20d5
				MX51_PAD_SD2_DATA2__SD2_DATA2 0x20d5
				MX51_PAD_SD2_DATA3__SD2_DATA3 0x20d5
			>;
		};
	};

	i2c2 {
		pinctrl_i2c2_1: i2c2grp-1 {
			fsl,pins = <
				MX51_PAD_KEY_COL4__I2C2_SCL 0x400001ed
				MX51_PAD_KEY_COL5__I2C2_SDA 0x400001ed
			>;
		};

		pinctrl_i2c2_2: i2c2grp-2 {
			fsl,pins = <
				MX51_PAD_EIM_D27__I2C2_SCL 0x400001ed
				MX51_PAD_EIM_D24__I2C2_SDA 0x400001ed
			>;
		};

		pinctrl_i2c2_3: i2c2grp-3 {
			fsl,pins = <
				MX51_PAD_GPIO1_2__I2C2_SCL 0x400001ed
				MX51_PAD_GPIO1_3__I2C2_SDA 0x400001ed
			>;
		};
	};

	ipu_disp1 {
		pinctrl_ipu_disp1_1: ipudisp1grp-1 {
			fsl,pins = <
				MX51_PAD_DISP1_DAT0__DISP1_DAT0	  0x5
				MX51_PAD_DISP1_DAT1__DISP1_DAT1	  0x5
				MX51_PAD_DISP1_DAT2__DISP1_DAT2	  0x5
				MX51_PAD_DISP1_DAT3__DISP1_DAT3	  0x5
				MX51_PAD_DISP1_DAT4__DISP1_DAT4	  0x5
				MX51_PAD_DISP1_DAT5__DISP1_DAT5	  0x5
				MX51_PAD_DISP1_DAT6__DISP1_DAT6	  0x5
				MX51_PAD_DISP1_DAT7__DISP1_DAT7	  0x5
				MX51_PAD_DISP1_DAT8__DISP1_DAT8	  0x5
				MX51_PAD_DISP1_DAT9__DISP1_DAT9	  0x5
				MX51_PAD_DISP1_DAT10__DISP1_DAT10 0x5
				MX51_PAD_DISP1_DAT11__DISP1_DAT11 0x5
				MX51_PAD_DISP1_DAT12__DISP1_DAT12 0x5
				MX51_PAD_DISP1_DAT13__DISP1_DAT13 0x5
				MX51_PAD_DISP1_DAT14__DISP1_DAT14 0x5
				MX51_PAD_DISP1_DAT15__DISP1_DAT15 0x5
				MX51_PAD_DISP1_DAT16__DISP1_DAT16 0x5
				MX51_PAD_DISP1_DAT17__DISP1_DAT17 0x5
				MX51_PAD_DISP1_DAT18__DISP1_DAT18 0x5
				MX51_PAD_DISP1_DAT19__DISP1_DAT19 0x5
				MX51_PAD_DISP1_DAT20__DISP1_DAT20 0x5
				MX51_PAD_DISP1_DAT21__DISP1_DAT21 0x5
				MX51_PAD_DISP1_DAT22__DISP1_DAT22 0x5
				MX51_PAD_DISP1_DAT23__DISP1_DAT23 0x5
				MX51_PAD_DI1_PIN2__DI1_PIN2	  0x5 /* hsync */
				MX51_PAD_DI1_PIN3__DI1_PIN3	  0x5 /* vsync */
			>;
		};
	};

	ipu_disp2 {
		pinctrl_ipu_disp2_1: ipudisp2grp-1 {
			fsl,pins = <
				MX51_PAD_DISP2_DAT0__DISP2_DAT0	    0x5
				MX51_PAD_DISP2_DAT1__DISP2_DAT1	    0x5
				MX51_PAD_DISP2_DAT2__DISP2_DAT2	    0x5
				MX51_PAD_DISP2_DAT3__DISP2_DAT3	    0x5
				MX51_PAD_DISP2_DAT4__DISP2_DAT4	    0x5
				MX51_PAD_DISP2_DAT5__DISP2_DAT5	    0x5
				MX51_PAD_DISP2_DAT6__DISP2_DAT6	    0x5
				MX51_PAD_DISP2_DAT7__DISP2_DAT7	    0x5
				MX51_PAD_DISP2_DAT8__DISP2_DAT8	    0x5
				MX51_PAD_DISP2_DAT9__DISP2_DAT9	    0x5
				MX51_PAD_DISP2_DAT10__DISP2_DAT10   0x5
				MX51_PAD_DISP2_DAT11__DISP2_DAT11   0x5
				MX51_PAD_DISP2_DAT12__DISP2_DAT12   0x5
				MX51_PAD_DISP2_DAT13__DISP2_DAT13   0x5
				MX51_PAD_DISP2_DAT14__DISP2_DAT14   0x5
				MX51_PAD_DISP2_DAT15__DISP2_DAT15   0x5
				MX51_PAD_DI2_PIN2__DI2_PIN2	    0x5 /* hsync */
				MX51_PAD_DI2_PIN3__DI2_PIN3	    0x5 /* vsync */
				MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK 0x5 /* CLK */
				MX51_PAD_DI_GP4__DI2_PIN15	    0x5 /* DE */
			>;
		};
	};

	kpp {
		pinctrl_kpp_1: kppgrp-1 {
			fsl,pins = <
				MX51_PAD_KEY_ROW0__KEY_ROW0 0xe0
				MX51_PAD_KEY_ROW1__KEY_ROW1 0xe0
				MX51_PAD_KEY_ROW2__KEY_ROW2 0xe0
				MX51_PAD_KEY_ROW3__KEY_ROW3 0xe0
				MX51_PAD_KEY_COL0__KEY_COL0 0xe8
				MX51_PAD_KEY_COL1__KEY_COL1 0xe8
				MX51_PAD_KEY_COL2__KEY_COL2 0xe8
				MX51_PAD_KEY_COL3__KEY_COL3 0xe8
			>;
		};
	};

	pata {
		pinctrl_pata_1: patagrp-1 {
			fsl,pins = <
				MX51_PAD_NANDF_WE_B__PATA_DIOW	   0x2004
				MX51_PAD_NANDF_RE_B__PATA_DIOR	   0x2004
				MX51_PAD_NANDF_ALE__PATA_BUFFER_EN 0x2004
				MX51_PAD_NANDF_CLE__PATA_RESET_B   0x2004
				MX51_PAD_NANDF_WP_B__PATA_DMACK	   0x2004
				MX51_PAD_NANDF_RB0__PATA_DMARQ	   0x2004
				MX51_PAD_NANDF_RB1__PATA_IORDY	   0x2004
				MX51_PAD_GPIO_NAND__PATA_INTRQ	   0x2004
				MX51_PAD_NANDF_CS2__PATA_CS_0	   0x2004
				MX51_PAD_NANDF_CS3__PATA_CS_1	   0x2004
				MX51_PAD_NANDF_CS4__PATA_DA_0	   0x2004
				MX51_PAD_NANDF_CS5__PATA_DA_1	   0x2004
				MX51_PAD_NANDF_CS6__PATA_DA_2	   0x2004
				MX51_PAD_NANDF_D15__PATA_DATA15	   0x2004
				MX51_PAD_NANDF_D14__PATA_DATA14	   0x2004
				MX51_PAD_NANDF_D13__PATA_DATA13	   0x2004
				MX51_PAD_NANDF_D12__PATA_DATA12	   0x2004
				MX51_PAD_NANDF_D11__PATA_DATA11	   0x2004
				MX51_PAD_NANDF_D10__PATA_DATA10	   0x2004
				MX51_PAD_NANDF_D9__PATA_DATA9	   0x2004
				MX51_PAD_NANDF_D8__PATA_DATA8	   0x2004
				MX51_PAD_NANDF_D7__PATA_DATA7	   0x2004
				MX51_PAD_NANDF_D6__PATA_DATA6	  0x2004
				MX51_PAD_NANDF_D5__PATA_DATA5	  0x2004
				MX51_PAD_NANDF_D4__PATA_DATA4	  0x2004
				MX51_PAD_NANDF_D3__PATA_DATA3	  0x2004
				MX51_PAD_NANDF_D2__PATA_DATA2	  0x2004
				MX51_PAD_NANDF_D1__PATA_DATA1	  0x2004
				MX51_PAD_NANDF_D0__PATA_DATA0	  0x2004
			>;
		};
	};

	uart1 {
		pinctrl_uart1_1: uart1grp-1 {
			fsl,pins = <
				MX51_PAD_UART1_RXD__UART1_RXD 0x1c5
				MX51_PAD_UART1_TXD__UART1_TXD 0x1c5
			>;
		};

		pinctrl_uart1_rtscts_1: uart1rtscts-1 {
			fsl,pins = <
				MX51_PAD_UART1_RTS__UART1_RTS 0x1c5
				MX51_PAD_UART1_CTS__UART1_CTS 0x1c5
			>;
		};
	};

	uart2 {
		pinctrl_uart2_1: uart2grp-1 {
			fsl,pins = <
				MX51_PAD_UART2_RXD__UART2_RXD 0x1c5
				MX51_PAD_UART2_TXD__UART2_TXD 0x1c5
			>;
		};
	};

	uart3 {
		pinctrl_uart3_1: uart3grp-1 {
			fsl,pins = <
				MX51_PAD_EIM_D25__UART3_RXD 0x1c5
				MX51_PAD_EIM_D26__UART3_TXD 0x1c5
			>;
		};

		pinctrl_uart3_rtscts_1: uart3rtscts-1 {
			fsl,pins = <
				MX51_PAD_EIM_D27__UART3_RTS 0x1c5
				MX51_PAD_EIM_D24__UART3_CTS 0x1c5
			>;
		};

		pinctrl_uart3_2: uart3grp-2 {
			fsl,pins = <
				MX51_PAD_UART3_RXD__UART3_RXD 0x1c5
				MX51_PAD_UART3_TXD__UART3_TXD 0x1c5
			>;
		};
	};

	usbh1 {
		pinctrl_usbh1_1: usbh1grp-1 {
			fsl,pins = <
				MX51_PAD_USBH1_DATA0__USBH1_DATA0 0x1e5
				MX51_PAD_USBH1_DATA1__USBH1_DATA1 0x1e5
				MX51_PAD_USBH1_DATA2__USBH1_DATA2 0x1e5
				MX51_PAD_USBH1_DATA3__USBH1_DATA3 0x1e5
				MX51_PAD_USBH1_DATA4__USBH1_DATA4 0x1e5
				MX51_PAD_USBH1_DATA5__USBH1_DATA5 0x1e5
				MX51_PAD_USBH1_DATA6__USBH1_DATA6 0x1e5
				MX51_PAD_USBH1_DATA7__USBH1_DATA7 0x1e5
				MX51_PAD_USBH1_CLK__USBH1_CLK	  0x1e5
				MX51_PAD_USBH1_DIR__USBH1_DIR	  0x1e5
				MX51_PAD_USBH1_NXT__USBH1_NXT	  0x1e5
				MX51_PAD_USBH1_STP__USBH1_STP	  0x1e5
			>;
		};
	};

	usbh2 {
		pinctrl_usbh2_1: usbh2grp-1 {
			fsl,pins = <
				MX51_PAD_EIM_D16__USBH2_DATA0 0x1e5
				MX51_PAD_EIM_D17__USBH2_DATA1 0x1e5
				MX51_PAD_EIM_D18__USBH2_DATA2 0x1e5
				MX51_PAD_EIM_D19__USBH2_DATA3 0x1e5
				MX51_PAD_EIM_D20__USBH2_DATA4 0x1e5
				MX51_PAD_EIM_D21__USBH2_DATA5 0x1e5
				MX51_PAD_EIM_D22__USBH2_DATA6 0x1e5
				MX51_PAD_EIM_D23__USBH2_DATA7 0x1e5
				MX51_PAD_EIM_A24__USBH2_CLK   0x1e5
				MX51_PAD_EIM_A25__USBH2_DIR   0x1e5
				MX51_PAD_EIM_A27__USBH2_NXT   0x1e5
				MX51_PAD_EIM_A26__USBH2_STP   0x1e5
			>;
		};
	};
};
