imx219 in TX1,Jetpack 4.2.2

Hello,
We have a custom Adaptor board for CSI camera tx1 (Like a board Auvidea J20-2 add-on module with 6x CSI-2),everything is ok when the version of JetPack is 3.1.

I was looking at the guide and do for TX1:

Now we try to port it from JetPack3.1 to JetPack4.2.
I’d like to connect Rasp Pi imx219 camera to the TX1, using Jetpack 4.2.

However this is for the older version of Jetpack, using kernel 4.4 and not 4.9.

Does the latest IMX219 driver in 4.9 kernel work on the TX1 using CSI?

I get help from the dts files ,Jetson Nano which is at path

/Tx1Kersrc/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms/tegra210-porg-camera-rbpcv2-imx219.dtsi

/Tx1Kersrc/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms/tegra210-camera-rbpcv2-imx219.dtsi

then, i modify Main DTS TX1

/Tx1Kersrc/hardware/nvidia/platform/t210/jetson/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts

for comment jetosn camera modules and camera plugine manager DTS and add my camera Device Tree config.

tegra210-jetson-cv-base-p2597-2180-a00.dts

/dts-v1/;

/memreserve/ 0x80000000 0x00020000;

#include "tegra210-jetson-common.dtsi"
#include <tegra210-soc/tegra210-audio.dtsi>
#include "jetson-platforms/tegra210-jetson-cv-power-tree-p2597-2180-a00.dtsi"
#include "jetson-platforms/tegra210-jetson-cv-pinmux-p2597-2180-a00.dtsi"
#include "jetson-platforms/tegra210-jetson-cv-prods.dtsi"
#include "jetson-platforms/tegra210-comms-p2530-0930.dtsi"
//#include "jetson-platforms/tegra210-jetson-cv-camera-modules.dtsi"
#include "jetson-platforms/tegra210-pwm-fan-p2530-0930.dtsi"
#include <panels/panel-a-wuxga-8-0.dtsi>
#include <panels/panel-a-edp-1080p-14-0.dtsi>
#include <panels/panel-s-edp-uhdtv-15-6.dtsi>
#include <t210-common-platforms/tegra210-ers-hdmi-e2190-1100-a00.dtsi>
#include <tegra210-soc/tegra210-sdhci.dtsi>
#include "jetson-platforms/tegra210-p2180-common.dtsi"
#include "jetson-platforms/tegra210-thermal-fan-est-p2530-0930.dtsi"
#include "jetson-platforms/tegra210-jetson-cv-keys-p2597-2180-a00.dtsi"
#include <dt-bindings/iio/meter/ina3221x.h>
#include <t210-common-platforms/tegra210-otg-gpio-detection-extcon.dtsi>
#include "jetson-platforms/tegra210-jetson-cv-emc-p2180-1000-a00.dtsi"
#include <tegra210-soc/tegra210-edp.dtsi>
#include <t210-common-platforms/tegra210-sysedp.dtsi>
#include <t210-common-platforms/tegra210-thermal-nct72-p2530.dtsi>
#include <tegra210-soc/tegra210-thermal-Tboard-Tdiode.dtsi>
#include "jetson-platforms/tegra210-jetson-cv-powermon-p2180-1000-a00.dtsi"
#include "jetson-platforms/tegra210-jetson-cv-powermon-p2597.dtsi"
#include <t210-common-platforms/tegra210-cpufreq.dtsi>
#include "jetson-platforms/tegra210-jetson-cv-super-module-e2614.dtsi"
#include "jetson-plugin-manager/tegra210-jetson-cv-eeprom-manager.dtsi"
//#include "jetson-plugin-manager/tegra210-jetson-cv-camera-plugin-manager.dtsi"
#include "jetson-plugin-manager/tegra210-jetson-cv-plugin-manager.dtsi"
#include "jetson-platforms/tegra210-my-camera-config-a00.dtsi"

and

/Tx1Kersrc/hardware/nvidia/platform/t210/jetson/kernel-dts/jetson-platforms/tegra210-my-camera-config-a00.dtsi

is

#include "tegra210-my-camera-module-config-a00.dtsi"

#define CAM1_PWDN		TEGRA_GPIO(S, 7)

/ {
    host1x {
		i2c@546c0000 {
			imx219_c@10 {
				status = "disabled";
				reset-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;
			};
		};
	};
	
    gpio@6000d000 {
		camera-control-output-low {
			gpio-hog;
			output-low;
			gpios = < CAM1_PWDN 0 >;
			label = "cam1-pwdn";
		};
	};
};

and

/Tx1Kersrc/hardware/nvidia/platform/t210/jetson/kernel-dts/jetson-platforms/tegra210-my-camera-module-config-a00.dtsi

is

#include <dt-bindings/media/camera.h>
#include <dt-bindings/platform/t210/t210.h>

/ {
	host1x {
		vi {
			num-channels = <1>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					reg = <0>;
					vi_in0: endpoint {
						port-index = <2>;
						bus-width = <2>;
						remote-endpoint = <&imx219_csi_out0>;
					};
				};
			};
		};
		nvcsi {
			num-channels = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			channel@0 {
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						imx219_csi_in0: endpoint@0 {
							port-index = <2>;
							bus-width = <2>;
							remote-endpoint = <&imx219_phy_out0>;
						};
					};
					port@1 {
						reg = <1>;
						imx219_csi_out0: endpoint@1 {
							remote-endpoint = <&vi_in0>;
						};
					};
				};
			};
		};

//**************************************************************************
//**************************************************************************

		i2c@546c0000 {
			
			
			status = "okay";
			#address-cells = <1>;
			#size-cells = <0>;
			
			imx219_c@10 {
				compatible = "nvidia,imx219";
				/* I2C device address */
				reg = <0x10>;

				/* V4L2 device node location */
				devnode = "video0";

				/* Physical dimensions of sensor */
				physical_w = "3.680";
				physical_h = "2.760";

				sensor_model = "imx219";

				use_sensor_mode_id = "true";

				/**
				* ==== Modes ====
				* A modeX node is required to support v4l2 driver
				* implementation with NVIDIA camera software stack
				*
				* == Signal properties ==
				*
				* phy_mode = "";
				* PHY mode used by the MIPI lanes for this device
				*
				* tegra_sinterface = "";
				* CSI Serial interface connected to tegra
				* Incase of virtual HW devices, use virtual
				* For SW emulated devices, use host
				*
				* pix_clk_hz = "";
				* Sensor pixel clock used for calculations like exposure and framerate
				*
				* readout_orientation = "0";
				* Based on camera module orientation.
				* Only change readout_orientation if you specifically
				* Program a different readout order for this mode
				*
				* == Image format Properties ==
				*
				* active_w = "";
				* Pixel active region width
				*
				* active_h = "";
				* Pixel active region height
				*
				* pixel_t = "";
				* The sensor readout pixel pattern
				*
				* line_length = "";
				* Pixel line length (width) for sensor mode.
				*
				* == Source Control Settings ==
				*
				* Gain factor used to convert fixed point integer to float
				* Gain range [min_gain/gain_factor, max_gain/gain_factor]
				* Gain step [step_gain/gain_factor is the smallest step that can be configured]
				* Default gain [Default gain to be initialized for the control.
				*     use min_gain_val as default for optimal results]
				* Framerate factor used to convert fixed point integer to float
				* Framerate range [min_framerate/framerate_factor, max_framerate/framerate_factor]
				* Framerate step [step_framerate/framerate_factor is the smallest step that can be configured]
				* Default Framerate [Default framerate to be initialized for the control.
				*     use max_framerate to get required performance]
				* Exposure factor used to convert fixed point integer to float
				* For convenience use 1 sec = 1000000us as conversion factor
				* Exposure range [min_exp_time/exposure_factor, max_exp_time/exposure_factor]
				* Exposure step [step_exp_time/exposure_factor is the smallest step that can be configured]
				* Default Exposure Time [Default exposure to be initialized for the control.
				*     Set default exposure based on the default_framerate for optimal exposure settings]
				*
				* gain_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_gain_val = ""; (ceil to integer)
				* max_gain_val = ""; (ceil to integer)
				* step_gain_val = ""; (ceil to integer)
				* default_gain = ""; (ceil to integer)
				* Gain limits for mode
				*
				* exposure_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_exp_time = ""; (ceil to integer)
				* max_exp_time = ""; (ceil to integer)
				* step_exp_time = ""; (ceil to integer)
				* default_exp_time = ""; (ceil to integer)
				* Exposure Time limits for mode (sec)
				*
				* framerate_factor = ""; (integer factor used for floating to fixed point conversion)
				* min_framerate = ""; (ceil to integer)
				* max_framerate = ""; (ceil to integer)
				* step_framerate = ""; (ceil to integer)
				* default_framerate = ""; (ceil to integer)
				* Framerate limits for mode (fps)
				*
				* embedded_metadata_height = "";
				* Sensor embedded metadata height in units of rows.
				* If sensor does not support embedded metadata value should be 0.
				*/
				mode0 { /* IMX219_MODE_3264x2464_21FPS */
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "3264";
					active_h = "2464";
					pixel_t = "bayer_rggb";
					readout_orientation = "90";
					line_length = "3448";
					inherent_gain = "1";
					mclk_multiplier = "9.33";
					pix_clk_hz = "182400000";

					gain_factor = "16";
					framerate_factor = "1000000";
					exposure_factor = "1000000";
					min_gain_val = "16"; /* 1.00x */
					max_gain_val = "170"; /* 10.66x */
					step_gain_val = "1";
					default_gain = "16"; /* 1.00x */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "2000000"; /* 2.0 fps */
					max_framerate = "21000000"; /* 21.0 fps */
					step_framerate = "1";
					default_framerate = "21000000"; /* 21.0 fps */
					min_exp_time = "13"; /* us */
					max_exp_time = "683709"; /* us */
					step_exp_time = "1";
					default_exp_time = "2495"; /* us */

					embedded_metadata_height = "2";
				};
				mode1 { /* IMX219_MODE_3264x1848_28FPS */
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "3264";
					active_h = "1848";
					pixel_t = "bayer_rggb";
					readout_orientation = "90";
					line_length = "3448";
					inherent_gain = "1";
					mclk_multiplier = "9.33";
					pix_clk_hz = "182400000";

					gain_factor = "16";
					framerate_factor = "1000000";
					exposure_factor = "1000000";
					min_gain_val = "16"; /* 1.00x */
					max_gain_val = "170"; /* 10.66x */
					step_gain_val = "1";
					default_gain = "16"; /* 1.00x */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "2000000"; /* 2.0 fps */
					max_framerate = "28000000"; /* 28.0 fps */
					step_framerate = "1";
					default_framerate = "28000000"; /* 28.0 fps */
					min_exp_time = "13"; /* us */
					max_exp_time = "683709"; /* us */
					step_exp_time = "1";
					default_exp_time = "2495"; /* us */

					embedded_metadata_height = "2";
				};
				mode2 { /* IMX219_MODE_1920x1080_30FPS */
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "1920";
					active_h = "1080";
					pixel_t = "bayer_rggb";
					readout_orientation = "90";
					line_length = "3448";
					inherent_gain = "1";
					mclk_multiplier = "9.33";
					pix_clk_hz = "182400000";

					gain_factor = "16";
					framerate_factor = "1000000";
					exposure_factor = "1000000";
					min_gain_val = "16"; /* 1.00x */
					max_gain_val = "170"; /* 10.66x */
					step_gain_val = "1";
					default_gain = "16"; /* 1.00x */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "2000000"; /* 2.0 fps */
					max_framerate = "30000000"; /* 30.0 fps */
					step_framerate = "1";
					default_framerate = "30000000"; /* 30.0 fps */
					min_exp_time = "13"; /* us */
					max_exp_time = "683709"; /* us */
					step_exp_time = "1";
					default_exp_time = "2495"; /* us */

					embedded_metadata_height = "2";
				};
				mode3 { /* IMX219_MODE_1280x720_60FPS */
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "1280";
					active_h = "720";
					pixel_t = "bayer_rggb";
					readout_orientation = "90";
					line_length = "3448";
					inherent_gain = "1";
					mclk_multiplier = "9.33";
					pix_clk_hz = "182400000";

					gain_factor = "16";
					framerate_factor = "1000000";
					exposure_factor = "1000000";
					min_gain_val = "16"; /* 1.00x */
					max_gain_val = "170"; /* 10.66x */
					step_gain_val = "1";
					default_gain = "16"; /* 1.00x */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "2000000"; /* 2.0 fps */
					max_framerate = "60000000"; /* 60.0 fps */
					step_framerate = "1";
					default_framerate = "60000000"; /* 60.0 fps */
					min_exp_time = "13"; /* us */
					max_exp_time = "683709"; /* us */
					step_exp_time = "1";
					default_exp_time = "2495"; /* us */

					embedded_metadata_height = "2";
				};
				mode4 { /* IMX219_MODE_1280x720_120FPS */
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "1280";
					active_h = "720";
					pixel_t = "bayer_rggb";
					readout_orientation = "90";
					line_length = "3448";
					inherent_gain = "1";
					mclk_multiplier = "9.33";
					pix_clk_hz = "169600000";

					gain_factor = "16";
					framerate_factor = "1000000";
					exposure_factor = "1000000";
					min_gain_val = "16"; /* 1.00x */
					max_gain_val = "170"; /* 10.66x */
					step_gain_val = "1";
					default_gain = "16"; /* 1.00x */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "2000000"; /* 2.0 fps */
					max_framerate = "120000000"; /* 120.0 fps */
					step_framerate = "1";
					default_framerate = "120000000"; /* 120.0 fps */
					min_exp_time = "13"; /* us */
					max_exp_time = "683709"; /* us */
					step_exp_time = "1";
					default_exp_time = "2495"; /* us */

					embedded_metadata_height = "2";
				};
				
			
				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0>;
						imx219_phy_out0: endpoint {
							port-index = <2>;
							bus-width = <2>;
							remote-endpoint = <&imx219_csi_in0>;
						};
					};
				};
			};
		};
	
	
	};

	

	tegra-camera-platform {
		compatible = "nvidia, tegra-camera-platform";
		/**
		* Physical settings to calculate max ISO BW
		*
		* num_csi_lanes = <>;
		* Total number of CSI lanes when all cameras are active
		*
		* max_lane_speed = <>;
		* Max lane speed in Kbit/s
		*
		* min_bits_per_pixel = <>;
		* Min bits per pixel
		*
		* vi_peak_byte_per_pixel = <>;
		* Max byte per pixel for the VI ISO case
		*
		* vi_bw_margin_pct = <>;
		* Vi bandwidth margin in percentage
		*
		* isp_peak_byte_per_pixel = <>;
		* Max byte per pixel for the ISP ISO case
		*
		* isp_bw_margin_pct = <>;
		* Isp bandwidth margin in percentage
		*/
		num_csi_lanes = <2>;
		max_lane_speed = <1500000>;
		min_bits_per_pixel = <10>;
		vi_peak_byte_per_pixel = <2>;
		vi_bw_margin_pct = <25>;
		max_pixel_rate = <240000>;
		isp_peak_byte_per_pixel = <5>;
		isp_bw_margin_pct = <25>;

		/**
		* The general guideline for naming badge_info contains 3 parts, and is as follows,
		* The first part is the camera_board_id for the module; if the module is in a FFD
		* platform, then use the platform name for this part.
		* The second part contains the position of the module, ex. “rear” or “front”.
		* The third part contains the last 6 characters of a part number which is found
		* in the module's specsheet from the vender.
		*/
		modules {
			module0 {
				badge = "e3326_front_P5V27C";
				position = "rear";
				orientation = "1";
				drivernode0 {
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver's v4l2 device name */
					devname = "imx219 6-0010";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/imx219_c@10";
				};

			};
		};
	};
};

It compile without Error ,but while flash it,I encountered the following kernel panci while booting

<hit enter to activate fiq debugger>
[    1.338913] Unable to handle kernel read from unreadable memory at virtual address 000001d0
[    1.347375] Mem abort info:
[    1.350239]   ESR = 0x96000005
[    1.353351]   Exception class = DABT (current EL), IL = 32 bits
[    1.359322]   SET = 0, FnV = 0
[    1.362431]   EA = 0, S1PTW = 0
[    1.365623] Data abort info:
[    1.368559]   ISV = 0, ISS = 0x00000005
[    1.372455]   CM = 0, WnR = 0
[    1.375469] [00000000000001d0] user address but active_mm is swapper
[    1.381877] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[    1.387439] Modules linked in:
[    1.390496] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.140 #3
[    1.396490] Hardware name: Jetson-TX1 (DT)
[    1.400577] task: ffffffc0fa6f0000 task.stack: ffffffc0fa66c000
[    1.406490] PC is at tegra_channel_populate_dev_info+0xac/0x198
[    1.412399] LR is at tegra_channel_populate_dev_info+0x9c/0x198
[    1.418306] pc : [<ffffff8008b299dc>] lr : [<ffffff8008b299cc>] pstate: 40400045
[    1.425686] sp : ffffffc0fa66f830
[    1.428993] x29: ffffffc0fa66f830 x28: ffffff80098244e0
[    1.434312] x27: 0000000000000001 x26: ffffffc0f4ebf518
[    1.439629] x25: 00000000009a2065 x24: ffffffc0f4ec0038
[    1.444946] x23: 000000000000000a x22: ffffffc0f4ebf770
[    1.450263] x21: ffffffc0f4ebf018 x20: ffffffc0fa66f8e8
[    1.455579] x19: ffffffc0f959a410 x18: 0000000000000001
[    1.460894] x17: 0000000000000003 x16: 0000000000000000
[    1.466209] x15: ffffffffffffffff x14: ffffffc0fa66f830
[    1.471525] x13: ffffffc0fa66f735 x12: ffffffffffffffff
[    1.476841] x11: ffffffc0fa66f6f0 x10: ffffffc0fa66f6f0
[    1.482157] x9 : 0000000000000002 x8 : 0000000000000002
[    1.487473] x7 : ffffff8008fb6d88 x6 : 0000000000000090
[    1.492788] x5 : 000000000000008d x4 : 0000000000000001
[    1.498104] x3 : 0000000000000000 x2 : 0000000000000000
[    1.503420] x1 : 0000000000000000 x0 : 0000000000000000
[    1.508733]
[    1.510219] Process swapper/0 (pid: 1, stack limit = 0xffffffc0fa66c000)
[    1.516906] Call trace:
[    1.519348] [<ffffff8008b299dc>] tegra_channel_populate_dev_info+0xac/0x198
[    1.526297] [<ffffff8008b2b3a0>] tegra_channel_init_subdevices+0x2e8/0x7a8
[    1.533159] [<ffffff8008b2c3c8>] tegra_vi_graph_notify_complete+0x328/0x6d8
[    1.540110] [<ffffff8008b0fdec>] v4l2_async_test_notify+0x104/0x120
[    1.546365] [<ffffff8008b0ff30>] v4l2_async_notifier_register+0x128/0x198
[    1.553139] [<ffffff8008b2d260>] tegra_vi_graph_init+0x228/0x278
[    1.559134] [<ffffff8008b27178>] tegra_vi_media_controller_init+0x1d0/0x208
[    1.566082] [<ffffff8008b45db8>] vi_probe+0x378/0x520
[    1.571125] [<ffffff800876f7f0>] platform_drv_probe+0x60/0xc0
[    1.576860] [<ffffff800876ce70>] driver_probe_device+0xd8/0x408
[    1.582768] [<ffffff800876d27c>] __driver_attach+0xdc/0x128
[    1.588329] [<ffffff800876a8ec>] bus_for_each_dev+0x5c/0xa8
[    1.593891] [<ffffff800876c670>] driver_attach+0x30/0x40
[    1.599191] [<ffffff800876c0a4>] bus_add_driver+0x20c/0x2a8
[    1.604751] [<ffffff800876e1b4>] driver_register+0x6c/0x110
[    1.610311] [<ffffff800876f72c>] __platform_driver_register+0x5c/0x68
[    1.616740] [<ffffff8009648b00>] vi_init+0x2c/0x38
[    1.621522] [<ffffff8008083afc>] do_one_initcall+0x44/0x130
[    1.627083] [<ffffff8009600d18>] kernel_init_freeable+0x1a0/0x244
[    1.633166] [<ffffff8008f45dc0>] kernel_init+0x18/0x108
[    1.638380] [<ffffff8008083850>] ret_from_fork+0x10/0x40
[    1.643682] ---[ end trace 1bd7621542eb9932 ]---
[    1.652754] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.652754]
[    1.661876] SMP: stopping secondary CPUs
[    1.665843] Kernel Offset: disabled
[    1.669326] Memory Limit: none
[    1.676646] Rebooting in 5 seconds..

Could someone help please?

Can it boot if not include #include “jetson-platforms/tegra210-my-camera-config-a00.dtsi”?

yes,it boot if not #include “jetson-platforms/tegra210-my-camera-config-a00.dtsi”
Even when using ov5693 instead of imx219, it’s okay::

/*
 * Copyright (c) 2015-2019, NVIDIA CORPORATION.  All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include <dt-bindings/media/camera.h>
#include <dt-bindings/platform/t210/t210.h>

/ {
	host1x {
		vi {
			num-channels = <1>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					reg = <0>;
					vi_in0: endpoint {
						port-index = <2>;
						bus-width = <2>;
						remote-endpoint = <&ov5693_csi_out0>;
					};
				};
			};
		};
		nvcsi {
			num-channels = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			channel@0 {
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						ov5693_csi_in0: endpoint@0 {
							port-index = <2>;
							bus-width = <2>;
							remote-endpoint = <&ov5693_phy_out0>;
						};
					};
					port@1 {
						reg = <1>;
						ov5693_csi_out0: endpoint@1 {
							remote-endpoint = <&vi_in0>;
						};
					};
				};
			};
		};

//**************************************************************************
//**************************************************************************

		i2c@546c0000 {
			avdd_dsi_csi-supply = <&max77620_ldo0>;

			status = "okay";
			#address-cells = <1>;
			#size-cells = <0>;
			ov5693_c@36 {
				compatible = "nvidia,ov5693";
				/* I2C device address */
				reg = <0x36>;

				/* V4L2 device node location */
				devnode = "video0";

				/* Physical dimensions of sensor */
				physical_w = "3.674";
				physical_h = "2.738";

				/* Sensor output flip settings */
				vertical-flip = "true";

				/* Define any required hw resources needed by driver */
				/* ie. clocks, io pins, power sources */
				avdd-reg = "vana";
				iovdd-reg = "vif";

				/**
				* A modeX node is required to support v4l2 driver
				* implementation with NVIDIA camera software stack
				*
				* mclk_khz = "";
				* Standard MIPI driving clock, typically 24MHz
				*
				* num_lanes = "";
				* Number of lane channels sensor is programmed to output
				*
				* tegra_sinterface = "";
				* The base tegra serial interface lanes are connected to
				*
				* discontinuous_clk = "";
				* The sensor is programmed to use a discontinuous clock on MIPI lanes
				*
				* dpcm_enable = "true";
				* The sensor is programmed to use a DPCM modes
				*
				* cil_settletime = "";
				* MIPI lane settle time value.
				* A "0" value attempts to autocalibrate based on mclk_multiplier
				*
				*
				*
				*
				* active_w = "";
				* Pixel active region width
				*
				* active_h = "";
				* Pixel active region height
				*
				* pixel_t = "";
				* The sensor readout pixel pattern
				*
				* readout_orientation = "0";
				* Based on camera module orientation.
				* Only change readout_orientation if you specifically
				* Program a different readout order for this mode
				*
				* line_length = "";
				* Pixel line length (width) for sensor mode.
				* This is used to calibrate features in our camera stack.
				*
				* mclk_multiplier = "";
				* Multiplier to MCLK to help time hardware capture sequence
				* TODO: Assign to PLL_Multiplier as well until fixed in core
				*
				* pix_clk_hz = "";
				* Sensor pixel clock used for calculations like exposure and framerate
				*
				*
				*
				*
				* inherent_gain = "";
				* Gain obtained inherently from mode (ie. pixel binning)
				*
				* min_gain_val = ""; (floor to 6 decimal places)
				* max_gain_val = ""; (floor to 6 decimal places)
				* Gain limits for mode
				*
				* min_exp_time = ""; (ceil to integer)
				* max_exp_time = ""; (ceil to integer)
				* Exposure Time limits for mode (us)
				*
				*
				* min_hdr_ratio = "";
				* max_hdr_ratio = "";
				* HDR Ratio limits for mode
				*
				* min_framerate = "";
				* max_framerate = "";
				* Framerate limits for mode (fps)
				*/
				mode0 { // OV5693_MODE_2592X1944
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_c";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "2592";
					active_h = "1944";
					mode_type = "bayer";
					pixel_phase = "bggr";
					csi_pixel_bit_depth = "10";
					readout_orientation = "90";
					line_length = "2688";
					inherent_gain = "1";
					mclk_multiplier = "6.67";
					pix_clk_hz = "160000000";

					gain_factor = "10";
					min_gain_val = "10";/* 1DB*/
					max_gain_val = "160";/* 16DB*/
					step_gain_val = "1";
					default_gain = "10";
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					framerate_factor = "1000000";
					min_framerate = "1816577";/*1.816577 */
					max_framerate = "30000000";/*30*/
					step_framerate = "1";
					default_framerate = "30000000";
					exposure_factor = "1000000";
					min_exp_time = "34";/* us */
					max_exp_time = "550385";/* us */
					step_exp_time = "1";
					default_exp_time = "33334";/* us */
					embedded_metadata_height = "0";
				};

				mode1 { //OV5693_MODE_2592X1458
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_c";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "2592";
					active_h = "1458";
					mode_type = "bayer";
					pixel_phase = "bggr";
					csi_pixel_bit_depth = "10";
					readout_orientation = "90";
					line_length = "2688";
					inherent_gain = "1";
					mclk_multiplier = "6.67";
					pix_clk_hz = "160000000";

					gain_factor = "10";
					min_gain_val = "10";/* 1DB*/
					max_gain_val = "160";/* 16DB*/
					step_gain_val = "1";
					default_gain = "10";
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					framerate_factor = "1000000";
					min_framerate = "1816577";/*1.816577 */
					max_framerate = "30000000";/*30*/
					step_framerate = "1";
					default_framerate = "30000000";
					exposure_factor = "1000000";
					min_exp_time = "34";/* us */
					max_exp_time = "550385";/* us */
					step_exp_time = "1";
					default_exp_time = "33334";/* us */
					embedded_metadata_height = "0";
				};

				mode2 { //OV5693_MODE_1280X720
					mclk_khz = "24000";
					num_lanes = "2";
					tegra_sinterface = "serial_c";
					phy_mode = "DPHY";
					discontinuous_clk = "yes";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "1280";
					active_h = "720";
					mode_type = "bayer";
					pixel_phase = "bggr";
					csi_pixel_bit_depth = "10";
					readout_orientation = "90";
					line_length = "1752";
					inherent_gain = "1";
					mclk_multiplier = "6.67";
					pix_clk_hz = "160000000";

					gain_factor = "10";
					min_gain_val = "10";/* 1DB*/
					max_gain_val = "160";/* 16DB*/
					step_gain_val = "1";
					default_gain = "10";
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					framerate_factor = "1000000";
					min_framerate = "2787078";/* 2.787078 */
					max_framerate = "120000000";/* 120*/
					step_framerate = "1";
					default_framerate = "120000000";
					exposure_factor = "1000000";
					min_exp_time = "22";/* us */
					max_exp_time = "358733";/* us */
					step_exp_time = "1";
					default_exp_time = "8334";/* us */
					embedded_metadata_height = "0";
				};

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0>;
						ov5693_phy_out0: endpoint {
							port-index = <2>;
							bus-width = <2>;
							remote-endpoint = <&ov5693_csi_in0>;
						};
					};
				};
			};
		};
	
	
	};

	

	tegra-camera-platform {
		compatible = "nvidia, tegra-camera-platform";
		/**
		* Physical settings to calculate max ISO BW
		*
		* num_csi_lanes = <>;
		* Total number of CSI lanes when all cameras are active
		*
		* max_lane_speed = <>;
		* Max lane speed in Kbit/s
		*
		* min_bits_per_pixel = <>;
		* Min bits per pixel
		*
		* vi_peak_byte_per_pixel = <>;
		* Max byte per pixel for the VI ISO case
		*
		* vi_bw_margin_pct = <>;
		* Vi bandwidth margin in percentage
		*
		* isp_peak_byte_per_pixel = <>;
		* Max byte per pixel for the ISP ISO case
		*
		* isp_bw_margin_pct = <>;
		* Isp bandwidth margin in percentage
		*/
		num_csi_lanes = <4>;
		max_lane_speed = <1500000>;
		min_bits_per_pixel = <10>;
		vi_peak_byte_per_pixel = <2>;
		vi_bw_margin_pct = <25>;
		isp_peak_byte_per_pixel = <2>;
		isp_bw_margin_pct = <25>;

		/**
		* The general guideline for naming badge_info contains 3 parts, and is as follows,
		* The first part is the camera_board_id for the module; if the module is in a FFD
		* platform, then use the platform name for this part.
		* The second part contains the position of the module, ex. “rear” or “front”.
		* The third part contains the last 6 characters of a part number which is found
		* in the module's specsheet from the vender.
		*/
		modules {
			module0 {
				badge = "e3326_front_P5V27C";
				position = "rear";
				orientation = "1";
				drivernode0 {
					/* Declare PCL support driver (classically known as guid)  */
					pcl_id = "v4l2_sensor";
					/* Driver's v4l2 device name */
					devname = "ov5693 6-0036";
					/* Declare the device-tree hierarchy to driver instance */
					proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/ov5693_c@36";
				};

			};
		};
	};
};

I think you should use tegra210-camera-rbpcv2-imx219.dtsi to modify to match your HW design.