Max96712 &&max9295a gmsl 4 lan mipi Interface conflict problem

Hello everyone, I use max96712 and max9295a to debug the gmsl2 6G camera, and connected 4 cameras, of which camera 0 and 1 are connected to jetson’s CSI A (port-index=0), and camera 2 and 3 are connected to CSI C (port-index=2); Currently, the two cameras running CSI A/C separately can produce images normally, but the cameras of CSI A and C cannot be run at the same time. For example, 4 cameras video 0~3, 0~1 corresponds to CSI A, 2~3 corresponds to CSI C, when I v4l2-ctl --stream-mmap -d /dev/video0, v4l2-ctl --stream-mmap -d /dev/video2 cannot produce images, and when I ctrl+c to close video2 when video0 is running, video0 will also be affected and cannot produce images; I don’t know why this happens, can you give me some suggestions?

Note: Although the image cannot be displayed, the gmsl-deserializer 96712 does receive data, so I think it is a MIPI configuration problem.

Here is my device tree configuration:

	tegra-capture-vi {
		compatible = "nvidia,tegra-camrtc-capture-vi";
		nvidia,vi-devices = <0x21e 0x220>;
		nvidia,vi-mapping-size = <0x06>;
		nvidia,vi-mapping = <0x00 0x00 0x01 0x00 0x02 0x01 0x03 0x01 0x04 0x00 0x05 0x01>;
		nvidia,vi-mapping-names = "csi-stream-id\0vi-unit-id";
		nvidia,vi-max-channels = <0x48>;
		num-channels = <0x04>;
		phandle = <0x3b2>;

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

			port@0 {
				reg = <0x00>;
				status = "okay";
				endpoint {
					vc-id = <0x00>;
					port-index = <0x02>;
					bus-width = <0x04>;
					remote-endpoint = <0x221>;
					phandle = <0x127>;
				};
			};

			port@1 {
				reg = <0x01>;

				endpoint {
					vc-id = <0x01>;
					port-index = <0x02>;
					bus-width = <0x04>;
					remote-endpoint = <0x222>;
					phandle = <0x129>;
				};
			};

			port@2 {
				reg = <0x02>;

				endpoint {
					vc-id = <0x02>;
					port-index = <0x00>;
					bus-width = <0x04>;
					remote-endpoint = <0x223>;
					phandle = <0x12b>;
				};
			};

			port@3 {
				reg = <0x03>;

				endpoint {
					vc-id = <0x03>;
					port-index = <0x00>;
					bus-width = <0x04>;
					remote-endpoint = <0x224>;
					phandle = <0x12d>;
				};
			};
		};
	};
			nvcsi@15a00000 {
				compatible = "nvidia,tegra194-nvcsi";
				resets = <0x04 0x2b>;
				reset-names = "nvcsi";
				clocks = <0x04 0x51>;
				clock-names = "nvcsi";
				status = "okay";
				num-channels = <0x04>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;
				phandle = <0x28d>;

				channel@0 {
					reg = <0x00>;

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

						port@0 {
							reg = <0x00>;

							endpoint {
								remote-endpoint = <0x126>;
								port-index = <0x02>;
								bus-width = <0x04>;
								phandle = <0x102>;
							};
						};

						port@1 {
							reg = <0x01>;

							endpoint {
								remote-endpoint = <0x127>;
								phandle = <0x221>;
							};
						};
					};
				};

				channel@1 {
					reg = <0x01>;

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

						port@0 {
							reg = <0x00>;

							endpoint {
								remote-endpoint = <0x128>;
								port-index = <0x02>;
								bus-width = <0x04>;
								phandle = <0x104>;
							};
						};

						port@1 {
							reg = <0x01>;

							endpoint {
								remote-endpoint = <0x129>;
								phandle = <0x222>;
							};
						};
					};
				};

				channel@2 {
					reg = <0x02>;

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

						port@0 {
							reg = <0x00>;

							endpoint {
								remote-endpoint = <0x12a>;
								port-index = <0x00>;
								bus-width = <0x04>;
								phandle = <0x106>;
							};
						};

						port@1 {
							reg = <0x01>;

							endpoint {
								remote-endpoint = <0x12b>;
								phandle = <0x223>;
							};
						};
					};
				};

				channel@3 {
					reg = <0x03>;

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

						port@0 {
							reg = <0x00>;

							endpoint {
								remote-endpoint = <0x12c>;
								port-index = <0x00>;
								bus-width = <0x04>;
								phandle = <0x108>;
							};
						};

						port@1 {
							reg = <0x01>;

							endpoint {
								remote-endpoint = <0x12d>;
								phandle = <0x224>;
							};
						};
					};
				};
			};
		};

media-ctl -p:

Media controller API version 5.15.148

Media device information
------------------------
driver          tegra-camrtc-ca
model           NVIDIA Tegra Video Input Device
serial          
bus info        
hw revision     0x3
driver version  5.15.148

Device topology
- entity 1: 13e00000.host1x:nvcsi@15a00000- (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
	pad0: Sink
		<- "des_ch_0":0 [ENABLED]
	pad1: Source
		-> "vi-output, nv_cam 21-001a":0 [ENABLED]

- entity 4: 13e00000.host1x:nvcsi@15a00000- (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
	pad0: Sink
		<- "des_ch_1":0 [ENABLED]
	pad1: Source
		-> "vi-output, nv_cam 22-001a":0 [ENABLED]

- entity 7: 13e00000.host1x:nvcsi@15a00000- (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev2
	pad0: Sink
		<- "des_ch_2":0 [ENABLED]
	pad1: Source
		-> "vi-output, nv_cam 23-001a":0 [ENABLED]

- entity 10: 13e00000.host1x:nvcsi@15a00000- (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
	pad0: Sink
		<- "des_ch_3":0 [ENABLED]
	pad1: Source
		-> "vi-output, nv_cam 24-001a":0 [ENABLED]

- entity 13: des_ch_0 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev4
	pad0: Source
		-> "13e00000.host1x:nvcsi@15a00000-":0 [ENABLED]
	pad1: Sink
		[fmt:FIXED/0x0]
		<- "ser_0_ch_0":0 [ENABLED]

- entity 16: des_ch_1 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev5
	pad0: Source
		-> "13e00000.host1x:nvcsi@15a00000-":0 [ENABLED]
	pad1: Sink
		[fmt:FIXED/0x0]
		<- "ser_1_ch_0":0 [ENABLED]

- entity 19: des_ch_2 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev6
	pad0: Source
		-> "13e00000.host1x:nvcsi@15a00000-":0 [ENABLED]
	pad1: Sink
		[fmt:FIXED/0x0]
		<- "ser_2_ch_0":0 [ENABLED]

- entity 22: des_ch_3 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev7
	pad0: Source
		-> "13e00000.host1x:nvcsi@15a00000-":0 [ENABLED]
	pad1: Sink
		[fmt:FIXED/0x0]
		<- "ser_3_ch_0":0 [ENABLED]

- entity 25: ser_0_ch_0 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev8
	pad0: Source
		[fmt:FIXED/0x0]
		-> "des_ch_0":1 [ENABLED]
	pad1: Sink
		<- "nv_cam 21-001a":0 [ENABLED]

- entity 28: ser_1_ch_0 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev9
	pad0: Source
		[fmt:FIXED/0x0]
		-> "des_ch_1":1 [ENABLED]
	pad1: Sink
		<- "nv_cam 22-001a":0 [ENABLED]

- entity 31: ser_2_ch_0 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev10
	pad0: Source
		[fmt:FIXED/0x0]
		-> "des_ch_2":1 [ENABLED]
	pad1: Sink
		<- "nv_cam 23-001a":0 [ENABLED]

- entity 34: ser_3_ch_0 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev11
	pad0: Source
		[fmt:FIXED/0x0]
		-> "des_ch_3":1 [ENABLED]
	pad1: Sink
		<- "nv_cam 24-001a":0 [ENABLED]

- entity 37: nv_cam 21-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev12
	pad0: Source
		[fmt:UYVY8_1X16/3840x2160@1/30 field:none colorspace:srgb]
		-> "ser_0_ch_0":1 [ENABLED]

- entity 39: vi-output, nv_cam 21-001a (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video0
	pad0: Sink
		<- "13e00000.host1x:nvcsi@15a00000-":1 [ENABLED]

- entity 77: nv_cam 22-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev13
	pad0: Source
		[fmt:UYVY8_1X16/1920x1080@1/30 field:none colorspace:srgb]
		-> "ser_1_ch_0":1 [ENABLED]

- entity 79: vi-output, nv_cam 22-001a (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video1
	pad0: Sink
		<- "13e00000.host1x:nvcsi@15a00000-":1 [ENABLED]

- entity 93: nv_cam 23-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev14
	pad0: Source
		[fmt:UYVY8_1X16/1920x1080@1/30 field:none colorspace:srgb]
		-> "ser_2_ch_0":1 [ENABLED]

- entity 95: vi-output, nv_cam 23-001a (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
	pad0: Sink
		<- "13e00000.host1x:nvcsi@15a00000-":1 [ENABLED]

- entity 109: nv_cam 24-001a (1 pad, 1 link)
              type V4L2 subdev subtype Sensor flags 0
              device node name /dev/v4l-subdev15
	pad0: Source
		[fmt:UYVY8_1X16/1920x1536@1/30 field:none colorspace:srgb]
		-> "ser_3_ch_0":1 [ENABLED]

- entity 111: vi-output, nv_cam 24-001a (1 pad, 1 link)
              type Node subtype V4L flags 0
              device node name /dev/video3
	pad0: Sink
		<- "13e00000.host1x:nvcsi@15a00000-":1 [ENABLED]

gmsl set:

			gmsl-deserializer@0x29 {
				#address-cells = <0x01>;
				#size-cells = <0x00>;
				compatible = "maxim,max96712";
				reset-gpios = <0xf1 0x3e 0x00>;
				reg = <0x29>;
				status = "okay";
				i2c-alias-pool = <0x41 0x42 0x43 0x44>;
				phandle = <0x24f>;

				i2c-atr {
					#address-cells = <0x01>;
					#size-cells = <0x00>;

					i2c@0 {
						#address-cells = <0x01>;
						#size-cells = <0x00>;
						reg = <0x00>;
						phandle = <0x250>;

						gmsl-serializer@0x40 {
							#address-cells = <0x01>;
							#size-cells = <0x00>;
							compatible = "maxim,max9295a";
							reg = <0x40>;
							gpio-controller;
							#gpio-cells = <0x02>;
							gpio-ranges = <0xf2 0x00 0x00 0x0b>;
							i2c-alias-pool = <0x37>;
							phandle = <0xf2>;

							i2c-atr {
								#address-cells = <0x01>;
								#size-cells = <0x00>;

								i2c@0 {
									#address-cells = <0x01>;
									#size-cells = <0x00>;
									reg = <0x00>;
									phandle = <0x251>;

									ox03a@0x1a {
										#address-cells = <0x01>;
										#size-cells = <0x00>;
										compatible = "nv,nv-cam";
										reg = <0x1a>;
										label = "cam_0";
										pwdn-gpios = <0xf2 0x00 0x00>;
										nv,pwdn-sleep-us = <0x7a120>;
										reset-gpios = <0xf2 0x07 0x00>;
										physical_w = "15.0";
										physical_h = "12.5";
										sensor_model = "isx031";
										use_sensor_mode_id = "true";
										nv,reg-bits = <0x10>;
										nv,val-bits = <0x08>;
										nv,chip-id-regs = <0x7e8a 0x7e8b>;
										nv,chip-id-masks = <0xff 0x0f>;
										nv,chip-id-vals = <0x31 0x00>;
										nv,wait-ms-cmd = <0x32>;
										nv,mode-common-cmd = <0x8a01 0x00 0x8af0 0x01 0xbf14 0x01>;
										nv,start-stream-cmd = <0x8a01 0x80>;
										nv,stop-stream-cmd = <0x8a01 0x00>;
										phandle = <0x226>;

										mode0 {
											nv,mode-cmd = <0x00>;
											mclk_khz = "24000";
											set_mode_delay_ms = "5000";
											num_lanes = "4";
											tegra_sinterface = "serial_c";
											vc_id = "0";
											phy_mode = "DPHY";
											discontinuous_clk = "no";
											dpcm_enable = "false";
											cil_settletime = "0";
											lane_polarity = "0";
											active_w = "3840";
											active_h = "2160";
											readout_orientation = "0";
											csi_pixel_bit_depth = "16";
											dynamic_pixel_bit_depth = "16";
											mode_type = "yuv";
											pixel_phase = "uyvy";
											line_length = "2200";
											inherent_gain = "1";
											pix_clk_hz = "200000000";
											serdes_link_freq = "1250000000";
											gain_factor = "1000";
											min_gain_val = "1";
											max_gain_val = "30000";
											step_gain_val = "300";
											default_gain = "16";
											min_hdr_ratio = "1";
											max_hdr_ratio = "1";
											framerate_factor = "1000000";
											min_framerate = "30000000";
											max_framerate = "30000000";
											step_framerate = "1";
											default_framerate = "30000000";
											exposure_factor = "1000000";
											min_exp_time = "59";
											max_exp_time = "33333";
											step_exp_time = "1";
											default_exp_time = "33333";
											embedded_metadata_height = "0";
										};

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

											port@0 {
												reg = <0x00>;

												endpoint {
													port-index = <0x02>;
													bus-width = <0x04>;
													remote-endpoint = <0xf3>;
													data-lanes = <0x01 0x02 0x03 0x04>;
													clock-lanes = <0x00>;
													phandle = <0xf5>;
												};
											};
										};
									};
								};
							};

							pipe@0 {
								reg = <0x00>;
								maxim,stream-id = <0x00>;
								maxim,dbl8;
								maxim,soft-bpp = <0x10>;
							};

							channel@0 {
								reg = <0x00>;
								label = "ser_0_ch_0";

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

									port@0 {
										reg = <0x00>;

										endpoint {
											remote-endpoint = <0xf4>;
											phandle = <0x103>;
										};
									};

									port@1 {
										reg = <0x01>;

										endpoint {
											remote-endpoint = <0xf5>;
											phandle = <0xf3>;
										};
									};
								};
							};

							pins {

								ser_0_mfp0_pwdn {
									pins = "mfp0";
									function = "gpio";
									output-high;
									output-enable;
									phandle = <0x252>;
								};

								ser_0_mfp7_fsync {
									pins = "mfp7";
									function = "gpio";
									output-high;
									input-disable;
									phandle = <0x253>;
								};
							};
						};
					};

					i2c@1 {
						#address-cells = <0x01>;
						#size-cells = <0x00>;
						reg = <0x01>;
						phandle = <0x254>;

						gmsl-serializer@0x40 {
							#address-cells = <0x01>;
							#size-cells = <0x00>;
							compatible = "maxim,max9295a";
							reg = <0x40>;
							gpio-controller;
							#gpio-cells = <0x02>;
							gpio-ranges = <0xf6 0x00 0x00 0x0b>;
							i2c-alias-pool = <0x38>;
							phandle = <0xf6>;

							i2c-atr {
								#address-cells = <0x01>;
								#size-cells = <0x00>;

								i2c@0 {
									#address-cells = <0x01>;
									#size-cells = <0x00>;
									reg = <0x00>;
									phandle = <0x255>;

									ox03a@0x1a {
										#address-cells = <0x01>;
										#size-cells = <0x00>;
										compatible = "nv,nv-cam";
										reg = <0x1a>;
										label = "cam_1";
										pwdn-gpios = <0xf6 0x00 0x00>;
										nv,pwdn-sleep-us = <0x7a120>;
										reset-gpios = <0xf6 0x07 0x00>;
										physical_w = "15.0";
										physical_h = "12.5";
										sensor_model = "isx031";
										use_sensor_mode_id = "true";
										nv,reg-bits = <0x10>;
										nv,val-bits = <0x08>;
										nv,chip-id-regs = <0x7e8a 0x7e8b>;
										nv,chip-id-masks = <0xff 0x0f>;
										nv,chip-id-vals = <0x31 0x00>;
										nv,wait-ms-cmd = <0x32>;
										nv,mode-common-cmd = <0x8a01 0x00 0x8af0 0x01 0xbf14 0x01>;
										nv,start-stream-cmd = <0x8a01 0x80>;
										nv,stop-stream-cmd = <0x8a01 0x00>;
										phandle = <0x227>;

										mode0 {
											nv,mode-cmd = <0x00>;
											mclk_khz = "24000";
											set_mode_delay_ms = "5000";
											num_lanes = "4";
											tegra_sinterface = "serial_c";
											vc_id = "1";
											phy_mode = "DPHY";
											discontinuous_clk = "no";
											dpcm_enable = "false";
											cil_settletime = "0";
											lane_polarity = "0";
											active_w = "1920";
											active_h = "1080";
											readout_orientation = "0";
											csi_pixel_bit_depth = "16";
											dynamic_pixel_bit_depth = "16";
											mode_type = "yuv";
											pixel_phase = "uyvy";
											line_length = "2200";
											inherent_gain = "1";
											pix_clk_hz = "200000000";
											serdes_link_freq = "1250000000";
											gain_factor = "1000";
											min_gain_val = "1";
											max_gain_val = "30000";
											step_gain_val = "300";
											default_gain = "16";
											min_hdr_ratio = "1";
											max_hdr_ratio = "1";
											framerate_factor = "1000000";
											min_framerate = "30000000";
											max_framerate = "30000000";
											step_framerate = "1";
											default_framerate = "30000000";
											exposure_factor = "1000000";
											min_exp_time = "59";
											max_exp_time = "33333";
											step_exp_time = "1";
											default_exp_time = "33333";
											embedded_metadata_height = "0";
										};

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

											port@0 {
												reg = <0x00>;

												endpoint {
													port-index = <0x02>;
													bus-width = <0x04>;
													remote-endpoint = <0xf7>;
													data-lanes = <0x01 0x02 0x03 0x04>;
													clock-lanes = <0x00>;
													phandle = <0xf9>;
												};
											};
										};
									};
								};
							};

							pipe@0 {
								reg = <0x00>;
								maxim,stream-id = <0x01>;
								maxim,dbl8;
								maxim,soft-bpp = <0x10>;
							};

							channel@0 {
								reg = <0x00>;
								label = "ser_1_ch_0";

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

									port@0 {
										reg = <0x00>;

										endpoint {
											remote-endpoint = <0xf8>;
											phandle = <0x105>;
										};
									};

									port@1 {
										reg = <0x01>;

										endpoint {
											remote-endpoint = <0xf9>;
											phandle = <0xf7>;
										};
									};
								};
							};

							pins {

								ser_1_mfp0_pwdn {
									pins = "mfp0";
									function = "gpio";
									output-high;
									output-enable;
									phandle = <0x256>;
								};

								ser_1_mfp7_fsync {
									pins = "mfp7";
									function = "gpio";
									output-high;
									input-disable;
									phandle = <0x257>;
								};
							};
						};
					};

					i2c@2 {
						#address-cells = <0x01>;
						#size-cells = <0x00>;
						reg = <0x02>;
						phandle = <0x258>;

						gmsl-serializer@0x40 {
							#address-cells = <0x01>;
							#size-cells = <0x00>;
							compatible = "maxim,max9295a";
							reg = <0x40>;
							gpio-controller;
							#gpio-cells = <0x02>;
							gpio-ranges = <0xfa 0x00 0x00 0x0b>;
							i2c-alias-pool = <0x39>;
							phandle = <0xfa>;

							i2c-atr {
								#address-cells = <0x01>;
								#size-cells = <0x00>;

								i2c@0 {
									#address-cells = <0x01>;
									#size-cells = <0x00>;
									reg = <0x00>;
									phandle = <0x259>;

									ox03a@0x1a {
										#address-cells = <0x01>;
										#size-cells = <0x00>;
										compatible = "nv,nv-cam";
										reg = <0x1a>;
										label = "cam_2";
										pwdn-gpios = <0xfa 0x00 0x00>;
										nv,pwdn-sleep-us = <0x7a120>;
										reset-gpios = <0xfa 0x07 0x00>;
										physical_w = "15.0";
										physical_h = "12.5";
										sensor_model = "isx031";
										use_sensor_mode_id = "true";
										nv,reg-bits = <0x10>;
										nv,val-bits = <0x08>;
										nv,chip-id-regs = <0x7e8a 0x7e8b>;
										nv,chip-id-masks = <0xff 0x0f>;
										nv,chip-id-vals = <0x31 0x00>;
										nv,wait-ms-cmd = <0x32>;
										nv,mode-common-cmd = <0x8a01 0x00 0x8af0 0x01 0xbf14 0x01>;
										nv,start-stream-cmd = <0x8a01 0x80>;
										nv,stop-stream-cmd = <0x8a01 0x00>;
										phandle = <0x228>;

										mode0 {
											nv,mode-cmd = <0x00>;
											mclk_khz = "24000";
											set_mode_delay_ms = "5000";
											num_lanes = "4";
											tegra_sinterface = "serial_a";
											vc_id = "2";
											phy_mode = "DPHY";
											discontinuous_clk = "no";
											dpcm_enable = "false";
											cil_settletime = "0";
											lane_polarity = "6";
											active_w = "1920";
											active_h = "1080";
											readout_orientation = "0";
											csi_pixel_bit_depth = "16";
											dynamic_pixel_bit_depth = "16";
											mode_type = "yuv";
											pixel_phase = "uyvy";
											line_length = "2200";
											inherent_gain = "1";
											pix_clk_hz = "200000000";
											serdes_link_freq = "1250000000";
											gain_factor = "1000";
											min_gain_val = "1";
											max_gain_val = "30000";
											step_gain_val = "300";
											default_gain = "16";
											min_hdr_ratio = "1";
											max_hdr_ratio = "1";
											framerate_factor = "1000000";
											min_framerate = "30000000";
											max_framerate = "30000000";
											step_framerate = "1";
											default_framerate = "30000000";
											exposure_factor = "1000000";
											min_exp_time = "59";
											max_exp_time = "33333";
											step_exp_time = "1";
											default_exp_time = "33333";
											embedded_metadata_height = "0";
										};

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

											port@0 {
												reg = <0x00>;

												endpoint {
													port-index = <0x00>;
													bus-width = <0x04>;
													remote-endpoint = <0xfb>;
													data-lanes = <0x01 0x02 0x03 0x04>;
													clock-lanes = <0x00>;
													phandle = <0xfd>;
												};
											};
										};
									};
								};
							};

							pipe@0 {
								reg = <0x00>;
								maxim,stream-id = <0x02>;
								maxim,dbl8;
								maxim,soft-bpp = <0x10>;
							};

							channel@0 {
								reg = <0x00>;
								label = "ser_2_ch_0";

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

									port@0 {
										reg = <0x00>;

										endpoint {
											remote-endpoint = <0xfc>;
											phandle = <0x107>;
										};
									};

									port@1 {
										reg = <0x01>;

										endpoint {
											remote-endpoint = <0xfd>;
											phandle = <0xfb>;
										};
									};
								};
							};

							pins {

								ser_2_mfp0_pwdn {
									pins = "mfp0";
									function = "gpio";
									output-high;
									output-enable;
									phandle = <0x25a>;
								};

								ser_2_mfp7_fsync {
									pins = "mfp7";
									function = "gpio";
									output-high;
									input-disable;
									phandle = <0x25b>;
								};
							};
						};
					};

					i2c@3 {
						#address-cells = <0x01>;
						#size-cells = <0x00>;
						reg = <0x03>;
						phandle = <0x25c>;

						gmsl-serializer@0x40 {
							#address-cells = <0x01>;
							#size-cells = <0x00>;
							compatible = "maxim,max9295a";
							reg = <0x40>;
							gpio-controller;
							#gpio-cells = <0x02>;
							gpio-ranges = <0xfe 0x00 0x00 0x0b>;
							i2c-alias-pool = <0x3a>;
							phandle = <0xfe>;

							i2c-atr {
								#address-cells = <0x01>;
								#size-cells = <0x00>;

								i2c@0 {
									#address-cells = <0x01>;
									#size-cells = <0x00>;
									reg = <0x00>;
									phandle = <0x25d>;

									ox03a@0x1a {
										#address-cells = <0x01>;
										#size-cells = <0x00>;
										compatible = "nv,nv-cam";
										reg = <0x1a>;
										label = "cam_3";
										pwdn-gpios = <0xfe 0x00 0x00>;
										nv,pwdn-sleep-us = <0x7a120>;
										reset-gpios = <0xfe 0x07 0x00>;
										physical_w = "15.0";
										physical_h = "12.5";
										sensor_model = "isx031";
										use_sensor_mode_id = "true";
										nv,reg-bits = <0x10>;
										nv,val-bits = <0x08>;
										nv,chip-id-regs = <0x7e8a 0x7e8b>;
										nv,chip-id-masks = <0xff 0x0f>;
										nv,chip-id-vals = <0x31 0x00>;
										nv,wait-ms-cmd = <0x32>;
										nv,mode-common-cmd = <0x8a01 0x00 0x8af0 0x01 0xbf14 0x01>;
										nv,start-stream-cmd = <0x8a01 0x80>;
										nv,stop-stream-cmd = <0x8a01 0x00>;
										phandle = <0x229>;

										mode0 {
											nv,mode-cmd = <0x00>;
											mclk_khz = "24000";
											set_mode_delay_ms = "5000";
											num_lanes = "4";
											tegra_sinterface = "serial_a";
											vc_id = "3";
											phy_mode = "DPHY";
											discontinuous_clk = "no";
											dpcm_enable = "false";
											cil_settletime = "0";
											lane_polarity = "6";
											active_w = "1920";
											active_h = "1536";
											readout_orientation = "0";
											csi_pixel_bit_depth = "16";
											dynamic_pixel_bit_depth = "16";
											mode_type = "yuv";
											pixel_phase = "uyvy";
											line_length = "2200";
											inherent_gain = "1";
											pix_clk_hz = "200000000";
											serdes_link_freq = "1250000000";
											gain_factor = "1000";
											min_gain_val = "1";
											max_gain_val = "30000";
											step_gain_val = "300";
											default_gain = "16";
											min_hdr_ratio = "1";
											max_hdr_ratio = "1";
											framerate_factor = "1000000";
											min_framerate = "30000000";
											max_framerate = "30000000";
											step_framerate = "1";
											default_framerate = "30000000";
											exposure_factor = "1000000";
											min_exp_time = "59";
											max_exp_time = "33333";
											step_exp_time = "1";
											default_exp_time = "33333";
											embedded_metadata_height = "0";
										};

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

											port@0 {
												reg = <0x00>;

												endpoint {
													port-index = <0x00>;
													bus-width = <0x04>;
													remote-endpoint = <0xff>;
													data-lanes = <0x01 0x02 0x03 0x04>;
													clock-lanes = <0x00>;
													phandle = <0x101>;
												};
											};
										};
									};
								};
							};

							pipe@0 {
								reg = <0x00>;
								maxim,stream-id = <0x03>;
								maxim,dbl8;
								maxim,soft-bpp = <0x10>;
							};

							channel@0 {
								reg = <0x00>;
								label = "ser_3_ch_0";

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

									port@0 {
										reg = <0x00>;

										endpoint {
											remote-endpoint = <0x100>;
											phandle = <0x109>;
										};
									};

									port@1 {
										reg = <0x01>;

										endpoint {
											remote-endpoint = <0x101>;
											phandle = <0xff>;
										};
									};
								};
							};

							pins {

								ser_3_mfp0_pwdn {
									pins = "mfp0";
									function = "gpio";
									output-high;
									output-enable;
									phandle = <0x25e>;
								};

								ser_3_mfp7_fsync {
									pins = "mfp7";
									function = "gpio";
									output-high;
									input-disable;
									phandle = <0x25f>;
								};
							};
						};
					};
				};

				phy@2 {
					reg = <0x02>;
					maxim,alt-mem-map8;
				};

				phy@1 {
					maxim,alt-mem-map8;
					reg = <0x01>;
				};

				pipe@0 {
					reg = <0x00>;
					maxim,phy-id = <0x01>;
					maxim,stream-id = <0x00>;
					maxim,link-id = <0x00>;
				};

				pipe@1 {
					reg = <0x01>;
					maxim,phy-id = <0x01>;
					maxim,stream-id = <0x01>;
					maxim,link-id = <0x01>;
				};

				pipe@2 {
					reg = <0x02>;
					maxim,phy-id = <0x02>;
					maxim,stream-id = <0x02>;
					maxim,link-id = <0x02>;
				};

				pipe@3 {
					reg = <0x03>;
					maxim,phy-id = <0x02>;
					maxim,stream-id = <0x03>;
					maxim,link-id = <0x03>;
				};

				channel@0 {
					reg = <0x00>;
					label = "des_ch_0";
					maxim,phy-id = <0x01>;

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

						port@0 {
							reg = <0x00>;

							endpoint {
								remote-endpoint = <0x102>;
								clock-lanes = <0x00>;
								data-lanes = <0x01 0x02 0x03 0x04>;
								link-frequencies = <0x00 0x4a817c80>;
								phandle = <0x126>;
							};
						};

						port@1 {
							reg = <0x01>;

							endpoint {
								remote-endpoint = <0x103>;
								phandle = <0xf4>;
							};
						};
					};
				};

				channel@1 {
					reg = <0x01>;
					label = "des_ch_1";
					maxim,phy-id = <0x01>;

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

						port@0 {
							reg = <0x00>;

							endpoint {
								remote-endpoint = <0x104>;
								clock-lanes = <0x00>;
								data-lanes = <0x01 0x02 0x03 0x04>;
								link-frequencies = <0x00 0x4a817c80>;
								phandle = <0x128>;
							};
						};

						port@1 {
							reg = <0x01>;

							endpoint {
								remote-endpoint = <0x105>;
								phandle = <0xf8>;
							};
						};
					};
				};

				channel@2 {
					reg = <0x02>;
					label = "des_ch_2";
					maxim,phy-id = <0x02>;

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

						port@0 {
							reg = <0x00>;

							endpoint {
								remote-endpoint = <0x106>;
								clock-lanes = <0x00>;
								data-lanes = <0x01 0x02 0x03 0x04>;
								link-frequencies = <0x00 0x4a817c80>;
								phandle = <0x12a>;
							};
						};

						port@1 {
							reg = <0x01>;

							endpoint {
								remote-endpoint = <0x107>;
								phandle = <0xfc>;
							};
						};
					};
				};

				channel@3 {
					reg = <0x03>;
					label = "des_ch_3";
					maxim,phy-id = <0x02>;

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

						port@0 {
							reg = <0x00>;

							endpoint {
								remote-endpoint = <0x108>;
								clock-lanes = <0x00>;
								data-lanes = <0x01 0x02 0x03 0x04>;
								link-frequencies = <0x00 0x4a817c80>;
								phandle = <0x12c>;
							};
						};

						port@1 {
							reg = <0x01>;

							endpoint {
								remote-endpoint = <0x109>;
								phandle = <0x100>;
							};
						};
					};
				};
			};
		};

Hi @shuisheng.peng, which Jetson device are you using?

Then I can refer you into the correct sub-category for this device.

Thanks!

jetson orin nano 4G

1 Like

hello shuisheng.peng,

please setup Jetson Virtual Channel with GMSL Camera Framework.
you should have 1st set of camera on CSI-A for using VC=0/1,
and also, 2nd set of camera on CSI-C for using VC=0/1.

ok thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.