// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright 2017 Beckhoff Automation GmbH & Co. KG
 * based on imx53-qsb.dts
 */

/dts-v1/;
#include "imx53.dtsi"

/ {
	model = "Beckhoff CX9020 Embedded PC";
	compatible = "bhf,cx9020", "fsl,imx53";

	chosen {
		stdout-path = &uart2;
	};

	memory@70000000 {
		device_type = "memory";
		reg = <0x70000000 0x20000000>,
		      <0xb0000000 0x20000000>;
	};

	display-0 {
		#address-cells =<1>;
		#size-cells = <0>;
		compatible = "fsl,imx-parallel-display";
		interface-pix-fmt = "rgb24";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ipu_disp0>;

		port@0 {
			reg = <0>;

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

		port@1 {
			reg = <1>;

			display0_out: endpoint {
				remote-endpoint = <&tfp410_in>;
			};
		};
	};

	dvi-connector {
		compatible = "dvi-connector";
		ddc-i2c-bus = <&i2c2>;
		digital;

		port {
			dvi_connector_in: endpoint {
				remote-endpoint = <&tfp410_out>;
			};
		};
	};

	dvi-converter {
		compatible = "ti,tfp410";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				tfp410_in: endpoint {
					remote-endpoint = <&display0_out>;
				};
			};

			port@1 {
				reg = <1>;

				tfp410_out: endpoint {
					remote-endpoint = <&dvi_connector_in>;
				};
			};
		};
	};

	leds {
		compatible = "gpio-leds";

		pwr-r {
			gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		pwr-g {
			gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		pwr-b {
			gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		sd1-b {
			linux,default-trigger = "mmc0";
			gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
		};

		sd2-b {
			linux,default-trigger = "mmc1";
			gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
		};
	};

	regulator-3p2v {
		compatible = "regulator-fixed";
		regulator-name = "3P2V";
		regulator-min-microvolt = <3200000>;
		regulator-max-microvolt = <3200000>;
		regulator-always-on;
	};

	reg_usb_vbus: regulator-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usb_vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};
};

&esdhc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esdhc1>;
	cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
	bus-width = <4>;
	status = "okay";
};

&esdhc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esdhc2>;
	cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
	bus-width = <4>;
	status = "okay";
};

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

&i2c2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2>;
	status = "okay";
};

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

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

&usbh1 {
	vbus-supply = <&reg_usb_vbus>;
	phy_type = "utmi";
	status = "okay";
};

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

&vpu {
	status = "okay";
};

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

	pinctrl_hog: hoggrp {
		fsl,pins = <
			MX53_PAD_GPIO_0__CCM_CLKO               0x1c4
			MX53_PAD_GPIO_16__I2C3_SDA              0x1c4
			MX53_PAD_EIM_D22__GPIO3_22              0x1c4
			MX53_PAD_EIM_D23__GPIO3_23              0x1e4
			MX53_PAD_EIM_D24__GPIO3_24              0x1e4
		>;
	};

	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
			MX53_PAD_GPIO_1__ESDHC1_CD              0x1c4
			MX53_PAD_EIM_D17__GPIO3_17              0x1e4
			MX53_PAD_GPIO_3__GPIO1_3                0x1c4
		>;
	};

	pinctrl_esdhc2: esdhc2grp {
		fsl,pins = <
			MX53_PAD_SD2_DATA0__ESDHC2_DAT0		0x1d5
			MX53_PAD_SD2_DATA1__ESDHC2_DAT1		0x1d5
			MX53_PAD_SD2_DATA2__ESDHC2_DAT2		0x1d5
			MX53_PAD_SD2_DATA3__ESDHC2_DAT3		0x1d5
			MX53_PAD_SD2_CMD__ESDHC2_CMD		0x1d5
			MX53_PAD_SD2_CLK__ESDHC2_CLK		0x1d5
			MX53_PAD_GPIO_4__ESDHC2_CD              0x1e4
			MX53_PAD_EIM_D20__GPIO3_20              0x1e4
			MX53_PAD_GPIO_8__GPIO1_8                0x1c4
		>;
	};

	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_i2c2: i2c2grp {
		fsl,pins = <
			MX53_PAD_KEY_ROW3__I2C2_SDA             0xc0000000
			MX53_PAD_KEY_COL3__I2C2_SCL             0xc0000000
		>;
	};

	pinctrl_ipu_disp0: ipudisp0grp {
		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_DI0_PIN4__IPU_DI0_PIN4		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_uart2: uart2grp {
		fsl,pins = <
			MX53_PAD_EIM_D26__UART2_RXD_MUX	0x1e4
			MX53_PAD_EIM_D27__UART2_TXD_MUX 0x1e4
			MX53_PAD_EIM_D28__UART2_RTS 0x1e4
			MX53_PAD_EIM_D29__UART2_CTS 0x1e4
		>;
	};
};
