From 0d4a48e6ee6035759963efd3b3825329ab770195 Mon Sep 17 00:00:00 2001
From: "orphee.antoniad" <orphee.antoniadis@hesge.ch>
Date: Fri, 11 Jun 2021 10:18:31 +0200
Subject: [PATCH] Update in MIPI project : (Camera driver fully working) -
 Change petalinux kernel config to add missing drivers - Move amba_pl to
 pl-user.dtsi - Increase CMA buffer size from 16M to 32M

---
 scalp_mipi/project-spec/configs/config        |   2 +-
 .../configs/u-boot-xlnx/platform-auto.h       |   2 +-
 .../device-tree/files/pl-user.dtsi            | 164 ++++++
 .../recipes-bsp/device-tree/files/pl.dtsi     | 137 +----
 .../device-tree/files/system-user.dtsi        | 475 +++++++-----------
 5 files changed, 341 insertions(+), 439 deletions(-)
 create mode 100644 scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/pl-user.dtsi

diff --git a/scalp_mipi/project-spec/configs/config b/scalp_mipi/project-spec/configs/config
index 93cbc1a..392676e 100644
--- a/scalp_mipi/project-spec/configs/config
+++ b/scalp_mipi/project-spec/configs/config
@@ -155,7 +155,7 @@ CONFIG_SUBSYSTEM_ENDIAN_LITTLE=y
 # DTG Settings
 #
 CONFIG_SUBSYSTEM_MACHINE_NAME="template"
-CONFIG_SUBSYSTEM_EXTRA_DT_FILES="pl.dtsi"
+CONFIG_SUBSYSTEM_EXTRA_DT_FILES="pl.dtsi pl-user.dtsi"
 
 #
 # Kernel Bootargs
diff --git a/scalp_mipi/project-spec/configs/u-boot-xlnx/platform-auto.h b/scalp_mipi/project-spec/configs/u-boot-xlnx/platform-auto.h
index 10d49d6..b8bd524 100644
--- a/scalp_mipi/project-spec/configs/u-boot-xlnx/platform-auto.h
+++ b/scalp_mipi/project-spec/configs/u-boot-xlnx/platform-auto.h
@@ -35,7 +35,7 @@
 #define CONFIG_MII
 #define CONFIG_NET_MULTI
 #define CONFIG_NETCONSOLE	1
-#define CONFIG_SERVERIP	172.16.251.147
+#define CONFIG_SERVERIP	172.16.251.154
 #define CONFIG_IPADDR	192.168.0.10
 #define CONFIG_GATEWAYIP	192.168.0.1
 #define CONFIG_NETMASK	255.255.255.0
diff --git a/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/pl-user.dtsi b/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/pl-user.dtsi
new file mode 100644
index 0000000..1527fc0
--- /dev/null
+++ b/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/pl-user.dtsi
@@ -0,0 +1,164 @@
+/*
+ * Scalp Board PL User DTS
+ *
+ * Copyright (c) 2018-2021 Hepia
+ * Orphee Antoniadis <orphee.antoniadis@hesge.ch>
+ *
+ */
+
+/ {
+    amba_pl: amba_pl {
+        #address-cells = <1>;
+        #size-cells = <1>;
+        compatible = "simple-bus";
+        ranges ;
+
+        scalp_safe_firmware_0: scalp_safe_firmware_reg_bank@43c10000 {
+            //clock-names = "SAxiClkxCI";
+            //clocks = <&clkc 15>;
+            compatible = "generic-uio";
+            reg = <0x43c10000 0x1000>;
+        };
+        
+        misc_clk_0: misc_clk_0 {
+            #clock-cells = <0>;
+            clock-frequency = <200000000>;
+            compatible = "fixed-clock";
+        };
+        
+        mipi_csi2_rx_subsyst_0: mipi_csi2_rx_subsystem@43c20000 {
+            clock-names = "lite_aclk", "dphy_clk_200M", "video_aclk";
+		    clocks = <&clkc 15>, <&misc_clk_0>, <&clkc 15>;
+            compatible = "xlnx,mipi-csi2-rx-subsystem-5.1";
+            reg = <0x43c20000 0x1000>;
+		    interrupt-names = "csirxss_csi_irq";
+		    interrupt-parent = <&intc>;
+		    interrupts = <0 30 4>;
+		    xlnx,axis-tdata-width = <32>;
+		    xlnx,cal-mode = "NONE";
+		    xlnx,clk-io-swap = "false";
+		    xlnx,clk-lane-io-position = <0x0>;
+		    xlnx,clk-lp-io-swap = "false";
+		    xlnx,csi-en-activelanes = "false";
+		    xlnx,csi-en-crc = "true";
+		    xlnx,csi-filter-userdatatype = "false";
+		    xlnx,csi-opt1-regs = "false";
+		    xlnx,csi-pxl-format = "YUV422_8bit";
+		    xlnx,csi2rx-dbg = <0x0>;
+		    xlnx,data-lane0-io-position = <0x2>;
+		    xlnx,data-lane1-io-position = <0x4>;
+		    xlnx,data-lane2-io-position = <0x6>;
+		    xlnx,data-lane3-io-position = <0x8>;
+		    xlnx,dl0-io-swap = "false";
+		    xlnx,dl0-lp-io-swap = "false";
+		    xlnx,dl1-io-swap = "false";
+		    xlnx,dl1-lp-io-swap = "false";
+		    xlnx,dl2-io-swap = "false";
+		    xlnx,dl2-lp-io-swap = "false";
+		    xlnx,dl3-io-swap = "false";
+		    xlnx,dl3-lp-io-swap = "false";
+		    xlnx,dphy-lanes = <0x2>;
+		    xlnx,dphy-mode = "SLAVE";
+		    xlnx,en-7s-linerate-check = "false";
+		    xlnx,en-bg0-pin0 = "false";
+		    xlnx,en-bg0-pin6 = "false";
+		    xlnx,en-bg1-pin0 = "false";
+		    xlnx,en-bg1-pin6 = "false";
+		    xlnx,en-bg2-pin0 = "false";
+		    xlnx,en-bg2-pin6 = "false";
+		    xlnx,en-bg3-pin0 = "false";
+		    xlnx,en-bg3-pin6 = "false";
+		    xlnx,en-clk300m = "false";
+		    xlnx,en-cnts-byte-clk = "false";
+		    xlnx,en-csi-v2-0 = "false";
+		    xlnx,en-exdesigns = "false";
+		    xlnx,en-ext-tap = "false";
+		    xlnx,en-timeout-regs = "false";
+		    xlnx,en-vcx = "false";
+		    xlnx,esc-timeout = <0x6400>;
+		    xlnx,exdes-board = "ZCU102";
+		    xlnx,exdes-config = "MIPI_Video_Pipe_Camera_to_Display";
+		    xlnx,exdes-fmc = "LI-IMX274MIPI-FMC V1.0 Single Sensor";
+		    xlnx,exdesboard-version = "xilinx.com:vck190:part0:2.0";
+		    xlnx,fifo-rd-en-control = "true";
+		    xlnx,hs-line-rate = <0x320>;
+		    xlnx,hs-settle-ns = <0x93>;
+		    xlnx,hs-timeout = <0x10005>;
+		    xlnx,idly-group-name = "mipi_csi2rx_idly_group";
+		    xlnx,idly-tap = <0x1>;
+		    xlnx,init = <0x186a0>;
+		    xlnx,int-qor-check = <0x0>;
+		    xlnx,is-7series = "true";
+		    xlnx,is-versal = "false";
+		    xlnx,lprx-disable-extport = <0x0>;
+		    xlnx,max-lanes = <2>;
+		    xlnx,mipi-slv-int = <0x0>;
+		    xlnx,ooc-vid-clk = "6.666";
+		    xlnx,ppc = <1>;
+		    xlnx,rcve-alt-deskew-seq = "false";
+		    xlnx,rcve-deskew-seq = "false";
+		    xlnx,share-idlyctrl = "false";
+		    xlnx,stretch-line-rate = <0xdac>;
+		    xlnx,vc = <4>;
+		    xlnx,vfb ;
+	        mipi_csi_portsmipi_csi2_rx_subsyst_0: ports {
+		        #address-cells = <1>;
+		        #size-cells = <0>;
+		        mipi_csi_port0mipi_csi2_rx_subsyst_0: port@0 {
+		            reg = <0>;
+		            xlnx,cfa-pattern = "rggb";
+                    xlnx,video-format = <12>;
+                    xlnx,video-width = <8>;
+		            mipi_csirx_outmipi_csi2_rx_subsyst_0: endpoint {
+                        remote-endpoint = <&v_frmbuf_wr_0mipi_csi2_rx_subsyst_0>;
+                    };
+                };
+                mipi_csi_port1mipi_csi2_rx_subsyst_0: port@1 {
+                    reg = <1>;
+                    xlnx,cfa-pattern = "rggb";
+                    xlnx,video-format = <12>;
+                    xlnx,video-width = <8>;
+                    mipi_csi_inmipi_csi2_rx_subsyst_0: endpoint {
+                    };
+                };
+	        };
+        };
+        
+        v_frmbuf_wr_0: v_frmbuf_wr@43c30000 {
+            #dma-cells = <1>;
+            clock-names = "ap_clk";
+		    clocks = <&clkc 15>;
+            compatible = "xlnx,v-frmbuf-wr-2.2", "xlnx,axi-frmbuf-wr-v2.1";
+            reg = <0x43c30000 0x10000>;
+		    interrupt-names = "interrupt";
+		    interrupt-parent = <&intc>;
+		    interrupts = <0 31 4>;
+		    xlnx,dma-addr-width = <32>;
+		    xlnx,dma-align = <8>;
+		    xlnx,max-height = <480>;
+		    xlnx,max-width = <640>;
+		    xlnx,pixels-per-clock = <1>;
+		    xlnx,s-axi-ctrl-addr-width = <0x7>;
+		    xlnx,s-axi-ctrl-data-width = <0x20>;
+		    xlnx,vid-formats = "rgb888", "uyvy";
+		    xlnx,video-width = <8>;
+	    };
+	    
+	    vcap_mipi_csi2_rx_subsyst_0 {
+            compatible = "xlnx,video";
+            dma-names = "port0";
+            dmas = <&v_frmbuf_wr_0 0>;
+            vcap_portsmipi_csi2_rx_subsyst_0: ports {
+	            #address-cells = <1>;
+	            #size-cells = <0>;
+	            vcap_portmipi_csi2_rx_subsyst_0: port@0 {
+                    direction = "input";
+                    reg = <0>;
+                    v_frmbuf_wr_0mipi_csi2_rx_subsyst_0: endpoint {
+                        remote-endpoint = <&mipi_csirx_outmipi_csi2_rx_subsyst_0>;
+                    };
+                };
+            };
+        };
+    };
+};
diff --git a/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/pl.dtsi b/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/pl.dtsi
index c1a0802..9ca2367 100644
--- a/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/pl.dtsi
+++ b/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/pl.dtsi
@@ -1,10 +1,11 @@
 /*
- * CAUTION: This file is automatically generated by Xilinx.
- * Version:  
- * Today is: Mon Jun  7 19:02:33 2021
+ * Scalp Board PL DTS Overlay
+ *
+ * Copyright (c) 2018-2021 Hepia
+ * Orphee Antoniadis <orphee.antoniadis@hesge.ch>
+ *
  */
 
-
 /dts-v1/;
 /plugin/;
 / {
@@ -41,7 +42,6 @@
 		overlay2: __overlay__ {
 			#address-cells = <1>;
 			#size-cells = <1>;
-	        
             scalp_axi4lite_0: scalp_axi4lite@43c00000 {
 				clock-names = "SAxiClkxCI";
 				clocks = <&clkc 15>;
@@ -59,8 +59,7 @@
 				xlnx,axi4-rresp-size = <0x2>;
 				xlnx,axi4-wdata-size = <0x20>;
 				xlnx,axi4-wstrb-size = <0x4>;
-			};
-	        
+			};  
 			scalp_safe_firmware_0: scalp_safe_firmware_reg_bank@43c10000 {
 				clock-names = "SAxiClkxCI";
 				clocks = <&clkc 15>;
@@ -76,130 +75,6 @@
 				xlnx,axi4-wdata-size = <0x20>;
 				xlnx,axi4-wstrb-size = <0x4>;
 			};
-			/*
-			misc_clk_0: misc_clk_0 {
-		        #clock-cells = <0>;
-		        clock-frequency = <200000000>;
-		        compatible = "fixed-clock";
-	        };
-            
-            mipi_csi2_rx_subsyst_0: mipi_csi2_rx_subsystem@43c20000 {
-				clock-names = "lite_aclk", "dphy_clk_200M", "video_aclk";
-				clocks = <&clkc 15>, <&misc_clk_0>, <&clkc 15>;
-				compatible = "xlnx,mipi-csi2-rx-subsystem-5.1";
-				interrupt-names = "csirxss_csi_irq";
-				interrupt-parent = <&intc>;
-				interrupts = <0 30 4>;
-				reg = <0x43c20000 0x1000>;
-				xlnx,axis-tdata-width = <32>;
-				xlnx,cal-mode = "NONE";
-				xlnx,clk-io-swap = "false";
-				xlnx,clk-lane-io-position = <0x0>;
-				xlnx,clk-lp-io-swap = "false";
-				xlnx,csi-en-activelanes = "false";
-				xlnx,csi-en-crc = "true";
-				xlnx,csi-filter-userdatatype = "false";
-				xlnx,csi-opt1-regs = "false";
-				xlnx,csi-pxl-format = "YUV422_8bit";
-				xlnx,csi2rx-dbg = <0x0>;
-				xlnx,data-lane0-io-position = <0x2>;
-				xlnx,data-lane1-io-position = <0x4>;
-				xlnx,data-lane2-io-position = <0x6>;
-				xlnx,data-lane3-io-position = <0x8>;
-				xlnx,dl0-io-swap = "false";
-				xlnx,dl0-lp-io-swap = "false";
-				xlnx,dl1-io-swap = "false";
-				xlnx,dl1-lp-io-swap = "false";
-				xlnx,dl2-io-swap = "false";
-				xlnx,dl2-lp-io-swap = "false";
-				xlnx,dl3-io-swap = "false";
-				xlnx,dl3-lp-io-swap = "false";
-				xlnx,dphy-lanes = <0x2>;
-				xlnx,dphy-mode = "SLAVE";
-				xlnx,en-7s-linerate-check = "false";
-				xlnx,en-bg0-pin0 = "false";
-				xlnx,en-bg0-pin6 = "false";
-				xlnx,en-bg1-pin0 = "false";
-				xlnx,en-bg1-pin6 = "false";
-				xlnx,en-bg2-pin0 = "false";
-				xlnx,en-bg2-pin6 = "false";
-				xlnx,en-bg3-pin0 = "false";
-				xlnx,en-bg3-pin6 = "false";
-				xlnx,en-clk300m = "false";
-				xlnx,en-cnts-byte-clk = "false";
-				xlnx,en-csi-v2-0 = "false";
-				xlnx,en-exdesigns = "false";
-				xlnx,en-ext-tap = "false";
-				xlnx,en-timeout-regs = "false";
-				xlnx,en-vcx = "false";
-				xlnx,esc-timeout = <0x6400>;
-				xlnx,exdes-board = "ZCU102";
-				xlnx,exdes-config = "MIPI_Video_Pipe_Camera_to_Display";
-				xlnx,exdes-fmc = "LI-IMX274MIPI-FMC V1.0 Single Sensor";
-				xlnx,exdesboard-version = "xilinx.com:vck190:part0:2.0";
-				xlnx,fifo-rd-en-control = "true";
-				xlnx,hs-line-rate = <0x320>;
-				xlnx,hs-settle-ns = <0x93>;
-				xlnx,hs-timeout = <0x10005>;
-				xlnx,idly-group-name = "mipi_csi2rx_idly_group";
-				xlnx,idly-tap = <0x1>;
-				xlnx,init = <0x186a0>;
-				xlnx,int-qor-check = <0x0>;
-				xlnx,is-7series = "true";
-				xlnx,is-versal = "false";
-				xlnx,lprx-disable-extport = <0x0>;
-				xlnx,max-lanes = <2>;
-				xlnx,mipi-slv-int = <0x0>;
-				xlnx,ooc-vid-clk = "6.666";
-				xlnx,ppc = <1>;
-				xlnx,rcve-alt-deskew-seq = "false";
-				xlnx,rcve-deskew-seq = "false";
-				xlnx,share-idlyctrl = "false";
-				xlnx,stretch-line-rate = <0xdac>;
-				xlnx,vc = <4>;
-				xlnx,vfb ;
-	            mipi_csi_portsmipi_csi2_rx_subsyst_0: ports {
-		            #address-cells = <1>;
-		            #size-cells = <0>;
-		            mipi_csi_port0mipi_csi2_rx_subsyst_0: port@0 {
-                        reg = <0>;
-                        xlnx,cfa-pattern = "rggb";
-                        xlnx,video-format = <12>;
-                        xlnx,video-width = <8>;
-                        mipi_csirx_outmipi_csi2_rx_subsyst_0: endpoint {
-                            remote-endpoint = <&v_frmbuf_wr_0mipi_csi2_rx_subsyst_0>;
-                        };
-                    };
-                    mipi_csi_port1mipi_csi2_rx_subsyst_0: port@1 {
-                        reg = <1>;
-                        xlnx,cfa-pattern = "rggb";
-                        xlnx,video-format = <12>;
-                        xlnx,video-width = <8>;
-                        mipi_csi_inmipi_csi2_rx_subsyst_0: endpoint {
-                        };
-                    };
-	            };
-            };
-            
-            v_frmbuf_wr_0: v_frmbuf_wr@43c30000 {
-				#dma-cells = <1>;
-				clock-names = "ap_clk";
-				clocks = <&clkc 15>;
-				compatible = "xlnx,v-frmbuf-wr-2.2", "xlnx,axi-frmbuf-wr-v2.1";
-				interrupt-names = "interrupt";
-				interrupt-parent = <&intc>;
-				interrupts = <0 31 4>;
-				reg = <0x43c30000 0x10000>;
-				xlnx,dma-addr-width = <32>;
-				xlnx,dma-align = <8>;
-				xlnx,max-height = <480>;
-				xlnx,max-width = <640>;
-				xlnx,pixels-per-clock = <1>;
-				xlnx,s-axi-ctrl-addr-width = <0x7>;
-				xlnx,s-axi-ctrl-data-width = <0x20>;
-				xlnx,vid-formats = "rgb888", "uyvy";
-				xlnx,video-width = <8>;
-			};*/
 		};
 	};
 };
diff --git a/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi b/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
index 32602c7..6945b9f 100644
--- a/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
+++ b/scalp_mipi/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
@@ -1,5 +1,5 @@
 /*
- * Scalp Board DTS
+ * Scalp Board System User DTS
  *
  * Copyright (c) 2018-2021 Hepia
  * Joachim Schmidt <joachim.schmidt@hesge.ch>
@@ -7,196 +7,40 @@
  */
 
 /include/ "system-conf.dtsi"
+/include/ "pl-user.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 
 / {
-  model = "Zynq Scalp Board";
-  compatible = "xlnx,zynq-scalp", "xlnx,zynq-7000";
-
-	aliases {        
-    serial0   = &uart0;                      /* Bottom : MIO  46 - 47 (Switch on schematic) */
-    serial1   = &uart1;                      /* Top    : MIO  48 - 49                       */
-    ethernet0 = &gem0;                       /*          MIO  16 - 27                       */
-    /* Switch the name. QSPI first */
-    spi0      = &qspi;                       /*          MIO  1 - 6                        */
-    spi1      = &spi0;                       /*          MIO  40 - 41, 45                  */
-    spi2      = &spi1;                       /*          EMIO                              */
-    mmc0      = &sdhci1;                     /*          MIO  10 - 15, 9 (card detect)     */
-    usb0      = &usb0;                       /*          MIO  28 - 39                      */
-    i2c0      = &i2c0;                       /*          MIO  50 - 51                      */
-    i2c1      = &i2c1;                       /*          EMIO                              */
-    can0      = &can1;                       /*          MIO  52 - 53                      */
-    //gpio0     = &gpio0;                      /*          MIO  0, 7, 8, 43, 44              */
-	};
-
-  /* 256 MB DDR3 */
-  memory@0 {
-    device_type = "memory";
-    reg = <0 0x10000000>;
-  };
-
-  chosen {
-    bootargs = "earlyprintk cpuidle.off=1 crashkernel=256M rw uio_pdrv_genirq.of_id=generic-uio";
-    stdout-path = "serial0:115200n8";
-    xlnx,eeprom = &eeprom;
-  };
-};
-
-/ {
-  amba_pl: amba_pl {
-    #address-cells = <1>;
-    #size-cells = <1>;
-    compatible = "simple-bus";
-    ranges ;
-
-    scalp_safe_firmware_0: scalp_safe_firmware_reg_bank@43c10000 {
-      //clock-names = "SAxiClkxCI";
-      //clocks = <&clkc 15>;
-      compatible = "generic-uio";
-      reg = <0x43c10000 0x1000>;
+    model = "Zynq Scalp Board";
+    compatible = "xlnx,zynq-scalp", "xlnx,zynq-7000";
+
+    aliases {
+        serial0   = &uart0;                      /* Bottom : MIO  46 - 47 (Switch on schematic) */
+        serial1   = &uart1;                      /* Top    : MIO  48 - 49                       */
+        ethernet0 = &gem0;                       /*          MIO  16 - 27                       */
+        /* Switch the name. QSPI first */
+        spi0      = &qspi;                       /*          MIO  1 - 6                        */
+        spi1      = &spi0;                       /*          MIO  40 - 41, 45                  */
+        spi2      = &spi1;                       /*          EMIO                              */
+        mmc0      = &sdhci1;                     /*          MIO  10 - 15, 9 (card detect)     */
+        usb0      = &usb0;                       /*          MIO  28 - 39                      */
+        i2c0      = &i2c0;                       /*          MIO  50 - 51                      */
+        i2c1      = &i2c1;                       /*          EMIO                              */
+        can0      = &can1;                       /*          MIO  52 - 53                      */
+        //gpio0     = &gpio0;                      /*          MIO  0, 7, 8, 43, 44              */
     };
-    
-    misc_clk_0: misc_clk_0 {
-        #clock-cells = <0>;
-        clock-frequency = <200000000>;
-        compatible = "fixed-clock";
-    };
-    
-    mipi_csi2_rx_subsyst_0: mipi_csi2_rx_subsystem@43c20000 {
-        clock-names = "lite_aclk", "dphy_clk_200M", "video_aclk";
-		clocks = <&clkc 15>, <&misc_clk_0>, <&clkc 15>;
-        compatible = "xlnx,mipi-csi2-rx-subsystem-4.0";
-        reg = <0x43c20000 0x1000>;
-		reset-gpios = <&gpio0 55 GPIO_ACTIVE_LOW>;
-		interrupt-names = "csirxss_csi_irq";
-		interrupt-parent = <&intc>;
-		interrupts = <0 30 4>;
-		xlnx,axis-tdata-width = <32>;
-		xlnx,cal-mode = "NONE";
-		xlnx,clk-io-swap = "false";
-		xlnx,clk-lane-io-position = <0x0>;
-		xlnx,clk-lp-io-swap = "false";
-		xlnx,csi-en-activelanes = "false";
-		xlnx,csi-en-crc = "true";
-		xlnx,csi-filter-userdatatype = "false";
-		xlnx,csi-opt1-regs = "false";
-		xlnx,csi-pxl-format = "YUV422_8bit";
-		xlnx,csi2rx-dbg = <0x0>;
-		xlnx,data-lane0-io-position = <0x2>;
-		xlnx,data-lane1-io-position = <0x4>;
-		xlnx,data-lane2-io-position = <0x6>;
-		xlnx,data-lane3-io-position = <0x8>;
-		xlnx,dl0-io-swap = "false";
-		xlnx,dl0-lp-io-swap = "false";
-		xlnx,dl1-io-swap = "false";
-		xlnx,dl1-lp-io-swap = "false";
-		xlnx,dl2-io-swap = "false";
-		xlnx,dl2-lp-io-swap = "false";
-		xlnx,dl3-io-swap = "false";
-		xlnx,dl3-lp-io-swap = "false";
-		xlnx,dphy-lanes = <0x2>;
-		xlnx,dphy-mode = "SLAVE";
-		xlnx,en-7s-linerate-check = "false";
-		xlnx,en-bg0-pin0 = "false";
-		xlnx,en-bg0-pin6 = "false";
-		xlnx,en-bg1-pin0 = "false";
-		xlnx,en-bg1-pin6 = "false";
-		xlnx,en-bg2-pin0 = "false";
-		xlnx,en-bg2-pin6 = "false";
-		xlnx,en-bg3-pin0 = "false";
-		xlnx,en-bg3-pin6 = "false";
-		xlnx,en-clk300m = "false";
-		xlnx,en-cnts-byte-clk = "false";
-		xlnx,en-csi-v2-0 = "false";
-		xlnx,en-exdesigns = "false";
-		xlnx,en-ext-tap = "false";
-		xlnx,en-timeout-regs = "false";
-		xlnx,en-vcx = "false";
-		xlnx,esc-timeout = <0x6400>;
-		xlnx,exdes-board = "ZCU102";
-		xlnx,exdes-config = "MIPI_Video_Pipe_Camera_to_Display";
-		xlnx,exdes-fmc = "LI-IMX274MIPI-FMC V1.0 Single Sensor";
-		xlnx,exdesboard-version = "xilinx.com:vck190:part0:2.0";
-		xlnx,fifo-rd-en-control = "true";
-		xlnx,hs-line-rate = <0x320>;
-		xlnx,hs-settle-ns = <0x93>;
-		xlnx,hs-timeout = <0x10005>;
-		xlnx,idly-group-name = "mipi_csi2rx_idly_group";
-		xlnx,idly-tap = <0x1>;
-		xlnx,init = <0x186a0>;
-		xlnx,int-qor-check = <0x0>;
-		xlnx,is-7series = "true";
-		xlnx,is-versal = "false";
-		xlnx,lprx-disable-extport = <0x0>;
-		xlnx,max-lanes = <2>;
-		xlnx,mipi-slv-int = <0x0>;
-		xlnx,ooc-vid-clk = "6.666";
-		xlnx,ppc = <1>;
-		xlnx,rcve-alt-deskew-seq = "false";
-		xlnx,rcve-deskew-seq = "false";
-		xlnx,share-idlyctrl = "false";
-		xlnx,stretch-line-rate = <0xdac>;
-		xlnx,vc = <4>;
-		xlnx,vfb ;
-	    mipi_csi_portsmipi_csi2_rx_subsyst_0: ports {
-		    #address-cells = <1>;
-		    #size-cells = <0>;
-		    mipi_csi_port0mipi_csi2_rx_subsyst_0: port@0 {
-		        reg = <0>;
-		        xlnx,video-format = <0>;
-		        xlnx,video-width = <8>;
-		        mipi_csirx_outmipi_csi2_rx_subsyst_0: endpoint {
-                    remote-endpoint = <&v_frmbuf_wr_0mipi_csi2_rx_subsyst_0>;
-                };
-            };
-            mipi_csi_port1mipi_csi2_rx_subsyst_0: port@1 {
-                reg = <1>;
-                xlnx,video-format = <0>;
-                xlnx,video-width = <8>;
-                mipi_csi_inmipi_csi2_rx_subsyst_0: endpoint {
-                };
-            };
-	    };
+
+    /* 256 MB DDR3 */
+    memory@0 {
+        device_type = "memory";
+        reg = <0 0x10000000>;
     };
-    
-    v_frmbuf_wr_0: v_frmbuf_wr@43c30000 {
-        #dma-cells = <1>;
-        clock-names = "ap_clk";
-		clocks = <&clkc 15>;
-        compatible = "xlnx,v-frmbuf-wr-2.2", "xlnx,axi-frmbuf-wr-v2.1";
-        reg = <0x43c30000 0x10000>;
-		reset-gpios = <&gpio0 54 GPIO_ACTIVE_LOW>;
-		interrupt-names = "interrupt";
-		interrupt-parent = <&intc>;
-		interrupts = <0 31 4>;
-		xlnx,dma-addr-width = <32>;
-		xlnx,dma-align = <8>;
-		xlnx,max-height = <480>;
-		xlnx,max-width = <640>;
-		xlnx,pixels-per-clock = <1>;
-		xlnx,s-axi-ctrl-addr-width = <0x7>;
-		xlnx,s-axi-ctrl-data-width = <0x20>;
-		xlnx,vid-formats = "rgb888", "uyvy";
-		xlnx,video-width = <8>;
-	};
-	
-	vcap_mipi_csi2_rx_subsyst_0 {
-        compatible = "xlnx,video";
-        dma-names = "port0";
-        dmas = <&v_frmbuf_wr_0 0>;
-        vcap_portsmipi_csi2_rx_subsyst_0: ports {
-	        #address-cells = <1>;
-	        #size-cells = <0>;
-	        vcap_portmipi_csi2_rx_subsyst_0: port@0 {
-                direction = "input";
-                reg = <0>;
-                v_frmbuf_wr_0mipi_csi2_rx_subsyst_0: endpoint {
-                    remote-endpoint = <&mipi_csirx_outmipi_csi2_rx_subsyst_0>;
-                };
-            };
-        };
+
+    chosen {
+        bootargs = "earlyprintk cpuidle.off=1 crashkernel=256M rw uio_pdrv_genirq.of_id=generic-uio cma=32M";
+        stdout-path = "serial0:115200n8";
+        xlnx,eeprom = &eeprom;
     };
-  };
 };
 
 /* PS_Clk50M_i */
@@ -300,83 +144,83 @@
  */
 
 &spi0 {
-  bus-num = <0>;
-  status = "okay";
+    bus-num = <0>;
+    status = "okay";
 
-  sja1105@0 {
-    reg = <0>;
-    #address-cells = <1>;
-    #size-cells = <0>;
-    compatible = "nxp,sja1105t";
-    reset-gpios = <&gpio0 44 GPIO_ACTIVE_LOW>;
-    spi-max-frequency = <12000000>;
-    spi-cpha;
-
-    ports {
-      #address-cells = <1>;
-      #size-cells = <0>;
-
-      swp0_east: port@0 {
-        label = "swp0_east";
-        phy-mode = "rgmii";
+    sja1105@0 {
         reg = <0>;
-        //sja1105,role-phy;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        compatible = "nxp,sja1105t";
+        reset-gpios = <&gpio0 44 GPIO_ACTIVE_LOW>;
+        spi-max-frequency = <12000000>;
+        spi-cpha;
+
+        ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            swp0_east: port@0 {
+                label = "swp0_east";
+                phy-mode = "rgmii";
+                reg = <0>;
+                //sja1105,role-phy;
 
-        fixed-link {
-          speed = <1000>;
-          full-duplex;
-        };
-      };
+                fixed-link {
+                    speed = <1000>;
+                    full-duplex;
+                };
+            };
 
-      port@1 {
-        ethernet = <&gem0>;
-        phy-mode = "rgmii";
-        reg = <1>;
-        //sja1105,role-phy;
+            port@1 {
+                ethernet = <&gem0>;
+                phy-mode = "rgmii";
+                reg = <1>;
+                //sja1105,role-phy;
 
-        fixed-link {
-          speed = <1000>;
-          full-duplex;
-        };
-      };
+                fixed-link {
+                    speed = <1000>;
+                    full-duplex;
+                };
+            };
 
-      swp2_bottom: port@2 {
-        label = "swp2_bottom";
-        phy-mode = "rgmii";
-        reg = <2>;
-        //sja1105,role-mac;
+            swp2_bottom: port@2 {
+                label = "swp2_bottom";
+                phy-mode = "rgmii";
+                reg = <2>;
+                //sja1105,role-mac;
 
-        fixed-link {
-          speed = <1000>;
-          full-duplex;
-        };
-      };
+                fixed-link {
+                    speed = <1000>;
+                    full-duplex;
+                };
+            };
 
-      swp3_top: port@3 {
-        label = "swp3_top";
-        phy-mode = "rgmii";
-        reg = <3>;
-        //sja1105,role-phy;
+            swp3_top: port@3 {
+                label = "swp3_top";
+                phy-mode = "rgmii";
+                reg = <3>;
+                //sja1105,role-phy;
 
-        fixed-link {
-          speed = <1000>;
-          full-duplex;
-        };
-      };
+                fixed-link {
+                    speed = <1000>;
+                    full-duplex;
+                };
+            };
 
-      swp4_west: port@4 {
-        label = "swp4_west";
-        phy-mode = "rgmii";
-        reg = <4>;
-        //sja1105,role-mac;
+            swp4_west: port@4 {
+                label = "swp4_west";
+                phy-mode = "rgmii";
+                reg = <4>;
+                //sja1105,role-mac;
 
-        fixed-link {
-          speed = <1000>;
-          full-duplex;
+                fixed-link {
+                    speed = <1000>;
+                    full-duplex;
+                };
+            };			
         };
-      };			
     };
-  };
 };
 
 // &spi0 {
@@ -397,50 +241,50 @@
 
 /* ethernet0 */
 &gem0 {
-  status = "okay";
-  phy-mode = "rgmii"; /* "rgmii_id" */
-  //phy-handle = <&ethernet_phy>;
-  xlnx,ptp-enet-clock = <0x7735940>;
-  //local-mac-address = [00 0a 35 00 00 00];
-
-  fixed-link {
-    speed = <1000>;
-    full-duplex;
-  };
-
-  //ethernet_phy: ethernet-phy@0 {
-  //    reg = <0>;
-  //};
+    status = "okay";
+    phy-mode = "rgmii"; /* "rgmii_id" */
+    //phy-handle = <&ethernet_phy>;
+    xlnx,ptp-enet-clock = <0x7735940>;
+    //local-mac-address = [00 0a 35 00 00 00];
+
+    fixed-link {
+        speed = <1000>;
+        full-duplex;
+    };
+
+    //ethernet_phy: ethernet-phy@0 {
+    //    reg = <0>;
+    //};
 };
 
 /* spi2 */
 &spi1 {
-  u-boot,dm-pre-reloc;
-  is-decoded-cs = <0>;
-  num-cs = <3>;
-  status = "okay";
+    u-boot,dm-pre-reloc;
+    is-decoded-cs = <0>;
+    num-cs = <3>;
+    status = "okay";
 };
 
 &gpio0 {
-  //compatible = "generic-uio";
-  //status = "okay";
-  emio-gpio-width = <32>;
-	//gpio-controller;
-  gpio-mask-high = <0x0>;
-  gpio-mask-low = <0x5600>;
-  //interrupt-controller;
-	//interrupt-cells = <2>;
-	//interrupt-parent = <&intc>;
-	//interrupts = <0 20 4>;
+    //compatible = "generic-uio";
+    //status = "okay";
+    emio-gpio-width = <32>;
+    //gpio-controller;
+    gpio-mask-high = <0x0>;
+    gpio-mask-low = <0x5600>;
+    //interrupt-controller;
+    //interrupt-cells = <2>;
+    //interrupt-parent = <&intc>;
+    //interrupts = <0 20 4>;
 };
 
 /* mmc0 */
 &sdhci1 {
-  u-boot,dm-pre-reloc;
-  xlnx,has-cd = <0x1>;
-  xlnx,has-power = <0x0>;
-  xlnx,has-wp = <0x0>;
-  status = "okay";
+    u-boot,dm-pre-reloc;
+    xlnx,has-cd = <0x1>;
+    xlnx,has-power = <0x0>;
+    xlnx,has-wp = <0x0>;
+    status = "okay";
 };
 
 /* usb0 */
@@ -452,12 +296,12 @@
 
 /* i2c0 */
 &i2c0 {
-  status = "okay";
+    status = "okay";
 
-  eeprom: eeprom@53 {
-    compatible = "microchip,24aa02e48";
-    reg = <0x53>;
-  };
+    eeprom: eeprom@53 {
+        compatible = "microchip,24aa02e48";
+        reg = <0x53>;
+    };
 };
 
 /* can0 */
@@ -499,26 +343,41 @@
 };
 
 &i2c1 {
-  status = "okay";
-  ov5640: camera@3c {
-    compatible = "ovti,ov5640";
-    reg = <0x3c>;
-    clocks = <&pcam_clk>;
-    clock-names = "xclk";
-    DOVDD-supply = <&pcam_1v8>; // 1.8v
-    AVDD-supply = <&pcam_2v8>;  // 2.8v
-	DVDD-supply = <&pcam_1v5>;  // 1.5v
-    powerdown-gpios = <&gpio0 59 GPIO_ACTIVE_HIGH>;
-    reset-gpios = <&gpio0 58 GPIO_ACTIVE_LOW>;
-
-    port {
-      ov5640_to_mipi_csi2: endpoint {
-        remote-endpoint = <&mipi_csi_inmipi_csi2_rx_subsyst_0>;
-        clock-lanes = <0>;
-        data-lanes = <1 2>;
-      };
+    status = "okay";
+    ov5640: camera@3c {
+        compatible = "ovti,ov5640";
+        reg = <0x3c>;
+        clocks = <&pcam_clk>;
+        clock-names = "xclk";
+        DOVDD-supply = <&pcam_1v8>; // 1.8v
+        AVDD-supply = <&pcam_2v8>;  // 2.8v
+        DVDD-supply = <&pcam_1v5>;  // 1.5v
+        powerdown-gpios = <&gpio0 59 GPIO_ACTIVE_HIGH>;
+        reset-gpios = <&gpio0 58 GPIO_ACTIVE_LOW>;
+
+        port {
+            ov5640_to_mipi_csi2: endpoint {
+                remote-endpoint = <&mipi_csi_inmipi_csi2_rx_subsyst_0>;
+                clock-lanes = <0>;
+                data-lanes = <1 2>;
+            };
+        };
     };
-  };
+};
+
+&mipi_csi2_rx_subsyst_0 {
+    compatible = "xlnx,mipi-csi2-rx-subsystem-4.0";
+    reset-gpios = <&gpio0 55 GPIO_ACTIVE_LOW>;
+};
+
+&mipi_csi_port0mipi_csi2_rx_subsyst_0 {
+    /delete-property/ xlnx,cfa-pattern;
+    xlnx,video-format = <0>;
+};
+
+&mipi_csi_port1mipi_csi2_rx_subsyst_0 {
+    /delete-property/ xlnx,cfa-pattern;
+    xlnx,video-format = <0>;
 };
 
 &mipi_csi_inmipi_csi2_rx_subsyst_0 {
@@ -526,3 +385,7 @@
     remote-endpoint =  <&ov5640_to_mipi_csi2>;
 };
 
+&v_frmbuf_wr_0 {
+    reset-gpios = <&gpio0 54 GPIO_ACTIVE_LOW>;
+};
+
-- 
GitLab