// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (C) 2019 Marek Vasut <marex@denx.de>
 */

/dts-v1/;
#include "imx53-m53.dtsi"
#include "imx53-m53menlo-u-boot.dtsi"

/ {
	model = "MENLO M53 EMBEDDED DEVICE";
	compatible = "menlo,m53menlo", "fsl,imx53";

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_led>;

		user1 {
			label = "TestLed601";
			gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc0";
		};

		user2 {
			label = "TestLed602";
			gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		eth {
			label = "EthLedYe";
			gpios = <&gpio2 11 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "none";
		};
	};

	panel {
		compatible = "edt,etm070080dh6";
		enable-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;

		port {
			panel_in: endpoint {
				remote-endpoint = <&lvds0_out>;
			};
		};
	};

	reg_usbh1_vbus: regulator-usbh1-vbus {
		compatible = "regulator-fixed";
		regulator-name = "vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
	};
};

&can1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_can1>;
	status = "okay";
};

&can2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_can2>;
	status = "okay";
};

&clks {
	assigned-clocks = <&clks IMX5_CLK_CKO1_SEL>,
			  <&clks IMX5_CLK_CKO1_PODF>,
			  <&clks IMX5_CLK_CKO1>;
	assigned-clock-parents = <&clks IMX5_CLK_AHB>;
	assigned-clock-rates = <133333334>, <33333334>, <33333334>;
};

&esdhc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esdhc1>;
	cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
	wp-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
	status = "okay";
};

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fec>;
	phy-mode = "rmii";
	status = "okay";
};

&i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c1>;
	status = "okay";

	touchscreen@38 {
		compatible = "edt,edt-ft5x06";
		reg = <0x38>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_edt_ft5x06>;
		interrupt-parent = <&gpio6>;
		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
		reset-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
		wake-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
	};

	eeprom@50 {
		compatible = "atmel,24c64";
		reg = <0x50>;
		pagesize = <32>;
	};

	dac@60 {
		compatible = "microchip,mcp4725";
		reg = <0x60>;
	};
};

&i2c2 {
	touchscreen@41 {
		status = "disabled";
	};
};

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

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

	imx53-m53evk {
		hoggrp {
			fsl,pins = <
				MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK	0x1c4
				MX53_PAD_EIM_EB3__GPIO2_31		0x1d5
				MX53_PAD_PATA_DA_0__GPIO7_6		0x1d5
				MX53_PAD_GPIO_19__CCM_CLKO		0x1d5
				MX53_PAD_CSI0_MCLK__CCM_CSI0_MCLK	0x1d5
				MX53_PAD_CSI0_DAT4__GPIO5_22		0x1d5
				MX53_PAD_CSI0_DAT5__GPIO5_23		0x1d5
				MX53_PAD_CSI0_DAT6__GPIO5_24		0x1d5
				MX53_PAD_CSI0_DAT7__GPIO5_25		0x1d5
				MX53_PAD_CSI0_DAT8__GPIO5_26		0x1d5
				MX53_PAD_CSI0_DAT9__GPIO5_27		0x1d5
				MX53_PAD_CSI0_DAT10__GPIO5_28		0x1d5
				MX53_PAD_CSI0_DAT11__GPIO5_29		0x1d5
				MX53_PAD_CSI0_DAT14__GPIO6_0		0x1d5
			>;
		};

		pinctrl_led: ledgrp {
			fsl,pins = <
				MX53_PAD_CSI0_DAT15__GPIO6_1		0x1d5
				MX53_PAD_CSI0_DAT16__GPIO6_2		0x1d5
			>;
		};

		pinctrl_can1: can1grp {
			fsl,pins = <
				MX53_PAD_GPIO_7__CAN1_TXCAN		0x1c4
				MX53_PAD_GPIO_8__CAN1_RXCAN		0x1c4
			>;
		};

		pinctrl_can2: can2grp {
			fsl,pins = <
				MX53_PAD_KEY_COL4__CAN2_TXCAN		0x1c4
				MX53_PAD_KEY_ROW4__CAN2_RXCAN		0x1c4
			>;
		};

		pinctrl_display_gpio: display-gpiogrp {
			fsl,pins = <
				MX53_PAD_CSI0_DAT12__GPIO5_30		0x1d5 /* Reset */
				MX53_PAD_CSI0_DAT13__GPIO5_31		0x1d5 /* Interrupt */
			>;
		};

		pinctrl_edt_ft5x06: edt-ft5x06grp {
			fsl,pins = <
				MX53_PAD_PATA_DATA9__GPIO2_9		0x1d5 /* Reset */
				MX53_PAD_CSI0_DAT19__GPIO6_5		0x1d5 /* Interrupt */
				MX53_PAD_PATA_DATA10__GPIO2_10		0x1d5 /* Wake */
			>;
		};

		pinctrl_esdhc1: esdhc1grp {
			fsl,pins = <
				MX53_PAD_SD1_DATA0__ESDHC1_DAT0		0x1d5
				MX53_PAD_SD1_DATA1__ESDHC1_DAT1		0x1d5
				MX53_PAD_SD1_DATA2__ESDHC1_DAT2		0x1d5
				MX53_PAD_SD1_DATA3__ESDHC1_DAT3		0x1d5
				MX53_PAD_SD1_CMD__ESDHC1_CMD		0x1d5
				MX53_PAD_SD1_CLK__ESDHC1_CLK		0x1d5
			>;
		};

		pinctrl_fec: fecgrp {
			fsl,pins = <
				MX53_PAD_FEC_MDC__FEC_MDC		0x4
				MX53_PAD_FEC_MDIO__FEC_MDIO		0x1fc
				MX53_PAD_FEC_REF_CLK__FEC_TX_CLK	0x180
				MX53_PAD_FEC_RX_ER__FEC_RX_ER		0x180
				MX53_PAD_FEC_CRS_DV__FEC_RX_DV		0x180
				MX53_PAD_FEC_RXD1__FEC_RDATA_1		0x180
				MX53_PAD_FEC_RXD0__FEC_RDATA_0		0x180
				MX53_PAD_FEC_TX_EN__FEC_TX_EN		0x4
				MX53_PAD_FEC_TXD1__FEC_TDATA_1		0x4
				MX53_PAD_FEC_TXD0__FEC_TDATA_0		0x4
			>;
		};

		pinctrl_i2c1: i2c1grp {
			fsl,pins = <
				MX53_PAD_EIM_D21__I2C1_SCL		0x400001e4
				MX53_PAD_EIM_D28__I2C1_SDA		0x400001e4
			>;
		};

		pinctrl_i2c3: i2c3grp {
			fsl,pins = <
				MX53_PAD_GPIO_6__I2C3_SDA		0x400001e4
				MX53_PAD_GPIO_5__I2C3_SCL		0x400001e4
			>;
		};

		pinctrl_lvds0: lvds0grp {
			/* LVDS pins only have pin mux configuration */
			fsl,pins = <
				MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK	0x80000000
				MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0	0x80000000
				MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1	0x80000000
				MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2	0x80000000
				MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3	0x80000000
			>;
		};

		pinctrl_uart1: uart1grp {
			fsl,pins = <
				MX53_PAD_PATA_DIOW__UART1_TXD_MUX	0x1e4
				MX53_PAD_PATA_DMACK__UART1_RXD_MUX	0x1e4
			>;
		};

		pinctrl_uart2: uart2grp {
			fsl,pins = <
				MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX	0x1e4
				MX53_PAD_PATA_DMARQ__UART2_TXD_MUX	0x1e4
			>;
		};

		pinctrl_usb: usbgrp {
			fsl,pins = <
				MX53_PAD_GPIO_2__GPIO1_2		0x1d5
				MX53_PAD_GPIO_3__USBOH3_USBH1_OC	0x1d5
			>;
		};
	};
};

&ldb {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lvds0>;
	status = "okay";

	lvds0: lvds-channel@0 {
		reg = <0>;
		fsl,data-mapping = "spwg";
		fsl,data-width = <18>;
		status = "okay";

		port@2 {
			reg = <2>;

			lvds0_out: endpoint {
				remote-endpoint = <&panel_in>;
			};
		};
	};
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	status = "okay";
};

&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart2>;
	status = "okay";
};

&usbh1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb>;
	vbus-supply = <&reg_usbh1_vbus>;
	phy_type = "utmi";
	dr_mode = "peripheral";
	status = "okay";
};

&usbotg {
	dr_mode = "peripheral";
	status = "okay";
};
