// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device Tree include for the Kontron SMARC-sAMX6i board on a SMARC Eval
 * 2.0 carrier (ADS2).
 *
 */

/ {
	chosen {
		stdout-path = "serial0:115200n8";
	};

	sound {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&dailink_master>;
		simple-audio-card,frame-master = <&dailink_master>;
		simple-audio-card,widgets =
			"Headphone", "Headphone Jack",
			"Line", "Line Out Jack",
			"Microphone", "Microphone Jack",
			"Line", "Line In Jack";
		simple-audio-card,routing =
			"Line Out Jack", "LINEOUTR",
			"Line Out Jack", "LINEOUTL",
			"Headphone Jack", "HPOUTR",
			"Headphone Jack", "HPOUTL",
			"IN1L", "Line In Jack",
			"IN1R", "Line In Jack",
			"Microphone Jack", "MICBIAS",
			"IN2L", "Microphone Jack",
			"IN2R", "Microphone Jack";

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

		dailink_master: simple-audio-card,codec {
			sound-dai = <&wm8904>;
		};
	};

	reg_codec_mic: regulator-codec-mic {
		compatible = "regulator-fixed";
		regulator-name = "V_3V3_MIC";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
	};

	reg_codec_1p8v: regulator-codec-1p8v {
		compatible = "regulator-fixed";
		regulator-name = "V_1V8_S0_CODEC";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
		regulator-boot-on;
	};
};

&audmux {
	status = "okay";
};

&can1 {
	status = "okay";
};

&can2 {
	status = "okay";
};

&ecspi4 {
	flash@1 {
		compatible = "jedec,spi-nor";
		reg = <1>;
		spi-max-frequency = <100000000>;
		m25p,fast-read;
	};
};

&fec {
	status = "okay";
};

&i2c1 {
	status = "okay";

	wm8904: audio-codec@1a {
		compatible = "wlf,wm8904";
		reg = <0x1a>;
		#sound-dai-cells = <0>;
		clocks = <&clks IMX6QDL_CLK_CKO2>;
		clock-names = "mclk";
		AVDD-supply = <&reg_codec_1p8v>;
		CPVDD-supply = <&reg_codec_1p8v>;
		DBVDD-supply = <&reg_codec_1p8v>;
		DCVDD-supply = <&reg_codec_1p8v>;
		MICVDD-supply = <&reg_codec_mic>;
	};
};

&i2c3 {
	eeprom@57 {
		compatible = "atmel,24c64";
		reg = <0x57>;
		pagesize = <32>;
	};
};

&pcie {
	status = "okay";
};

&ssi1 {
	status = "okay";
};

&uart1 {
	status = "okay";
};

&uart2 {
	status = "okay";
};

&uart4 {
	status = "okay";
};

&uart5 {
	status = "okay";
};

&usbh1 {
	status = "okay";
};

&usbotg {
	status = "okay";
};

&usdhc3 {
	status = "okay";
};
