// SPDX-License-Identifier: GPL-2.0+ OR MIT
/*
 * Copyright 2014-2020 Toradex
 */

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

	clk16m: clk16m {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <16000000>;
	};

	panel: panel {
		compatible = "edt,et057090dhu";
		backlight = <&bl>;

		port {
			panel_in: endpoint {
				remote-endpoint = <&dcu_out>;
			};
		};
	};

	reg_3v3: regulator-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "3.3V";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	reg_5v0: regulator-5v0 {
		compatible = "regulator-fixed";
		regulator-name = "5V";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	reg_usbh_vbus: regulator-usbh-vbus {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usbh1_reg>;
		regulator-name = "VCC_USB[1-4]";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio2 19 GPIO_ACTIVE_LOW>; /* USBH_PEN resp. USBH_P_EN */
		vin-supply = <&reg_5v0>;
	};
};

&bl {
	brightness-levels = <0 4 8 16 32 64 128 255>;
	default-brightness-level = <6>;
	power-supply = <&reg_3v3>;
	status  = "okay";
};

&dcu0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_dcu0_1>;
	status = "okay";

	port {
		dcu_out: endpoint {
			remote-endpoint = <&panel_in>;
		};
	};
};

&dspi1 {
	status = "okay";

	mcp2515can: can@0 {
		compatible = "microchip,mcp2515";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_can_int>;
		reg = <0>;
		clocks = <&clk16m>;
		spi-max-frequency = <10000000>;
		interrupt-parent = <&gpio1>;
		interrupts = <11 IRQ_TYPE_EDGE_RISING>;
	};
};

&esdhc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_esdhc1>;
	bus-width = <4>;
	status = "okay";
};

&fec1 {
	phy-mode = "rmii";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fec1>;
	status = "okay";
};

&i2c0 {
	status = "okay";

	/* M41T0M6 real time clock on carrier board */
	rtc: rtc@68 {
		compatible = "st,m41t0";
		reg = <0x68>;
	};
};

&pwm0 {
	status = "okay";
};

&pwm1 {
	status = "okay";
};

&reg_module_3v3 {
	vin-supply = <&reg_3v3>;
};

&tcon0 {
	status = "okay";
};

&uart0 {
	status = "okay";
};

&uart1 {
	status = "okay";
};

&uart2 {
	status = "okay";
};

&usbh1 {
	vbus-supply = <&reg_usbh_vbus>;
};

&iomuxc {
	vf610-colibri {
		pinctrl_can_int: can_int {
			fsl,pins = <
				VF610_PAD_PTB21__GPIO_43	0x22ed
			>;
		};
	};
};