/*
 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
 * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de>
 *
 * 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 at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
#include "imx28.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Ka-Ro electronics TX28 module";
	compatible = "karo,tx28", "fsl,imx28";

	aliases {
		can0 = &can0;
		can1 = &can1;
		display = &display;
		ds1339 = &ds1339;
		gpio5 = &gpio5;
		lcdif = &lcdif;
		lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
		lcdif_24bit_pins = &lcdif_24bit_pins_a;
		stk5led = &user_led;
		usbotg = &usb0;
	};

	memory {
		reg = <0 0>; /* will be filled in by U-Boot */
	};

	onewire {
		compatible = "w1-gpio";
		gpios = <&gpio2 7 0>;
		status = "disabled";
	};

	regulators {
		compatible = "simple-bus";

		reg_usb0_vbus: usb0_vbus {
			compatible = "regulator-fixed";
			regulator-name = "usb0_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio0 18 0>;
			enable-active-high;
		};

		reg_usb1_vbus: usb1_vbus {
			compatible = "regulator-fixed";
			regulator-name = "usb1_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio3 27 0>;
			enable-active-high;
		};

		reg_2p5v: 2p5v {
			compatible = "regulator-fixed";
			regulator-name = "2P5V";
			regulator-min-microvolt = <2500000>;
			regulator-max-microvolt = <2500000>;
			regulator-always-on;
		};

		reg_3p3v: 3p3v {
			compatible = "regulator-fixed";
			regulator-name = "3P3V";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};

		reg_can_xcvr: can-xcvr {
			compatible = "regulator-fixed";
			regulator-name = "CAN XCVR";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio1 0 0>;
			enable-active-low;
			pinctrl-names = "default";
			pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
		};

		reg_lcd: lcd-power {
			compatible = "regulator-fixed";
			regulator-name = "LCD POWER";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio1 31 0>;
			enable-active-high;
		};

		reg_lcd_reset: lcd-reset {
			compatible = "regulator-fixed";
			regulator-name = "LCD RESET";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio3 30 0>;
			startup-delay-us = <300000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
		};
	};

	clocks {
		#address-cells = <1>;
		#size-cells = <0>;
		mclk: clock@0 {
			compatible = "fixed-clock";
			reg = <0>;
			#clock-cells = <0>;
			clock-frequency = <27000000>;
		};
	};

	sound {
		compatible = "fsl,imx28-tx28-sgtl5000",
			     "fsl,mxs-audio-sgtl5000";
		model = "imx28-tx28-sgtl5000";
		saif-controllers = <&saif0 &saif1>;
		audio-codec = <&sgtl5000>;
	};

	leds {
		compatible = "gpio-leds";

		user_led: user {
			label = "Heartbeat";
			gpios = <&gpio4 10 0>;
			linux,default-trigger = "heartbeat";
		};
	};

	backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm 0 500000>;
		/*
		 * a silly way to create a 1:1 relationship between the
		 * PWM value and the actual duty cycle
		 */
		brightness-levels = < 0  1  2  3  4  5  6  7  8  9
				     10 11 12 13 14 15 16 17 18 19
				     20 21 22 23 24 25 26 27 28 29
				     30 31 32 33 34 35 36 37 38 39
				     40 41 42 43 44 45 46 47 48 49
				     50 51 52 53 54 55 56 57 58 59
				     60 61 62 63 64 65 66 67 68 69
				     70 71 72 73 74 75 76 77 78 79
				     80 81 82 83 84 85 86 87 88 89
				     90 91 92 93 94 95 96 97 98 99
				    100>;
		default-brightness-level = <50>;
	};

	matrix_keypad: matrix-keypad@0 {
		compatible = "gpio-matrix-keypad";
		col-gpios = <
			&gpio5 0 0
			&gpio5 1 0
			&gpio5 2 0
			&gpio5 3 0
		>;
		row-gpios = <
			&gpio5 4 0
			&gpio5 5 0
			&gpio5 6 0
			&gpio5 7 0
		>;
		/* sample keymap */
		linux,keymap = <
			0x00000074 /* row 0, col 0, KEY_POWER */
			0x00010052 /* row 0, col 1, KEY_KP0 */
			0x0002004f /* row 0, col 2, KEY_KP1 */
			0x00030050 /* row 0, col 3, KEY_KP2 */
			0x01000051 /* row 1, col 0, KEY_KP3 */
			0x0101004b /* row 1, col 1, KEY_KP4 */
			0x0102004c /* row 1, col 2, KEY_KP5 */
			0x0103004d /* row 1, col 3, KEY_KP6 */
			0x02000047 /* row 2, col 0, KEY_KP7 */
			0x02010048 /* row 2, col 1, KEY_KP8 */
			0x02020049 /* row 2, col 2, KEY_KP9 */
		>;
		gpio-activelow;
		linux,wakeup;
		debounce-delay-ms = <100>;
		col-scan-delay-us = <5000>;
		linux,no-autorepeat;
	};
};

/* 2nd TX-Std UART - (A)UART1  */
&auart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&auart1_pins_a>;
	status = "okay";
};

/* 3rd TX-Std UART - (A)UART3  */
&auart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&auart3_pins_a>;
	status = "okay";
};

&can0 {
	pinctrl-names = "default";
	pinctrl-0 = <&can0_pins_a>;
	xceiver-supply = <&reg_can_xcvr>;
	status = "okay";
};

&can1 {
	pinctrl-names = "default";
	pinctrl-0 = <&can1_pins_a>;
	xceiver-supply = <&reg_can_xcvr>;
	status = "okay";
};

&digctl {
	status = "okay";
};

/* 1st TX-Std UART - (D)UART */
&duart {
	pinctrl-names = "default";
	pinctrl-0 = <&duart_4pins_a>;
	status = "okay";
};

&gpmi {
	pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
	nand-on-flash-bbt;
	status = "okay";
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins_a>;
	clock-frequency = <400000>;
	status = "okay";

	sgtl5000: sgtl5000@0a {
		compatible = "fsl,sgtl5000";
		reg = <0x0a>;
		VDDA-supply = <&reg_2p5v>;
		VDDIO-supply = <&reg_3p3v>;
		clocks = <&mclk>;
	};

	gpio5: pca953x@20 {
		compatible = "nxp,pca9554";
		reg = <0x20>;
		pinctrl-names = "default";
		pinctrl-0 = <&tx28_pca9554_pins>;
		interrupt-parent = <&gpio3>;
		interrupts = <28 0>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	polytouch: edt-ft5x06@38 {
		compatible = "edt,edt-ft5x06";
		reg = <0x38>;
		pinctrl-names = "default";
		pinctrl-0 = <&tx28_edt_ft5x06_pins>;
		interrupt-parent = <&gpio2>;
		interrupts = <5 0>;
		reset-gpios = <&gpio2 6 1>;
		wake-gpios = <&gpio4 9 0>;
	};

	touchscreen: tsc2007@48 {
		compatible = "ti,tsc2007";
		reg = <0x48>;
		pinctrl-names = "default";
		pinctrl-0 = <&tx28_tsc2007_pins>;
		interrupt-parent = <&gpio3>;
		interrupts = <20 0>;
		pendown-gpio = <&gpio3 20 1>;
		ti,x-plate-ohms = /bits/ 16 <660>;
	};

	ds1339: rtc@68 {
		compatible = "mxim,ds1339";
		reg = <0x68>;
	};
};

&lcdif {
	pinctrl-names = "default";
	pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
	lcd-supply = <&reg_lcd>;
	display = <&display>;
	status = "okay";

	display: display@0 {
		bits-per-pixel = <32>;
		bus-width = <24>;
		display-timings {
			native-mode = <&timing5>;
			timing0: timing0 {
				panel-name = "VGA";
				clock-frequency = <25175000>;
				hactive = <640>;
				vactive = <480>;
				hback-porch = <48>;
				hsync-len = <96>;
				hfront-porch = <16>;
				vback-porch = <33>;
				vsync-len = <2>;
				vfront-porch = <10>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <1>;
			};

			timing1: timing1 {
				panel-name = "ETV570";
				clock-frequency = <25175000>;
				hactive = <640>;
				vactive = <480>;
				hback-porch = <114>;
				hsync-len = <30>;
				hfront-porch = <16>;
				vback-porch = <32>;
				vsync-len = <3>;
				vfront-porch = <10>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <1>;
			};

			timing2: timing2 {
				panel-name = "ET0350";
				clock-frequency = <6500000>;
				hactive = <320>;
				vactive = <240>;
				hback-porch = <34>;
				hsync-len = <34>;
				hfront-porch = <20>;
				vback-porch = <15>;
				vsync-len = <3>;
				vfront-porch = <4>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <1>;
			};

			timing3: timing3 {
				panel-name = "ET0430";
				clock-frequency = <9000000>;
				hactive = <480>;
				vactive = <272>;
				hback-porch = <2>;
				hsync-len = <41>;
				hfront-porch = <2>;
				vback-porch = <2>;
				vsync-len = <10>;
				vfront-porch = <2>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <1>;
			};

			timing4: timing4 {
				panel-name = "ET0500", "ET0700";
				clock-frequency = <33260000>;
				hactive = <800>;
				vactive = <480>;
				hback-porch = <88>;
				hsync-len = <128>;
				hfront-porch = <40>;
				vback-porch = <33>;
				vsync-len = <2>;
				vfront-porch = <10>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <1>;
			};

			timing5: timing5 {
				panel-name = "ETQ570";
				clock-frequency = <6400000>;
				hactive = <320>;
				vactive = <240>;
				hback-porch = <38>;
				hsync-len = <30>;
				hfront-porch = <30>;
				vback-porch = <16>;
				vsync-len = <3>;
				vfront-porch = <4>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <1>;
			};
		};
	};
};

&lradc {
	fsl,lradc-touchscreen-wires = <4>;
	status = "okay";
};

&mac0 {
	phy-mode = "rmii";
	pinctrl-names = "default", "gpio_mode";
	pinctrl-0 = <&mac0_pins_a>;
	pinctrl-1 = <&tx28_mac0_pins_gpio>;
	status = "okay";
};

&mac1 {
	phy-mode = "rmii";
	pinctrl-names = "default";
	pinctrl-0 = <&mac1_pins_a>;
	/* not enabled by default */
};

&mxs_rtc {
	status = "okay";
};

&ocotp {
	status = "okay";
};

&pwm {
	pinctrl-names = "default";
	pinctrl-0 = <&pwm0_pins_a>;
	status = "okay";
};

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

	hog_pins_a: hog@0 {
		reg = <0>;
		fsl,pinmux-ids = <
			MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
		fsl,pinmux-ids = <
			MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
			MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
			MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
		fsl,pinmux-ids = <
			MX28_PAD_LCD_D00__GPIO_1_0
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
		fsl,pinmux-ids = <
			/* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
			MX28_PAD_LCD_D01__LCD_D1
			MX28_PAD_LCD_D02__LCD_D2
			MX28_PAD_LCD_D03__LCD_D3
			MX28_PAD_LCD_D04__LCD_D4
			MX28_PAD_LCD_D05__LCD_D5
			MX28_PAD_LCD_D06__LCD_D6
			MX28_PAD_LCD_D07__LCD_D7
			MX28_PAD_LCD_D08__LCD_D8
			MX28_PAD_LCD_D09__LCD_D9
			MX28_PAD_LCD_D10__LCD_D10
			MX28_PAD_LCD_D11__LCD_D11
			MX28_PAD_LCD_D12__LCD_D12
			MX28_PAD_LCD_D13__LCD_D13
			MX28_PAD_LCD_D14__LCD_D14
			MX28_PAD_LCD_D15__LCD_D15
			MX28_PAD_LCD_D16__LCD_D16
			MX28_PAD_LCD_D17__LCD_D17
			MX28_PAD_LCD_D18__LCD_D18
			MX28_PAD_LCD_D19__LCD_D19
			MX28_PAD_LCD_D20__LCD_D20
			MX28_PAD_LCD_D21__LCD_D21
			MX28_PAD_LCD_D22__LCD_D22
			MX28_PAD_LCD_D23__LCD_D23
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
		fsl,pinmux-ids = <
			MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
			MX28_PAD_LCD_RESET__GPIO_3_30  /* Reset */
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
		fsl,pinmux-ids = <
			MX28_PAD_ENET0_MDC__GPIO_4_0
			MX28_PAD_ENET0_MDIO__GPIO_4_1
			MX28_PAD_ENET0_RX_EN__GPIO_4_2
			MX28_PAD_ENET0_RXD0__GPIO_4_3
			MX28_PAD_ENET0_RXD1__GPIO_4_4
			MX28_PAD_ENET0_TX_EN__GPIO_4_6
			MX28_PAD_ENET0_TXD0__GPIO_4_7
			MX28_PAD_ENET0_TXD1__GPIO_4_8
			MX28_PAD_ENET_CLK__GPIO_4_16
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_pca9554_pins: tx28-pca9554-pins {
		fsl,pinmux-ids = <
			MX28_PAD_PWM3__GPIO_3_28
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_tsc2007_pins: tx28-tsc2007-pins {
		fsl,pinmux-ids = <
			MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
		>;
		fsl,drive-strength = <MXS_DRIVE_4mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};


	tx28_usbphy0_pins: tx28-usbphy0-pins {
		fsl,pinmux-ids = <
			MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
			MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
		>;
		fsl,drive-strength = <MXS_DRIVE_12mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_usbphy1_pins: tx28-usbphy1-pins {
		fsl,pinmux-ids = <
			MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
			MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
		>;
		fsl,drive-strength = <MXS_DRIVE_12mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};
};

&saif0 {
	pinctrl-names = "default";
	pinctrl-0 = <&saif0_pins_b>;
	fsl,saif-master;
	status = "okay";
};

&saif1 {
	pinctrl-names = "default";
	pinctrl-0 = <&saif1_pins_a>;
	status = "okay";
};

&ssp0 {
	compatible = "fsl,imx28-mmc";
	pinctrl-names = "default", "special";
	pinctrl-0 = <&mmc0_4bit_pins_a
		     &mmc0_cd_cfg
		     &mmc0_sck_cfg>;
	bus-width = <4>;
	status = "okay";
};

&ssp3 {
	compatible = "fsl,imx28-spi";
	pinctrl-names = "default";
	pinctrl-0 = <&spi3_pins_a>;
	clock-frequency = <57600000>;
	status = "okay";

	spidev0: spi@0 {
		compatible = "spidev";
		reg = <0>;
		spi-max-frequency = <57600000>;
	};

	spidev1: spi@1 {
		compatible = "spidev";
		reg = <1>;
		spi-max-frequency = <57600000>;
	};
};

&usb0 {
	vbus-supply = <&reg_usb0_vbus>;
	disable-over-current;
	dr_mode = "peripheral";
	status = "okay";
};

&usb1 {
	vbus-supply = <&reg_usb1_vbus>;
	disable-over-current;
	dr_mode = "host";
	status = "okay";
};

&usbphy0 {
	pinctrl-names = "default";
	pinctrl-0 = <&tx28_usbphy0_pins>;
	phy_type = "utmi";
	status = "okay";
};

&usbphy1 {
	pinctrl-names = "default";
	pinctrl-0 = <&tx28_usbphy1_pins>;
	phy_type = "utmi";
	status = "okay";
};
