2 Camera operations abnormally

Hi, we are using Jetson Nano with RX(TP2854) to capture the images.
2 Channels will be operated even if we control one channel camera. The situation is that I control only 2nd channel camera, but 1st camera will be operated ON/OFF simultaneously.
Here is the log for your reference. “0044” is 1st camera, and “0045” is the 2nd camera.
Is it normal or some reasons to do this or …?

root@tegra-ubuntu:~#s
[ 1711.436166] tp2854 6-0044: tp2854_write_reg: i2c write, 0x40 = 8
[ 1711.449584] tp2854 6-0044: tp2854_write_reg: i2c write, 0x6 = b2
[ 1711.456588] tp2854 6-0044: tp2854_write_reg: i2c write, 0x23 = 0
[ 1711.465572] tp2854 6-0044: tp2854_write_reg: i2c write, 0x40 = 4
[ 1711.477483] tp2854 6-0044: tp2854_write_reg: i2c write, 0x40 = 8
[ 1711.489548] tp2854 6-0044: tp2854_write_reg: i2c write, 0x23 = 2
[ 1711.498861] tp2854 6-0044: tp2854_write_reg: i2c write, 0x40 = 4
[ 1711.534351] tp2854 6-0045: tp2854_write_reg: i2c write, 0x40 = 8
[ 1711.546247] tp2854 6-0045: tp2854_write_reg: i2c write, 0x6 = b2
[ 1711.552920] tp2854 6-0045: tp2854_write_reg: i2c write, 0x23 = 0
[ 1711.560916] tp2854 6-0045: tp2854_write_reg: i2c write, 0x40 = 4
[ 1711.572779] tp2854 6-0045: tp2854_write_reg: i2c write, 0x40 = 8
[ 1711.584568] tp2854 6-0045: tp2854_write_reg: i2c write, 0x23 = 2
[ 1711.591368] tp2854 6-0045: tp2854_write_reg: i2c write, 0x40 = 4
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)108[ 1711.750890] tp2854 6-0045: tp2854_write_reg: i2c write, 0x40 = 8
0, framerate=(fraction)30/1, colorimetry=(string)2:4:7:1, interlace-mode=(string)progressive
/G[ 1711.765204] tp2854 6-0045: tp2854_write_reg: i2c write, 0x6 = b2
stPipeline:pipeline0/GstCapsFilter:capsf[ 1711.774424] tp2854 6-0045: tp2854_write_reg: i2c write, 0x23 = 0
ilter0.GstPad:src: caps = video/x-raw, f[ 1711.783933] tp2854 6-0045: tp2854_write_reg: i2c write, 0x40 = 4
ormat=(string)YUY2, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, colorimetry=(string)2:4:7:1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstNvOverlaySink-nvoverlaysink:nvoverlaysink-nvoverlaysink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, colorimetry=(string)2:4:7:1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, colorimetry=(string)2:4:7:1, interlace-mode=(string)progressive
[ 1711.998705] video4linux video1: frame start syncpt timeout! index:0
[ 1712.206697] video4linux video1: frame start syncpt timeout! index:0
[ 1712.414686] video4linux video1: frame start syncpt timeout! index:0
[ 1712.622677] video4linux video1: frame start syncpt timeout! index:0
[ 1712.830677] video4linux video1: frame start syncpt timeout! index:0
[ 1713.038668] video4linux video1: frame start syncpt timeout! index:0
[ 1713.246670] video4linux video1: frame start syncpt timeout! index:0
[ 1713.454654] video4linux video1: frame start syncpt timeout! index:0
[ 1713.662632] video4linux video1: frame start syncpt timeout! index:0
[ 1713.870644] video4linux video1: frame start syncpt timeout! index:0
[ 1714.078638] video4linux video1: frame start syncpt timeout! index:0
[ 1714.286639] video4linux video1: frame start syncpt timeout! index:0
[ 1714.494628] video4linux video1: frame start syncpt timeout! index:0
[ 1714.702623] video4linux video1: frame start syncpt timeout! index:0
[ 1714.910614] video4linux video1: frame start syncpt timeout! index:0
[ 1715.118609] video4linux video1: frame start syncpt timeout! index:0
[ 1715.326604] video4linux video1: frame start syncpt timeout! index:0
[ 1715.534596] video4linux video1: frame start syncpt timeout! index:0
[ 1715.742590] video4linux video1: frame start syncpt timeout! index:0
[ 1715.950585] video4linux video1: frame start syncpt timeout! index:0
[ 1716.158578] video4linux video1: frame start syncpt timeout! index:0
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:04.436390316
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
^C[ 1716.366569] video4linux video1: frame start syncpt timeout! index:0
[ 1716.374115] tp2854 6-0045: tp2854_write_reg: i2c write, 0x40 = 8
[ 1716.386010] tp2854 6-0045: tp2854_write_reg: i2c write, 0x23 = 2
[ 1716.393294] tp2854 6-0045: tp2854_write_reg: i2c write, 0x40 = 4s

3 dtsi files is for your reference, too.
File:tegra210-porg-tp2854.dtsi

#include "tegra210-camera-tp2854.dtsi"

#define CAM1_PWDN		TEGRA_GPIO(S, 7)
#define CAM2_PWDN		TEGRA_GPIO(T, 0)

/ {
    host1x {
		i2c@546c0000 {
			nc_tp2854_a@44 {
				status = "enabled";
				reset-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;
			};

			nc_tp2854_a@45 {
				status = "enabled";
				reset-gpios = <&gpio CAM2_PWDN GPIO_ACTIVE_HIGH>;
			};
		};
	};

    gpio@6000d000 {
		camera-control-output-low {
			gpio-hog;
			output-low;
			gpios = < CAM1_PWDN 0  CAM2_PWDN 0>;
			label = "cam1-pwdn", "cam2-pwdn";
		};
	};
};

File: tegra210-camera-tp2854.dtsi

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

/ {
	host1x {
		vi_base: vi {
			num-channels = <2>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				vi_port0: port@0 {
					reg = <0>;
					nc_tp2854_vi_in0: endpoint {
						port-index = <0>;
						bus-width = <4>;
						remote-endpoint = <&nc_tp2854_csi_out0>;
					};
				};
				vi_port1: port@1 {
					reg = <1>;
					nc_tp2854_vi_in1: endpoint {
						port-index = <2>;
						bus-width = <4>;
						remote-endpoint = <&nc_tp2854_csi_out1>;
					};
				};
			};
		};

		csi_base: nvcsi {
			num-channels = <2>;
			#address-cells = <1>;
			#size-cells = <0>;
			csi_chan0: channel@0 {
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					csi_chan0_port0: port@0 {
						reg = <0>;
						nc_tp2854_csi_in0: endpoint@0 {
							port-index = <0>;
							bus-width = <4>;
							remote-endpoint = <&nc_tp2854_out0>;
						};
					};
					csi_chan0_port1: port@1 {
						reg = <1>;
						nc_tp2854_csi_out0: endpoint@1 {
							remote-endpoint = <&nc_tp2854_vi_in0>;
						};
					};
				};
			};
			csi_chan1: channel@1 {
				reg = <1>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					csi_chan1_port0: port@2 {
						reg = <0>;
						nc_tp2854_csi_in1: endpoint@2 {
							port-index = <2>;
							bus-width = <4>;
							remote-endpoint = <&nc_tp2854_out1>;
						};
					};
					csi_chan1_port1: port@3 {
						reg = <1>;
						nc_tp2854_csi_out1: endpoint@3 {
							remote-endpoint = <&nc_tp2854_vi_in1>;
						};
					};
				};
			};
		};

		i2c@546c0000 {
			tp2854_single_cam0: nc_tp2854_a@44 {
				compatible = "nc,tp2854_mipi";
				/* I2C device address */
				reg = <0x44>;

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

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

				sensor_model = "tp2854_0";

				use_sensor_mode_id = "true";

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

				/**
				* ==== 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 { /* TP2854_MODE_1920x1080_30FPS */
					mclk_khz = "27000";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "1920";
					active_h = "1080";
					pixel_t = "yuv_uyvy16";
					readout_orientation = "0";
					line_length = "2200";
					inherent_gain = "1";
					mclk_multiplier = "2.75";
					pix_clk_hz = "742500000"; /*pixel clock = mclk * PLL Multipler*/ /*pixel_clk_hz = 2200 * 1125 * 30 = 742500000*/

					gain_factor = "16";
					framerate_factor = "30000000";
					exposure_factor = "1000000";
					min_gain_val = "0"; /* 1.00x */
					max_gain_val = "170"; /* 10.66x */
					step_gain_val = "1";
					default_gain = "0"; /* 1.00x */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "30000000"; /* 30.0 fps */
					max_framerate = "30000000"; /* 30.0 fps *//*max_framerate = pix_clk_hz / (line_length * minimum frame length)*/
					step_framerate = "1";
					default_framerate = "30000000"; /* 30.0 fps */
					min_exp_time = "30"; /* us */
					max_exp_time = "660000"; /* us *//*max_exp_time = (maximum coarse integration time) * line_length / pix_clk_hz * 1000000*/
					step_exp_time = "1";
					default_exp_time = "33334"; /* us */

					embedded_metadata_height = "0";
				};
				mode1 { /* TP2854_MODE_1080x720_30FPS */
					mclk_khz = "27000";
					num_lanes = "4";
					tegra_sinterface = "serial_a";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "1280";
					active_h = "720";
					pixel_t = "yuv_yuyv16";
					readout_orientation = "0";
					line_length = "1650";
					inherent_gain = "1";
					mclk_multiplier = "2.75";
					pix_clk_hz = "742500000";

					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 = "30000000"; /* 30.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 = "0";
				};

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

					port@0 {
						reg = <0>;
						nc_tp2854_out0: endpoint {
							port-index = <0>;
							bus-width = <4>;
							remote-endpoint = <&nc_tp2854_csi_in0>;
						};
					};
				};
			};
	
			tp2854_single_cam1: nc_tp2854_a@45 {
				compatible = "nc,tp2854_mipi";
				/* I2C device address */
				reg = <0x45>;

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

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

				sensor_model = "tp2854_1";

				use_sensor_mode_id = "true";

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

				/**
				* ==== 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 { /* TP2854_MODE_1920x1080_30FPS */
					mclk_khz = "27000";
					num_lanes = "4";
					tegra_sinterface = "serial_c";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "1920";
					active_h = "1080";
					pixel_t = "yuv_uyvy16";
					readout_orientation = "0";
					line_length = "2200";
					inherent_gain = "1";
					mclk_multiplier = "2.75";
					pix_clk_hz = "742500000"; /*pixel clock = mclk * PLL Multipler*/ /*pixel_clk_hz = 2200 * 1125 * 30 = 742500000*/

					gain_factor = "16";
					framerate_factor = "30000000";
					exposure_factor = "1000000";
					min_gain_val = "0"; /* 1.00x */
					max_gain_val = "170"; /* 10.66x */
					step_gain_val = "1";
					default_gain = "0"; /* 1.00x */
					min_hdr_ratio = "1";
					max_hdr_ratio = "1";
					min_framerate = "30000000"; /* 30.0 fps */
					max_framerate = "30000000"; /* 30.0 fps *//*max_framerate = pix_clk_hz / (line_length * minimum frame length)*/
					step_framerate = "1";
					default_framerate = "30000000"; /* 30.0 fps */
					min_exp_time = "30"; /* us */
					max_exp_time = "660000"; /* us *//*max_exp_time = (maximum coarse integration time) * line_length / pix_clk_hz * 1000000*/
					step_exp_time = "1";
					default_exp_time = "33334"; /* us */

					embedded_metadata_height = "0";
				};
				mode1 { /* TP2854_MODE_1080x720_30FPS */
					mclk_khz = "27000";
					num_lanes = "4";
					tegra_sinterface = "serial_c";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = "0";

					active_w = "1280";
					active_h = "720";
					pixel_t = "yuv_yuyv16";
					readout_orientation = "0";
					line_length = "1650";
					inherent_gain = "1";
					mclk_multiplier = "2.75";
					pix_clk_hz = "742500000";

					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 = "30000000"; /* 30.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 = "0";
				};

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

					port@0 {
						reg = <0>;
						nc_tp2854_out1: endpoint {
							port-index = <2>;
							bus-width = <4>;
							remote-endpoint = <&nc_tp2854_csi_in1>;
						};
					};
				};
			};
		};
    };

	lens_tp2854@RBPCV2 {
		min_focus_distance = "0.0";
		hyper_focal = "0.0";
		focal_length = "3.04";
		f_number = "2.0";
		aperture = "0.0";
	};
};

/ {
	tcp: 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
		*
		* max_pixel_rate = <>;
		* Max pixel rate in Kpixel/s for the ISP ISO case
		*
		* 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 = <8>;
		max_lane_speed = <3000000>;
		min_bits_per_pixel = <8>;
		vi_peak_byte_per_pixel = <2>;
		vi_bw_margin_pct = <25>;
		max_pixel_rate = <270000>;
		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 vendor.
		 */
		modules {
			cam_module0: module0 {
				badge = "porg_front_RBPCV2";
				position = "front";
				orientation = "1";
				cam_module0_drivernode0: drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "tp2854 0-0044";
					proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/nc_tp2854_a@44";
				};
				cam_module0_drivernode1: drivernode1 {
					pcl_id = "v4l2_lens";
					proc-device-tree = "/proc/device-tree/lens_tp2854@RBPCV2/";
				};
			};
			cam_module1: module1 {
				badge = "porg_rear_RBPCV2";
				position = "rear";
				orientation = "1";
				cam_module1_drivernode0: drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "tp2854 1-0045";
					proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/nc_tp2854_a@45";
				};
				cam_module1_drivernode1: drivernode1 {
					pcl_id = "v4l2_lens";
					proc-device-tree = "/proc/device-tree/lens_tp2854@RBPCV2/";
				};
			};
		};
	};
};

File: tegra210-porg-plugin-manager.dtsi

/ {
	plugin-manager {
		fragement@0 {
			ids = ">=3448-0000-100", ">=3448-0002-100";
			override@0 {
				target = <&ina3221x>;
				_overlay_ {
					channel@0 {
						ti,rail-name = "POM_5V_IN";
					};
					channel@1 {
						ti,rail-name = "POM_5V_GPU";
					};
				};
			};

		};

		fragment@1 {
			ids = ">=3448-0000-101", ">=3448-0002-101";
			override@0 {
				target = <&max77620_sd0>;
				_overlay_ {
					regulator-min-microvolt = <600000>;
				};
			};
		};

		fragment@2 {
			ids = "<3448-0000-200", "<3448-0002-200";
			override@0 {
				target = <&tegra_i2s4>;
				_overlay_ {
					regulator-supplies = "vdd-1v8-audio-hv", "vdd-1v8-audio-hv-bias";
					vdd-1v8-audio-hv-supply = <&max77620_sd3>;
					vdd-1v8-audio-hv-bias-supply = <&max77620_sd3>;
					fsync-width = <15>;
					status = "okay";
				};
			};

			override@1 {
				target = <&tegra_i2s4>;
				_overlay_ {
					status = "okay";
				};
			};

			override@2 {
				target = <&sound_card>;
				_overlay_ {
					nvidia,dai-link-1 {
						cpu-dai = <&tegra_i2s4>;
						cpu-dai-name = "I2S4";
					};
				};
			};
		};

		fragment@3 {
			ids = ">=3448-0002-100";
			override@0 {
				target = <&sdhci3>;
				_overlay_ {
					status = "okay";
				};
			};

			override@1 {
				target = <&sdhci0>;
				_overlay_ {
					status = "disabled";
				};
			};
		};

		fragment@4 {
			ids = "3449-0000-000";
			override@0 {
				target = <&suspend_gpio>;
				_overlay_ {
					status = "disabled";
				};
			};

			override@1 {
				target = <&p3449_vdd_usb_hub_en>;
				_overlay_ {
					gpio = <&gpio TEGRA_GPIO(A, 6) 0>;
					enable-active-low;
					gpio-open-drain;
				};
			};

			override@2 {
				target = <&{/xusb_padctl@7009f000/ports/usb2-1}>;
				_overlay_ {
					vbus-supply = <&p3449_vdd_usb_hub_en>;
				};
			};
		};

		fragment@5 {
			ids = "3449-0000-100", "3449-0000-200";
			override@0 {
				target = <&suspend_gpio>;
				_overlay_ {
					status = "disabled";
				};
			};

			override@1 {
				target = <&p3449_vdd_usb_hub_en>;
				_overlay_ {
					gpio = <&gpio TEGRA_GPIO(A, 6) 0>;
					enable-active-high;
				};
			};

			override@2 {
				target = <&{/xusb_padctl@7009f000/ports/usb2-1}>;
				_overlay_ {
					vbus-supply = <&p3449_vdd_usb_hub_en>;
				};
			};
		};

		fragement@6 {
                        odm-data = "enable-tegra-wdt";
                        override@0 {
                                target = <&tegra_wdt>;
                                _overlay_ {
                                        status = "okay";
                                };
                        };
                };

                fragement@7 {
                        odm-data = "enable-pmic-wdt";
                        override@0 {
                                target = <&spmic_wdt>;
                                _overlay_ {
                                        status = "okay";
                                };
                        };
                };

                fragement@8 {
                        odm-data = "enable-pmic-wdt",
                                "enable-tegra-wdt";
                        override@0 {
                                target = <&soft_wdt>;
                                _overlay_ {
                                        status = "disabled";
                                };
                        };
                };

		fragement@9 {
			ids = ">=3448-0000-300", ">=3448-0002-300";
			override@0 {
				target = <&max77620_ldo6>;
				_overlay_ {
                                        status = "disabled";
				};
			};
			override@1 {
				target = <&sdhci2>;
				_overlay_ {
					keep-power-in-suspend;
					non-removable;
				};
			};



			/* tp2854 dual sensor module */
			override@2 {
				target = <&tp2854_single_cam0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@3 {
				target = <&cam_module0>;
				_overlay_ {
					status = "okay";
					badge = "porg_front_RBPCV2";
					position = "front";
					orientation = "1";
				};
			};
			override@4 {
				target = <&cam_module0_drivernode0>;
				_overlay_ {
					status = "okay";
					pcl_id = "v4l2_sensor";
					devname = "tp2854 6-0010";
					proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tp2854@44/nc_tp2854_a@44";
				};
			};
			override@5 {
				target = <&cam_module0_drivernode1>;
				_overlay_ {
					status = "okay";
					pcl_id = "v4l2_lens";
					proc-device-tree = "/proc/device-tree/lens_tp2854@RBPCV2/";
				};
			};
			override@6 {
				target = <&tp2854_single_cam1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@7 {
				target = <&cam_module1>;
				_overlay_ {
					status = "okay";
					badge = "porg_front_RBPCV2";
					position = "front";
					orientation = "1";
				};
			};
			override@8 {
				target = <&cam_module1_drivernode0>;
				_overlay_ {
					status = "okay";
					pcl_id = "v4l2_sensor";
					devname = "tp2854 6-0010";
					proc-device-tree = "/proc/device-tree/host1x/i2c@546c0000/tp2854@45/nc_tp2854_a@45";
				};
			};
			override@9 {
				target = <&cam_module1_drivernode1>;
				_overlay_ {
					status = "okay";
					pcl_id = "v4l2_lens";
					proc-device-tree = "/proc/device-tree/lens_tp2854@RBPCV2/";
				};
			};



			/* Enable VI ports */
			override@10 {
				target = <&vi_base>;
				_overlay_ {
					num-channels=<2>;
				};
			};
			override@11 {
				target = <&vi_port0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@12 {
				target = <&vi_port1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@13 {
				target = <&nc_tp2854_vi_in0>;
				_overlay_ {
					status = "okay";
					port-index = <0>;
					bus-width = <4>;
					remote-endpoint = <&nc_tp2854_csi_out0>;
				};
			};
			override@14 {
				target = <&nc_tp2854_vi_in1>;
				_overlay_ {
					status = "okay";
					port-index = <2>;
					bus-width = <4>;
					remote-endpoint = <&nc_tp2854_csi_out1>;
				};
			};


			/* Enable CSI ports */
			override@15 {
				target = <&csi_base>;
				_overlay_ {
					num-channels=<2>;
				};
			};
			override@16 {
				target = <&csi_chan0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@17 {
				target = <&csi_chan0_port0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@18 {
				target = <&nc_tp2854_csi_in0>;
				_overlay_ {
					status = "okay";
					port-index = <0>;
					bus-width = <4>;
					remote-endpoint = <&nc_tp2854_out0>;
				};
			};
			override@19 {
				target = <&csi_chan0_port1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@20 {
				target = <&nc_tp2854_csi_out0>;
				_overlay_ {
					status = "okay";
					remote-endpoint = <&nc_tp2854_vi_in0>;
				};
			};
			override@21 {
				target = <&csi_chan1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@22 {
				target = <&csi_chan1_port0>;
				_overlay_ {
					status = "okay";
				};
			};
			override@23 {
				target = <&nc_tp2854_csi_in1>;
				_overlay_ {
					status = "okay";
					port-index = <2>;
					bus-width = <4>;
					remote-endpoint = <&nc_tp2854_out1>;
				};
			};
			override@24 {
				target = <&csi_chan1_port1>;
				_overlay_ {
					status = "okay";
				};
			};
			override@25 {
				target = <&nc_tp2854_csi_out1>;
				_overlay_ {
					status = "okay";
					/*remote-endpoint = <&nc_tp2854_vi_in1>;*/
				};
			};


			/* tegra-camera-platform settings */
			override@26 {
				target = <&tcp>;
				_overlay_ {
					num_csi_lanes = <8>;
					max_lane_speed = <3000000>;
					min_bits_per_pixel = <8>;
					vi_peak_byte_per_pixel = <2>;
					vi_bw_margin_pct = <25>;
					max_pixel_rate = <270000>;
					isp_peak_byte_per_pixel = <5>;
					isp_bw_margin_pct = <25>;
				};
			};
		};
	};
};

Thanks a lot.

B.R.
Roland

hello roland6001,

it seems to me you’re using same i2c (i2c@546c0000) to control two cameras.
that’s why the operation from 2nd camera will affect 1st cam.

you’ll need to enable i2c-mux to emulate two i2c bus for different camera sensors.
BTW,
suggest you also check dual camera reference drivers as an example, thanks

$l4t-r32.2/public_sources/kernel-src/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms/tegra210-camera-rbpcv2-dual-imx219.dtsi

Hi Jerry,

After we checked the reference drivers as you mentioned, we still don’t know how to finish our design. Could you explain more about what is the actual usage of the reference driver and i2c-mux ? And for example, how to use GPIO to control or switch different I2C devices(the same address) in the same I2C physical bus?

B.R.
Roland

hello roland6001,

we usually working with i2c-mux to emulate different i2c buses.
please check below reference driver as an example, which emulate two imx219 at i2c7.
thanks

<i>$l4t-r32.2/public_sources/kernel-src/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms/tegra210-porg-camera-rbpcv2-dual-imx219.dtsi</i>

	cam_i2cmux {
		mux-gpios = <&gpio CAM_I2C_MUX GPIO_ACTIVE_HIGH>;
		i2c-parent = <&i2c7>;

		i2c@0 {
			rbpcv2_imx219_a@10 {

		i2c@1 {
			rbpcv2_imx219_e@10 {

Hi Jerry,

Sorry, we’re not quite sure we understand what you meant. May I ask how to design H/W and how to connect in H/W layer? Could you explain more about i2c-mux?

Thanks a lot.
B.R.
Roland

hello roland6001,

please access Jetson Nano Product Design Guide, you should refer to [MIPI CSI (VIDEO INPUT)] chapter for the CSI camera connection examples.
you may also check Jetson Nano System-on-Module Data Sheet if you need more details about Nano’s pin description.
please also check Jetson Nano Platform Adaptation and Bring-Up Guide for the board customization.
thanks

Hi Jerry,

Thanks for your information.
After we checked the circuit, we found that we didn’t use TS3USB30E this chip IC. Do you have any suggestions in our design?

B.R.
Roland

hello roland6001,

please access Jetson Nano Product Design Guide for your hardware customization.
thanks