// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
 */

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

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

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

	memory@40000000 {
		device_type = "memory";
		reg = <0x40000000 0>; /* will be filled in by U-Boot */
	};

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

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

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

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

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

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

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

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

	mclk: clock-mclk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <26000000>;
	};

	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 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm 0 500000 0>;
		/*
		 * 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 {
		compatible = "gpio-matrix-keypad";
		col-gpios = <
			&gpio5 0 GPIO_ACTIVE_HIGH
			&gpio5 1 GPIO_ACTIVE_HIGH
			&gpio5 2 GPIO_ACTIVE_HIGH
			&gpio5 3 GPIO_ACTIVE_HIGH
		>;
		row-gpios = <
			&gpio5 4 GPIO_ACTIVE_HIGH
			&gpio5 5 GPIO_ACTIVE_HIGH
			&gpio5 6 GPIO_ACTIVE_HIGH
			&gpio5 7 GPIO_ACTIVE_HIGH
		>;
		/* 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;
		wakeup-source;
		debounce-delay-ms = <100>;
		col-scan-delay-us = <5000>;
		linux,no-autorepeat;
	};

	spi_gpio: spi {
		compatible = "spi-gpio";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&tx28_spi_gpio_pins>;

		sck-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
		mosi-gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
		miso-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
		num-chipselects = <3>;
		cs-gpios = <
			&gpio2 27 GPIO_ACTIVE_LOW
			&gpio3 8 GPIO_ACTIVE_LOW
			&gpio3 9 GPIO_ACTIVE_LOW
		>;
		/* enable this and disable ssp3 below, if you need full duplex SPI transfer */
		status = "disabled";
	};
};

/* 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@a {
		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 IRQ_TYPE_NONE>;
		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 IRQ_TYPE_EDGE_FALLING>;
		reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
		wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
		wakeup-source;
	};

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

	ds1339: rtc@68 {
		compatible = "dallas,ds1339";
		reg = <0x68>;
		trickle-resistor-ohms = <250>;
		trickle-diode-disable;
	};
};

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

	display0: display0 {
		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@0 {
		reg = <0>;
		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@0 {
		reg = <0>;
		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@0 {
		reg = <0>;
		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@0 {
		reg = <0>;
		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@0 {
		reg = <0>;
		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@0 {
		reg = <0>;
		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_spi_gpio_pins: spi-gpiogrp@0 {
		reg = <0>;
		fsl,pinmux-ids = <
			MX28_PAD_AUART2_RX__GPIO_3_8
			MX28_PAD_AUART2_TX__GPIO_3_9
			MX28_PAD_SSP3_SCK__GPIO_2_24
			MX28_PAD_SSP3_MOSI__GPIO_2_25
			MX28_PAD_SSP3_MISO__GPIO_2_26
			MX28_PAD_SSP3_SS0__GPIO_2_27
		>;
		fsl,drive-strength = <MXS_DRIVE_8mA>;
		fsl,voltage = <MXS_VOLTAGE_HIGH>;
		fsl,pull-up = <MXS_PULL_DISABLE>;
	};

	tx28_tsc2007_pins: tx28-tsc2007-pins@0 {
		reg = <0>;
		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@0 {
		reg = <0>;
		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@0 {
		reg = <0>;
		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";
};

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

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

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

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