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

/ {
	/* TODO: Audio Codec */

	reg_eth2phy: regulator-eth2phy {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */
		off-on-delay-us = <500000>;
		regulator-max-microvolt = <3300000>;
		regulator-min-microvolt = <3300000>;
		regulator-name = "+V3.3_ETH";
		startup-delay-us = <200000>;
		vin-supply = <&reg_3p3v>;
	};
};

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

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

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

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

&eqos {
	status = "okay";
};

&fec {
	phy-supply = <&reg_eth2phy>;
	status = "okay";
};

&flexcan1 {
	status = "okay";
};

&flexcan2 {
	status = "okay";
};

/* Verdin QSPI_1 */
&flexspi {
	status = "okay";
};

&gpio_expander_21 {
	status = "okay";
	vcc-supply = <&reg_1p8v>;
};

/* Current measurement into module VCC */
&hwmon {
	status = "okay";
};

&hwmon_temp {
	vs-supply = <&reg_1p8v>;
	status = "okay";
};

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

&i2c3 {
	status = "okay";
};

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

	/* TODO: Audio Codec */
};

/* 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>;
};

/* TODO: Verdin I2C_1 with Audio Codec */

/* Verdin UART_1, connector X50 through RS485 transceiver */
&uart1 {
	linux,rs485-enabled-at-boot-time;
	rs485-rts-active-low;
	rs485-rx-during-tx;
	status = "okay";
};

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

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

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

&usb3_phy0 {
	status = "okay";
};

/* Verdin USB_2 */
&usb3_1 {
	fsl,permanently-attached;
	status = "okay";
};

&usb3_phy1 {
	status = "okay";
};

/* Limit frequency on dev board due to long traces and bad signal integrity */
&usdhc2 {
	max-frequency = <100000000>;
	status = "okay";
};