// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright 2021-2022 NXP
 *
 */

/dts-v1/;
#include "ls1021a.dtsi"

/ {
	model = "LS1021A-IOT Board";
	compatible = "fsl,ls1021a-iot", "fsl,ls1021a";

	sys_mclk: clock-mclk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24576000>;
	};

	reg_3p3v: regulator-3V3 {
		compatible = "regulator-fixed";
		regulator-name = "3P3V";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	reg_2p5v: regulator-2V5 {
		compatible = "regulator-fixed";
		regulator-name = "2P5V";
		regulator-min-microvolt = <2500000>;
		regulator-max-microvolt = <2500000>;
		regulator-always-on;
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,widgets =
			"Microphone", "Microphone Jack",
			"Headphone", "Headphone Jack",
			"Speaker", "Speaker Ext",
			"Line", "Line In Jack";
		simple-audio-card,routing =
			"MIC_IN", "Microphone Jack",
			"Microphone Jack", "Mic Bias",
			"LINE_IN", "Line In Jack",
			"Headphone Jack", "HP_OUT",
			"Speaker Ext", "LINE_OUT";

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

		simple-audio-card,codec {
			sound-dai = <&sgtl5000>;
			frame-master;
			bitclock-master;
		};
	};
};

&can0 {
	status = "disabled";
};

&can1 {
	status = "disabled";
};

&can2 {
	status = "disabled";
};

&can3 {
	status = "okay";
};

&dcu {
	display = <&display>;
	status = "okay";

	display: display@0 {
		bits-per-pixel = <24>;

		display-timings {
			native-mode = <&timing0>;

			timing0: mode0 {
				clock-frequency = <25000000>;
				hactive = <640>;
				vactive = <480>;
				hback-porch = <80>;
				hfront-porch = <80>;
				vback-porch = <16>;
				vfront-porch = <16>;
				hsync-len = <12>;
				vsync-len = <2>;
				hsync-active = <1>;
				vsync-active = <1>;
			};
		};
	};
};

&enet0 {
	tbi-handle = <&tbi1>;
	phy-handle = <&phy1>;
	phy-connection-type = "sgmii";
	status = "okay";
};

&enet1 {
	tbi-handle = <&tbi1>;
	phy-handle = <&phy3>;
	phy-connection-type = "sgmii";
	status = "okay";
};

&enet2 {
	fixed-link = <0 1 1000 0 0>;
	phy-connection-type = "rgmii-id";
	status = "okay";
};

&esdhc {
	status = "okay";
};

&i2c0 {
	status = "okay";

	pca9555: gpio@23 {
		compatible = "nxp,pca9555";
		reg = <0x23>;
		gpio-controller;
		#gpio-cells = <2>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	sgtl5000: audio-codec@2a {
		#sound-dai-cells = <0x0>;
		compatible = "fsl,sgtl5000";
		reg = <0x2a>;
		VDDA-supply = <&reg_3p3v>;
		VDDIO-supply = <&reg_2p5v>;
		clocks = <&sys_mclk>;
	};

	max1239: adc@35 {
		compatible = "maxim,max1239";
		reg = <0x35>;
		#io-channel-cells = <1>;
	};

	ina2201: core-monitor@44 {
		compatible = "ti,ina220";
		reg = <0x44>;
		shunt-resistor = <1000>;
	};

	ina2202: current-monitor@45 {
		compatible = "ti,ina220";
		reg = <0x45>;
		shunt-resistor = <1000>;
	};

	lm75b: thermal-monitor@48 {
		compatible = "national,lm75b";
		reg = <0x48>;
	};
};

&lpuart0 {
	status = "okay";
};

&mdio0 {
	phy0: ethernet-phy@0 {
		reg = <0x0>;
	};

	phy1: ethernet-phy@1 {
		reg = <0x1>;
	};

	phy2: ethernet-phy@2 {
		reg = <0x2>;
	};

	phy3: ethernet-phy@3 {
		reg = <0x3>;
	};

	tbi1: tbi-phy@1f {
		reg = <0x1f>;
		device_type = "tbi-phy";
	};
};

&qspi {
	num-cs = <2>;
	status = "okay";

	s25fl128s: flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <20000000>;
		reg = <0>;
	};
};

&sai2 {
	status = "okay";
};

&uart0 {
	status = "okay";
};

&uart1 {
	status = "okay";
};