/*
 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
 *
 * 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-tx53.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pwm/pwm.h>

/ {
	model = "Ka-Ro electronics TX53 module (LCD)";
	compatible = "karo,tx53", "fsl,imx53";

	aliases {
		display = &display;
	};

	soc {
		display: disp0 {
			compatible = "fsl,imx-parallel-display";
			interface-pix-fmt = "rgb24";
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_rgb24_vga1>;
			status = "okay";

			port {
				display0_in: endpoint {
					remote-endpoint = <&ipu_di0_disp0>;
				};
			};

			display-timings {
				VGA {
					clock-frequency = <25200000>;
					hactive = <640>;
					vactive = <480>;
					hback-porch = <48>;
					hsync-len = <96>;
					hfront-porch = <16>;
					vback-porch = <31>;
					vsync-len = <2>;
					vfront-porch = <12>;
					hsync-active = <0>;
					vsync-active = <0>;
					de-active = <1>;
					pixelclk-active = <0>;
				};

				ETV570 {
					clock-frequency = <25200000>;
					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 = <0>;
				};

				ET0350 {
					clock-frequency = <6413760>;
					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 = <0>;
				};

				ET0430 {
					clock-frequency = <9009000>;
					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>;
				};

				ET0500 {
					clock-frequency = <33264000>;
					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 = <0>;
				};

				ET0700 { /* same as ET0500 */
					clock-frequency = <33264000>;
					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 = <0>;
				};

				ETQ570 {
					clock-frequency = <6596040>;
					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 = <0>;
				};
			};
		};
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>;
		power-supply = <&reg_3v3>;
		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>;
	};

	reg_lcd_pwr: regulator-lcd-pwr {
		compatible = "regulator-fixed";
		regulator-name = "LCD POWER";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-boot-on;
	};

	reg_lcd_reset: regulator-lcd-reset {
		compatible = "regulator-fixed";
		regulator-name = "LCD RESET";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-boot-on;
	};
};

&i2c3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3>;
	status = "okay";

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

	polytouch: edt-ft5x06@38 {
		compatible = "edt,edt-ft5x06";
		reg = <0x38>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_edt_ft5x06_1>;
		interrupt-parent = <&gpio6>;
		interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
		reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
		wake-gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
	};

	touchscreen: tsc2007@48 {
		compatible = "ti,tsc2007";
		reg = <0x48>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_tsc2007>;
		interrupt-parent = <&gpio3>;
		interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
		gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
		ti,x-plate-ohms = <660>;
		wakeup-source;
	};
};

&iomuxc {
	imx53-tx53-x03x {
		pinctrl_edt_ft5x06_1: edt-ft5x06grp-1 {
			fsl,pins = <
				MX53_PAD_NANDF_CS2__GPIO6_15 0x1f0 /* Interrupt */
				MX53_PAD_EIM_A16__GPIO2_22   0x04 /* Reset */
				MX53_PAD_EIM_A17__GPIO2_21   0x04 /* Wake */
			>;
		};

		pinctrl_kpp: kppgrp {
			fsl,pins = <
				MX53_PAD_GPIO_9__KPP_COL_6 0x1f4
				MX53_PAD_GPIO_4__KPP_COL_7 0x1f4
				MX53_PAD_KEY_COL2__KPP_COL_2 0x1f4
				MX53_PAD_KEY_COL3__KPP_COL_3 0x1f4
				MX53_PAD_GPIO_2__KPP_ROW_6 0x1f4
				MX53_PAD_GPIO_5__KPP_ROW_7 0x1f4
				MX53_PAD_KEY_ROW2__KPP_ROW_2 0x1f4
				MX53_PAD_KEY_ROW3__KPP_ROW_3 0x1f4
			>;
		};

		pinctrl_rgb24_vga1: rgb24-vgagrp1 {
			fsl,pins = <
				MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK		0x5
				MX53_PAD_DI0_PIN15__IPU_DI0_PIN15		0x5
				MX53_PAD_DI0_PIN2__IPU_DI0_PIN2			0x5
				MX53_PAD_DI0_PIN3__IPU_DI0_PIN3			0x5
				MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0		0x5
				MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1		0x5
				MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2		0x5
				MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3		0x5
				MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4		0x5
				MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5		0x5
				MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6		0x5
				MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7		0x5
				MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8		0x5
				MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9		0x5
				MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10		0x5
				MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11		0x5
				MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12		0x5
				MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13		0x5
				MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14		0x5
				MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15		0x5
				MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16		0x5
				MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17		0x5
				MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18		0x5
				MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19		0x5
				MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20		0x5
				MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21		0x5
				MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22		0x5
				MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23		0x5
			>;
		};

		pinctrl_tsc2007: tsc2007grp {
			fsl,pins = <
				MX53_PAD_EIM_D26__GPIO3_26 0x1f0 /* Interrupt */
			>;
		};
	};
};

&ipu_di0_disp0 {
	remote-endpoint = <&display0_in>;
};

&kpp {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_kpp>;
	/* sample keymap */
	/* row/col 0,1 are mapped to KPP row/col 6,7 */
	linux,keymap = <
		MATRIX_KEY(6, 6, KEY_POWER)
		MATRIX_KEY(6, 7, KEY_KP0)
		MATRIX_KEY(6, 2, KEY_KP1)
		MATRIX_KEY(6, 3, KEY_KP2)
		MATRIX_KEY(7, 6, KEY_KP3)
		MATRIX_KEY(7, 7, KEY_KP4)
		MATRIX_KEY(7, 2, KEY_KP5)
		MATRIX_KEY(7, 3, KEY_KP6)
		MATRIX_KEY(2, 6, KEY_KP7)
		MATRIX_KEY(2, 7, KEY_KP8)
		MATRIX_KEY(2, 2, KEY_KP9)
	>;
	status = "okay";
};
