// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2023 Toradex
 */

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

/ {
	/* Carrier Board Supply +V1.8 */
	reg_1p8v: regulator-1p8v {
		compatible = "regulator-fixed";
		regulator-max-microvolt = <1800000>;
		regulator-min-microvolt = <1800000>;
		regulator-name = "+V1.8_SW";
	};

	/* Carrier Board Supply +V3.3 */
	reg_3p3v: regulator-3p3v {
		compatible = "regulator-fixed";
		regulator-max-microvolt = <3300000>;
		regulator-min-microvolt = <3300000>;
		regulator-name = "+V3.3_SW";
	};

	leds {
		compatible = "gpio-leds";

		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_leds_yavia>;

		/* SODIMM 52 - LD1_RED */
		led-0 {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <1>;
			gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
		};
		/* SODIMM 54 - LD1_GREEN */
		led-1 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <1>;
			gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
		};
		/* SODIMM 56 - LD1_BLUE */
		led-2 {
			color = <LED_COLOR_ID_BLUE>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <1>;
			gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>;
		};
		/* SODIMM 58 - LD2_RED */
		led-3 {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <2>;
			gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
		};
		/* SODIMM 60 - LD2_GREEN */
		led-4 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <2>;
			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
		};
		/* SODIMM 62 - LD2_BLUE */
		led-5 {
			color = <LED_COLOR_ID_BLUE>;
			function = LED_FUNCTION_DEBUG;
			function-enumerator = <2>;
			gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>;
		};
	};
};

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

/* Verdin SPI_1 */
&ecspi1 {
	status = "okay";
};

/* EEPROM on display adapter boards */
&eeprom_display_adapter {
	status = "okay";
};

/* EEPROM on Verdin Yavia board */
&eeprom_carrier_board {
	status = "okay";
};

&eqos {
	status = "okay";
};

&flexcan1 {
	status = "okay";
};

&hwmon_temp {
	status = "okay";
};

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

&i2c3 {
	status = "okay";
};

&i2c4 {
	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 UART_1 */
&uart1 {
	status = "okay";
};

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

/* Verdin UART_3, used as the Linux Console */
&uart3 {
	status = "okay";
};

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

&usb3_0 {
	status = "okay";
};

&usb_dwc3_0 {
	status = "okay";
};

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

&usb3_1 {
	status = "okay";
};

&usb_dwc3_1 {
	status = "okay";
};

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

&iomuxc {
	pinctrl_leds_yavia: ledsyaviagrp {
		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 */
			MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08	0x106	/* SODIMM 60 */
			MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09	0x106	/* SODIMM 62 */
		>;
	};

	pinctrl_gpios_ext_yavia: gpiosextyaviagrp {
		fsl,pins = <
			MX8MP_IOMUXC_NAND_CE1_B__GPIO3_IO02	0x106	/* SODIMM 64 */
			MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14	0x106	/* SODIMM 66 */
		>;
	};
};