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

/ {
	sound_card: sound-card {
		compatible = "simple-audio-card";
		simple-audio-card,bitclock-master = <&dailink_master>;
		simple-audio-card,format = "i2s";
		simple-audio-card,frame-master = <&dailink_master>;
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,name = "verdin-wm8904";
		simple-audio-card,routing =
			"Headphone Jack", "HPOUTL",
			"Headphone Jack", "HPOUTR",
			"IN2L", "Line In Jack",
			"IN2R", "Line In Jack",
			"Headphone Jack", "MICBIAS",
			"IN1L", "Headphone Jack";
		simple-audio-card,widgets =
			"Microphone", "Headphone Jack",
			"Headphone", "Headphone Jack",
			"Line", "Line In Jack";

		dailink_master: simple-audio-card,codec {
			clocks = <&clk IMX8MM_CLK_SAI2_ROOT>;
			sound-dai = <&wm8904_1a>;
		};

		simple-audio-card,cpu {
			sound-dai = <&sai2>;
		};
	};

	reg_usb_hub: regulator-usb-hub {
		compatible = "regulator-fixed";
		enable-active-high;
		/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
		gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
		regulator-name = "HUB_PWR_EN";
	};

	reg_pcie: regulator-pcie {
		compatible = "regulator-fixed";
		enable-active-high;
		/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
		gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
		regulator-name = "PCIE_1_PWR_EN";
		startup-delay-us = <100000>;
	};
};

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

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

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

&fec1 {
	status = "okay";
};

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

&gpio5 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
};

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

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

&i2c3 {
	status = "okay";
};

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

	/* Audio Codec */
	wm8904_1a: audio-codec@1a {
		compatible = "wlf,wm8904";
		AVDD-supply = <&reg_3p3v>;
		clocks = <&clk IMX8MM_CLK_SAI2_ROOT>;
		clock-names = "mclk";
		CPVDD-supply = <&reg_3p3v>;
		DBVDD-supply = <&reg_3p3v>;
		DCVDD-supply = <&reg_3p3v>;
		MICVDD-supply = <&reg_3p3v>;
		reg = <0x1a>;
		#sound-dai-cells = <0>;
	};
};

/* Verdin PCIE_1 */
&pcie0 {
	vpcie-supply = <&reg_pcie>;
	status = "okay";
};

&pcie_phy {
	status = "okay";
};

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

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

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

/* We support turning off sleep moci on Dahlia */
&reg_force_sleep_moci {
	status = "disabled";
};

/* Verdin I2S_1 */
&sai2 {
	status = "okay";
};

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

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

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

/* Verdin USB_1 */
&usbotg1 {
	disable-over-current;
	status = "okay";
};

/* Verdin USB_2 */
&usbotg2 {
	#address-cells = <1>;
	#size-cells = <0>;
	disable-over-current;
	status = "okay";

	usb-hub@1 {
		compatible = "usb424,2744";
		reg = <1>;
		vdd-supply = <&reg_usb_hub>;
	};
};

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