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

	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 {
			timing-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>;
			};

			timing-etc570 {
				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>;
			};

			timing-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>;
			};

			timing-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>;
			};

			timing-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>;
			};

			timing-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>;
			};

			timing-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>;
		#sound-dai-cells = <0>;
		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>;
		wakeup-source;
	};

	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";
};
