--- /dev/null
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for the Eagle V3M Function expansion board.
+ *
+ * Copyright (C) 2024 Niklas Söderlund <niklas.soderlund@ragnatech.se>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       /* CN4 */
+       /* Eagle: SW18 set to OFF */
+       cvbs-in-cn4 {
+               compatible = "composite-video-connector";
+               label = "CVBS IN CN4";
+
+               port {
+                       cvbs_con: endpoint {
+                               remote-endpoint = <&adv7482_ain7>;
+                       };
+               };
+       };
+
+       /* CN2 */
+       /* Eagle: SW35 set 5, 6 and 8 to OFF */
+       hdmi-in-cn2 {
+               compatible = "hdmi-connector";
+               label = "HDMI IN CN2";
+               type = "a";
+
+               port {
+                       hdmi_in_con2: endpoint {
+                               remote-endpoint = <&adv7612_in>;
+                       };
+               };
+       };
+
+       /* CN3 */
+       /* Eagle: SW18 set to OFF */
+       hdmi-in-cn3 {
+               compatible = "hdmi-connector";
+               label = "HDMI IN CN3";
+               type = "a";
+
+               port {
+                       hdmi_in_con: endpoint {
+                               remote-endpoint = <&adv7482_hdmi>;
+                       };
+               };
+       };
+};
+
+/* Disconnect MAX9286 GMSL I2C. */
+&i2c3 {
+       status = "disabled";
+};
+
+/* Connect expansion board I2C. */
+&i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       gpio@27 {
+               compatible = "onnn,pca9654";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               vin0_adv7612_en {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_LOW>;
+                       output-high;
+                       line-name = "VIN0_ADV7612_ENn";
+               };
+       };
+
+       hdmi-decoder@4c {
+               compatible = "adi,adv7612";
+               reg = <0x4c>, <0x50>, <0x52>, <0x54>, <0x56>, <0x58>;
+               reg-names = "main", "afe", "rep", "edid", "hdmi", "cp";
+               interrupt-parent = <&gpio3>;
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+               default-input = <0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               adv7612_in: endpoint {
+                                       remote-endpoint = <&hdmi_in_con2>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               adv7612_out: endpoint {
+                                       remote-endpoint = <&vin0_in>;
+                               };
+                       };
+               };
+       };
+
+       video-receiver@70 {
+               compatible = "adi,adv7482";
+               reg = <0x70 0x71 0x72 0x73 0x74 0x75
+                      0x60 0x61 0x62 0x63 0x64 0x65>;
+               reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
+                           "infoframe", "cbus", "cec", "sdp", "txa", "txb" ;
+               interrupt-parent = <&gpio3>;
+               interrupts = <03 IRQ_TYPE_LEVEL_LOW>, <04 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "intrq1", "intrq2";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@7 {
+                               reg = <7>;
+
+                               adv7482_ain7: endpoint {
+                                       remote-endpoint = <&cvbs_con>;
+                               };
+                       };
+
+                       port@8 {
+                               reg = <8>;
+
+                               adv7482_hdmi: endpoint {
+                                       remote-endpoint = <&hdmi_in_con>;
+                               };
+                       };
+
+                       port@a {
+                               reg = <10>;
+
+                               adv7482_txa: endpoint {
+                                       clock-lanes = <0>;
+                                       data-lanes = <1 2 3 4>;
+                                       remote-endpoint = <&csi40_in>;
+                               };
+                       };
+               };
+       };
+
+};
+
+&csi40 {
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       csi40_in: endpoint {
+                               clock-lanes = <0>;
+                               data-lanes = <1 2 3 4>;
+                               remote-endpoint = <&adv7482_txa>;
+                       };
+               };
+       };
+};
+
+&pfc {
+       vin0_pins_parallel: vin0 {
+               groups = "vin0_data12", "vin0_sync", "vin0_clk", "vin0_clkenb";
+               function = "vin0";
+       };
+};
+
+&vin0 {
+       status = "okay";
+
+       pinctrl-0 = <&vin0_pins_parallel>;
+       pinctrl-names = "default";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       vin0_in: endpoint {
+                               pclk-sample = <0>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               remote-endpoint = <&adv7612_out>;
+                       };
+               };
+       };
+};
+
+&vin1 {
+       status = "okay";
+};
+
+&vin2 {
+       status = "okay";
+};
+
+&vin3 {
+       status = "okay";
+};