// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2023 Toradex
 *
 * Common dtsi for Verdin AM62 SoM on Yavia carrier board
 *
 * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
 * https://www.toradex.com/products/carrier-board/yavia
 */

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

/ {
	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_qspi1_clk_gpio>,
			    <&pinctrl_qspi1_cs_gpio>,
			    <&pinctrl_qspi1_io0_gpio>,
			    <&pinctrl_qspi1_io1_gpio>,
			    <&pinctrl_qspi1_io2_gpio>,
			    <&pinctrl_qspi1_io3_gpio>;

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

/* Verdin ETHs */
&cpsw3g {
	status = "okay";
};

/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
&cpsw3g_mdio {
	status = "okay";
};

/* Verdin ETH_1 (On-module PHY) */
&cpsw_port1 {
	status = "okay";
};

/* Verdin PWM_1, PWM_2 */
&epwm0 {
	status = "okay";
};

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

&main_gpio0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
		    <&pinctrl_gpio_5>,
		    <&pinctrl_gpio_6>,
		    <&pinctrl_gpio_7>,
		    <&pinctrl_gpio_8>,
		    <&pinctrl_qspi1_cs2_gpio>;
};

&main_gpio1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_qspi1_dqs_gpio>;
};

/* Verdin I2C_1 */
&main_i2c1 {
	status = "okay";

	/* Temperature sensor */
	sensor@4f {
		compatible = "ti,tmp75c";
		reg = <0x4f>;
	};

	/* EEPROM */
	eeprom@57 {
		compatible = "st,24c02";
		reg = <0x57>;
		pagesize = <16>;
	};
};

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

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

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

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

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

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

&mcu_gpio0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_gpio_1>,
		    <&pinctrl_gpio_2>,
		    <&pinctrl_gpio_3>,
		    <&pinctrl_gpio_4>;
};

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

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

/* Verdin UART_4 */
&mcu_uart0 {
	status = "okay";
};

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

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

&usb0 {
	status = "okay";
};

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

&usb1 {
	status = "okay";
};

/* Verdin CTRL_WAKE1_MICO# */
&verdin_gpio_keys {
	status = "okay";
};

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