// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2023 Toradex
 *
 * Common dtsi for Verdin IMX8MP SoM on Mallow carrier board
 *
 * https://www.toradex.com/computer-on-modules/verdin-arm-family/nxp-imx-8m-plus
 * https://www.toradex.com/products/carrier-board/mallow-carrier-board
 */

#include <dt-bindings/leds/common.h>

/ {
	native-hdmi-connector {
		compatible = "hdmi-connector";
		label = "X14";
		type = "a";

		port {
			native_hdmi_connector_in: endpoint {
				remote-endpoint = <&hdmi_tx_out>;
			};
		};
	};

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

		/* SODIMM 52 - USER_LED_1_RED */
		led-0 {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <1>;
			gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
		};

		/* SODIMM 54 - USER_LED_1_GREEN */
		led-1 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <1>;
			gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
		};

		/* SODIMM 56 - USER_LED_2_RED */
		led-2 {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <2>;
			gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>;
		};

		/* SODIMM 58 - USER_LED_2_GREEN */
		led-3 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <2>;
			gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
		};
	};
};

/* Verdin HDMI_1 Audio */
&aud2htx {
	status = "okay";
};

&backlight {
	power-supply = <&reg_3p3v>;
};

/* Verdin SPI_1 */
&ecspi1 {
	pinctrl-0 = <&pinctrl_ecspi1>, <&pinctrl_tpm_cs>;
	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>, <&gpio3 16 GPIO_ACTIVE_LOW>;
	status = "okay";

	tpm@1 {
		compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
		reg = <1>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_tpm_irq>;
		interrupt-parent = <&gpio3>;
		interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
		spi-max-frequency = <18500000>;
	};
};

/* EEPROM on Mallow */
&eeprom_carrier_board {
	status = "okay";
};

/* Verdin ETH_1 */
&eqos {
	status = "okay";
};

/* Verdin CAN_1 */
&flexcan1 {
	status = "okay";
};

/* Verdin CAN_2 */
&flexcan2 {
	status = "okay";
};

/* Verdin HDMI_1 */
&hdmi_pvi {
	status = "okay";
};

&hdmi_tx {
	status = "okay";

	ports {
		port@1 {
			hdmi_tx_out: endpoint {
				remote-endpoint = <&native_hdmi_connector_in>;
			};
		};
	};
};

&hdmi_tx_phy {
	status = "okay";
};

/* Temperature sensor on Mallow */
&hwmon_temp {
	compatible = "ti,tmp1075";
	status = "okay";
};

/* Verdin I2C_2_DSI */
&i2c2 {
	status = "okay";
};

/* Verdin I2C_4_CSI */
&i2c3 {
	status = "okay";
};

/* Verdin I2C_1 */
&i2c4 {
	status = "okay";
};

/* Verdin I2C_3_HDMI */
&i2c5 {
	status = "okay";
};

&lcdif3 {
	status = "okay";
};

/* Verdin PCIE_1 */
&pcie {
	status = "okay";
};

&pcie_phy {
	status = "okay";
};

/* Verdin PWM_1 */
&pwm1 {
	status = "okay";
};

/* Verdin PWM_2 */
&pwm2 {
	status = "okay";
};

/* Verdin PWM_3_DSI */
&pwm3 {
	status = "okay";
};

&reg_usdhc2_vmmc {
	vin-supply = <&reg_3p3v>;
};

/* Verdin HDMI_1 Audio */
&sound_hdmi {
	status = "okay";
};

/* Verdin UART_1 */
&uart1 {
	status = "okay";
};

/* Verdin UART_2 */
&uart2 {
	status = "okay";
};

/* Verdin UART_3 */
&uart3 {
	status = "okay";
};

/* Verdin USB_1 */
&usb3_0 {
	status = "okay";
};

&usb3_phy0 {
	status = "okay";
};

/* Verdin USB_2 */
&usb3_1 {
	status = "okay";
};

&usb3_phy1 {
	status = "okay";
};

/* Verdin SD_1 */
&usdhc2 {
	status = "okay";
};

&iomuxc {
	pinctrl_leds: ledsgrp {
		fsl,pins =
			<MX8MP_IOMUXC_NAND_ALE__GPIO3_IO00	0x106>, /* SODIMM 52 */
			<MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01	0x106>, /* SODIMM 54 */
			<MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06	0x106>, /* SODIMM 56 */
			<MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07	0x106>; /* SODIMM 58 */
	};

	pinctrl_tpm_cs: tpmcsgrp {
		fsl,pins =
			<MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16	0x82>; /* SODIMM 64 */
	};

	pinctrl_tpm_irq: tpmirqgrp {
		fsl,pins =
			<MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14	0x16>; /* SODIMM 66 */
	};
};
