[JP7.2]Porting imx708 driver No /dev/video* devices

Hi.

I’m porting the Ridgerun imx708 driver from JP6 to JP7 and I have some issues with convincing the system to connect the nodes.

We are using a pca9544 i2c-mux instead of the mux the dev kit is using. Everything worked back with JP5, so the hardware should be okay.

I’m using the following device tree overlay:

/dts-v1/;
/plugin/;

/ {
    fragment@0 {
        target-path = "/";
        __overlay__ {
            bus@0{
                i2c@3180000{
                    #address-cells = <0x1>;
                    #size-cells = <0x0>;
                    pca9544@70 {
                        compatible = "nxp,pca9544";
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        reg = <0x70>;
                        
                        i2c@0 {
                            reg = <0>;
                            i2c-mux,deselect-on-exit;
                            #address-cells = <0x1>;
                            #size-cells = <0x0>;
                            status = "okay";
                            imx708_cam0: rpicam3_imx708_a@1a{
                                status = "okay";
                                reg = <0x1a>;
                                compatible = "sony,imx708";
                                devnode = "video0";
                                physical_w = "3.680";
                                physical_h = "2.760";
                                sensor_model = "imx708";
                                use_sensor_mode_id = "true";
                                reset-gpios = <&gpio 62 0>;
                                mode0 {
                                    mclk_khz = "24000";
                                    num_lanes = "2";
                                    tegra_sinterface = "serial_a";
                                    phy_mode = "DPHY";
                                    discontinuous_clk = "yes";
                                    dpcm_enable = "false";
                                    cil_settletime = "0";
                                    lane_polarity = "6";
                
                                    active_w = "4608";
                                    active_h = "2592";
                                    mode_type = "bayer";
                                    pixel_phase = "rggb";
                                    csi_pixel_bit_depth = "10";
                                    readout_orientation = "90";
                                    line_length = "4808";
                                    inherent_gain = "1";
                                    pix_clk_hz = "297600000"; 
                
                                    gain_factor = "16";
                                    framerate_factor = "1000000";
                                    exposure_factor = "1000000";
                                    min_gain_val = "16"; 
                                    max_gain_val = "256"; 
                                    step_gain_val = "1";
                                    default_gain = "16";
                                    min_hdr_ratio = "1";
                                    max_hdr_ratio = "1";
                                    min_framerate = "2000000";
                                    max_framerate = "14000000";
                                    step_framerate = "1";
                                    default_framerate = "14000000";
                                    min_exp_time = "500";
                                    max_exp_time = "65487";
                                    step_exp_time = "1";
                                    default_exp_time = "1600";
                                    embedded_metadata_height = "4";
                                };
                                ports {
								#address-cells = <1>;
								#size-cells = <0>;
								    port@0 {
								    	reg = <0>;
								    	rpicam3_imx708_out0: endpoint {
								    		port-index = <0>;
								    		bus-width = <2>;
								    		remote-endpoint = <&rpicam3_imx708_csi_in0>;
								    	};
								    };
							    };
                            };
                        };

                        i2c@1 {
                            reg = <1>;
                            i2c-mux,deselect-on-exit;
                            #address-cells = <0x1>;
                            #size-cells = <0x0>;
                            status = "okay";
                            imx708_cam1: rpicam3_imx708_c@1a {
                                status = "okay";
                                compatible = "sony,imx708";
                                reg = <0x1a>;
                                devnode = "video1";
                                physical_w = "3.680";
                                physical_h = "2.760";
                                sensor_model = "imx708";
                                use_sensor_mode_id = "true";
                                //reset-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;
                                reset-gpios = <&gpio 160 0>;

                                /* IMX708_MODE_4608x2592_14fps */
                                mode0 {
                                    mclk_khz = "24000";
                                    num_lanes = "2";
                                    tegra_sinterface = "serial_c";
                                    phy_mode = "DPHY";
                                    discontinuous_clk = "yes";
                                    dpcm_enable = "false";
                                    cil_settletime = "0";
                                    lane_polarity = "0";

                                    active_w = "4608";
                                    active_h = "2592";
                                    mode_type = "bayer";
                                    pixel_phase = "rggb";
                                    csi_pixel_bit_depth = "10";
                                    readout_orientation = "90";
                                    line_length = "4808";
                                    inherent_gain = "1";
                                    pix_clk_hz = "297600000";

                                    gain_factor = "16";
                                    framerate_factor = "1000000";
                                    exposure_factor = "1000000";
                                    min_gain_val = "16"; 
                                    max_gain_val = "256"; 
                                    step_gain_val = "1";
                                    default_gain = "16";
                                    min_hdr_ratio = "1";
                                    max_hdr_ratio = "1";
                                    min_framerate = "2000000";
                                    max_framerate = "14000000";
                                    step_framerate = "1";
                                    default_framerate = "14000000";
                                    min_exp_time = "500";
                                    max_exp_time = "65487";
                                    step_exp_time = "1";
                                    default_exp_time = "1600";
                                    embedded_metadata_height = "4";
                                };

                                ports {
                                    #address-cells = <0x1>;
                                    #size-cells = <0x0>;
                                    port@0 {
                                        reg = <0>;
                                        rpicam3_imx708_out1: endpoint {
                                            status = "okay";
                                            port-index = <2>;
                                            bus-width = <2>;
                                            remote-endpoint = <&rpicam3_imx708_csi_in1>;
                                        };
                                    };
                                };
                            };
                        };

                        // i2c@2 {
                        //     reg = <2>;
                        //     i2c-mux,deselect-on-exit;
                        //     #address-cells = <0x1>;
                        //     #size-cells = <0x0>;
                        //     status = "okay";

                        // };

                        // i2c@3 {
                        //     reg = <3>;
                        //     i2c-mux,deselect-on-exit;
                        //     #address-cells = <0x1>;
                        //     #size-cells = <0x0>;
                        //     status = "disabled";
                        // };

                    };
				};
                host1x@13e00000 {
                    nvcsi@15a00000 {
                        num-channels = <2>;
                        #address-cells = <0x1>;
                        #size-cells = <0x0>;
                        csi_chan0: channel@0 {
						reg = <0>;
                            ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                csi_chan0_port0: port@0 {
                                    reg = <0>;
                                    rpicam3_imx708_csi_in0: endpoint@0 {
                                        status = "okay";
                                        port-index = <1>;
                                        bus-width = <2>;
                                        remote-endpoint = <&rpicam3_imx708_out0>;
                                    };
                                };
                                csi_chan0_port1: port@1 {
                                    reg = <1>;
                                    rpicam3_imx708_csi_out0: endpoint@1 {
                                        status = "okay";
                                        remote-endpoint = <&rpicam3_imx708_vi_in0>;
                                    };
                                };
                            };
					    };
                        csi_chan1: channel@1 {
                            reg = <1>;
                            ports {
                                #address-cells = <0x1>;
                                #size-cells = <0x0>;
                                csi_chan1_port0: port@0 {
                                    reg = <0>;
                                    rpicam3_imx708_csi_in1: endpoint@2 {
                                        status = "okay";
                                        port-index = <2>;
                                        bus-width = <2>;
                                        remote-endpoint = <&rpicam3_imx708_out1>;
                                    };
                                };
                                csi_chan1_port1: port@1 {
                                    reg = <1>;
                                    rpicam3_imx708_csi_out1: endpoint@3 {
                                        status = "okay";
                                        remote-endpoint = <&rpicam3_imx708_vi_in1>;
                                    };
                                };
                            };
                        };
                    };
                };
            };
            tegra-capture-vi  {
                num-channels = <2>;
                ports {
                    #address-cells = <1>;
                    #size-cells = <0>;
                    vi_port0: port@0 {
                        reg = <0>;
                        rpicam3_imx708_vi_in0: endpoint {
                            status="okay";
                            port-index = <0>;
                            bus-width = <2>;
                            remote-endpoint = <&rpicam3_imx708_csi_out0>;
                        };
                    };
                    vi_port1: port@1 {
                        reg = <1>;
                        rpicam3_imx708_vi_in1: endpoint {
                            status="okay";
                            port-index = <2>;
                            bus-width = <2>;
                            remote-endpoint = <&rpicam3_imx708_csi_out1>;
                        };
                    };
                };
            };
            
            tcp: tegra-camera-platform {
				compatible = "nvidia, tegra-camera-platform";
				// num_csi_lanes = <4>;
				// max_lane_speed = <2500000>;
				// min_bits_per_pixel = <10>;
				// vi_peak_byte_per_pixel = <2>;
				// vi_bw_margin_pct = <25>;
				// max_pixel_rate = <7500000>;
				// isp_peak_byte_per_pixel = <5>;
				// isp_bw_margin_pct = <25>;
		
				modules {
					cam_module0: module0 {
						status = "okay";
						badge = "jakku_front_RBPCV3";
						position = "rear";
						orientation = "1";
						cam_module0_drivernode0: drivernode0 {
							pcl_id = "v4l2_sensor";
                            //devname = "imx708 9-001a";
							sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@3180000/pca9544@70/i2c@0/rpicam3_imx708_a@1a";
						};
					};
					cam_module1: module1 {
                        status = "okay";
						badge = "jakku_rear_RBPCV3";
						position = "front";
						orientation = "1";
						cam_module1_drivernode0: drivernode0 {
							pcl_id = "v4l2_sensor";
                            //devname = "imx708 10-001a";
							sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@3180000/pca9544@70/i2c@1/rpicam3_imx708_c@1a";
						};
					};
				};
			};
        };
    };
    
};

That works so far, the I2Cs show up, the driver gets loaded.

[    4.768054] /bus@0/i2c@3180000/pca9544@70/i2c@1/rpicam3_imx708_c@1a: Fixed dependency cycle(s) with /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1
[    4.779684] /bus@0/i2c@3180000/pca9544@70/i2c@0/rpicam3_imx708_a@1a: Fixed dependency cycle(s) with /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0
[    4.800140] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0: Fixed dependency cycle(s) with /bus@0/i2c@3180000/pca9544@70/i2c@0/rpicam3_imx708_a@1a
[    4.813042] /bus@0/i2c@3180000/pca9544@70/i2c@0/rpicam3_imx708_a@1a: Fixed dependency cycle(s) with /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0
[    4.831132] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1: Fixed dependency cycle(s) with /bus@0/i2c@3180000/pca9544@70/i2c@1/rpicam3_imx708_c@1a
[    4.844471] /bus@0/i2c@3180000/pca9544@70/i2c@1/rpicam3_imx708_c@1a: Fixed dependency cycle(s) with /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1
[   10.051670] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1: Fixed dependency cycle(s) with /bus@0/i2c@3180000/pca9544@70/i2c@1/rpicam3_imx708_c@1a
[   10.075082] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0: Fixed dependency cycle(s) with /bus@0/i2c@3180000/pca9544@70/i2c@0/rpicam3_imx708_a@1a
[   10.503630] imx708 9-001a: probing v4l2 sensor at addr 0x1a
[   10.511342] imx708 9-001a: tegracam sensor driver:imx708_v2.0.6
[   10.839530] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx708 9-001a bound
[   10.846769] imx708 10-001a: probing v4l2 sensor at addr 0x1a
[   10.860970] imx708 10-001a: tegracam sensor driver:imx708_v2.0.6
[   11.178660] tegra-camrtc-capture-vi tegra-capture-vi: subdev imx708 10-001a bound

however I’m missing the /dev/video1 and video2 notes.

media-ctl reports

Media controller API version 6.8.12

Media device information
------------------------
driver          tegra-camrtc-ca
model           NVIDIA Tegra Video Input Device
serial          
bus info        platform:tegra-capture-vi
hw revision     0x3
driver version  6.8.12

Device topology
- entity 1: imx708 9-001a (1 pad, 0 link, 0 routes)
            type V4L2 subdev subtype Sensor flags 0
        pad0: Source

- entity 3: imx708 10-001a (1 pad, 0 link, 0 routes)
            type V4L2 subdev subtype Sensor flags 0
        pad0: Source

I looked at the dual camera overlays for imx477 and imx219 and can’t see any problems. Anybody an idea?

The port-index doesn’t consistency in the nvcsi@ and tegra-capture-vi{}

@ShaneCCC

Ok, I fixed that apparently that was an error I copied from the RidgeRun repo.

Camera 0 now uses port index 1 everywhere and Camera 1 uses index 2 like the tegra234-p3767-camera-p3768-imx477-dual tree.

I also tried 0 and 2 like tegra264-p3971-camera-dual-imx274-overlay and 0 and 2 like tegra234-camera-imx274-dual.

However fixing that didn’t solve my problem. I don’t see any more nodes, no 2nd /dev/media or any /dev/video nodes.

Please consult with RidgeRun for the driver integration.

Thanks

Hi @t.mehr

Could you share the updated device tree with the port-index changes? I’d like to verify that the tegra_sinterface matches the selected port.

For port-index = 1, the sensor node should use:

tegra_sinterface = "serial_b";

For port-index = 2, it should use:

tegra_sinterface = "serial_c";

I also notice that the media-ctl output does not show the NvCSI entities. Normally the NvCSI modules should appear in the media graph, so this could indicate that one of the camera-related modules is not being loaded or initialized correctly.

Could you also provide the output of the following command?

dmesg -T | egrep -i \
'imx708|tegra.*camera|tegracam|nvcsi|vi5|control|ctrl|Failed to init|unsupported|Error -22|unknown symbol|invalid module|disagrees'

That should help determine whether there are any probe, module loading, or initialization errors.

Regards,

Kimberly Carvajal
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: www.ridgerun.com

Hi @kimberly.carvajal

Just so you know, I have a custom carrier board that could handle four 2-channel cameras and uses a pca9544 i2c mux for that.

At the moment I have cameras connected to CSI_A and CSI_B, and the corresponding i2c channels 0 and 1. As I tested other configurations I set those per defines. So serial_a and serial_b should be correct.

My DT overlay:

/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/tegra234-gpio.h>
#define CAM0_PWDN	TEGRA234_MAIN_GPIO(H, 6)
#define CAM1_PWDN	TEGRA234_MAIN_GPIO(AC, 0)
//camera on CSI_A
#define CAM0_I2C 0
#define CAM0_PORT_INDEX <CAM0_I2C>
#define CAM0_SERIAL "serial_a"
#define CAM0_SYSFS "/sys/firmware/devicetree/base/bus@0/i2c@3180000/pca9544@70/i2c@0/cam0@1a"

//camera on CSI_B
#define CAM1_I2C 1
#define CAM1_PORT_INDEX <CAM1_I2C>
#define CAM1_SERIAL "serial_b"
#define CAM1_SYSFS "/sys/firmware/devicetree/base/bus@0/i2c@3180000/pca9544@70/i2c@1/cam1@1a"

#define BUS_WIDTH <2>
/ {
	fragment@0 {
		target-path = "/bus@0/i2c@3180000";
		__overlay__ {
            #address-cells = <1>;
			#size-cells = <0>;
			pca9544@70 {
				compatible = "nxp,pca9544";
				reg = <0x70>;
				#address-cells = <1>;
				#size-cells = <0>;
				status = "okay";
				i2c@CAM0_I2C {
					reg = <CAM0_I2C>;
					i2c-mux,deselect-on-exit;
					#address-cells = <1>;
					#size-cells = <0>;
					status = "okay";
					cam0: cam0@1a{
						status = "okay";
						reg = <0x1a>;
						compatible = "sony,imx708";
						devnode = "video0";
						physical_w = "3.680";
						physical_h = "2.760";
						sensor_model = "imx708";
						use_sensor_mode_id = "true";
						reset-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;
						/* IMX708_MODE_4608x2592_14fps */
						mode0 {
							mclk_khz = "24000";
							num_lanes = "2";
							tegra_sinterface = CAM0_SERIAL;
							phy_mode = "DPHY";
							discontinuous_clk = "yes";
							dpcm_enable = "false";
							cil_settletime = "0";
							lane_polarity = "6";
		
							active_w = "4608";
							active_h = "2592";
							mode_type = "bayer";
							pixel_phase = "rggb";
							csi_pixel_bit_depth = "10";
							readout_orientation = "90";
							line_length = "4808";
							inherent_gain = "1";
							pix_clk_hz = "297600000"; 
		
							gain_factor = "16";
							framerate_factor = "1000000";
							exposure_factor = "1000000";
							min_gain_val = "16"; 
							max_gain_val = "256"; 
							step_gain_val = "1";
							default_gain = "16";
							min_hdr_ratio = "1";
							max_hdr_ratio = "1";
							min_framerate = "2000000";
							max_framerate = "14000000";
							step_framerate = "1";
							default_framerate = "14000000";
							min_exp_time = "500";
							max_exp_time = "65487";
							step_exp_time = "1";
							default_exp_time = "1600";
							embedded_metadata_height = "4";
						};
	
						ports {
							status = "okay";
							port {
								status = "okay";
								cam0_out: endpoint {
									status = "okay";
									port-index = CAM0_PORT_INDEX;
									bus-width = BUS_WIDTH;
									remote-endpoint = <&cam0_csi_in>;
								};
							};
						};
					};
				};
				i2c@CAM1_I2C {
					reg = <CAM1_I2C>;
					i2c-mux,deselect-on-exit;
					#address-cells = <1>;
					#size-cells = <0>;
					status = "okay";
					cam1: cam1@1a {
						status = "okay";
						compatible = "sony,imx708";
						reg = <0x1a>;
						devnode = "video1";
						physical_w = "3.680";
						physical_h = "2.760";
						sensor_model = "imx708";
						use_sensor_mode_id = "true";
						reset-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;
						/* IMX708_MODE_4608x2592_14fps */
						mode0 {
							mclk_khz = "24000";
							num_lanes = "2";
							tegra_sinterface = CAM1_SERIAL;
							phy_mode = "DPHY";
							discontinuous_clk = "yes";
							dpcm_enable = "false";
							cil_settletime = "0";
							lane_polarity = "6";
							active_w = "4608";
							active_h = "2592";
							mode_type = "bayer";
							pixel_phase = "rggb";
							csi_pixel_bit_depth = "10";
							readout_orientation = "90";
							line_length = "4808";
							inherent_gain = "1";
							pix_clk_hz = "297600000";
							gain_factor = "16";
							framerate_factor = "1000000";
							exposure_factor = "1000000";
							min_gain_val = "16"; 
							max_gain_val = "256"; 
							step_gain_val = "1";
							default_gain = "16";
							min_hdr_ratio = "1";
							max_hdr_ratio = "1";
							min_framerate = "2000000";
							max_framerate = "14000000";
							step_framerate = "1";
							default_framerate = "14000000";
							min_exp_time = "500";
							max_exp_time = "65487";
							step_exp_time = "1";
							default_exp_time = "1600";
							embedded_metadata_height = "4";
						};
						ports {
							status = "okay";
							port {
								status = "okay";
								cam1_out: endpoint {
									status = "okay";
									port-index = CAM1_PORT_INDEX;
									bus-width = BUS_WIDTH;
									remote-endpoint = <&cam1_csi_in>;
								};
							};
						};
					};
				};
			};
		};
    };
    fragment@1 {
        target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000";
		__overlay__ {
			status = "okay";
			num-channels = <2>;
			#address-cells = <1>;
			#size-cells = <0>;
			csi_chan0: channel@0 {
				status = "okay";
				reg = <0>;
				ports {
					status = "okay";
					#address-cells = <1>;
					#size-cells = <0>;
					csi_chan0_port0: port@0 {
						status = "okay";
						reg = <0>;
						cam0_csi_in: endpoint@0 {
							status = "okay";
							port-index = CAM0_PORT_INDEX;
							bus-width = BUS_WIDTH;
							remote-endpoint = <&cam0_out>;
						};
					};
					csi_chan0_port1: port@1 {
						status = "okay";
						reg = <1>;
						cam0_csi_out: endpoint@1 {
							status = "okay";
							remote-endpoint = <&cam0_vi_in>;
						};
					};
				};
			};
			csi_chan1: channel@1 {
				status = "okay";
				reg = <1>;
				ports {
					status = "okay";
					#address-cells = <1>;
					#size-cells = <0>;
					csi_chan1_port0: port@0 {
						status = "okay";
						reg = <0>;
						cam1_csi_in: endpoint@2{
							status = "okay";
							port-index = CAM1_PORT_INDEX;
							bus-width = BUS_WIDTH;
							remote-endpoint = <&cam1_out>;
						};
					};
					csi_chan1_port1: port@1 {
						status = "okay";
						reg = <1>;
						cam1_csi_out: endpoint@3 {
							status = "okay";
							remote-endpoint = <&cam1_vi_in>;
						};
					};
				};
			};
		};
	};
	fragment@2 {
        target-path = "/tegra-capture-vi";
		__overlay__ {
			status="okay";
			num-channels = <2>;
			ports {
				status="okay";
				#address-cells = <1>;
				#size-cells = <0>;
				vi_port0: port@0 {
					status="okay";
					reg = <0>;
					cam0_vi_in: endpoint {
						status="okay";
						port-index = CAM0_PORT_INDEX;
						bus-width = BUS_WIDTH;
						remote-endpoint = <&cam0_csi_out>;
					};
				};
				vi_port1: port@1 {
					status="okay";
					reg = <1>;
					cam1_vi_in: endpoint {
						status = "okay";
						port-index = CAM1_PORT_INDEX;
						bus-width = BUS_WIDTH;
						remote-endpoint = <&cam1_csi_out>;
					};
				};
			};
		};
	};
	fragment@3 {
    	target-path = "/";
		__overlay__ {
			tegra-camera-platform {
				compatible = "nvidia, tegra-camera-platform";
				status = "okay";
				num_csi_lanes = <4>;
				max_lane_speed = <2500000>;
				min_bits_per_pixel = <10>;
				vi_peak_byte_per_pixel = <2>;
				vi_bw_margin_pct = <25>;
				max_pixel_rate = <7500000>;
				isp_peak_byte_per_pixel = <5>;
				isp_bw_margin_pct = <25>;
				modules {
					status = "okay";
					cam_module0: module0 {
						status = "okay";
						badge = "imx708_front_RBPCV3";
						position = "front";
						orientation = "0";
						cam_module0_drivernode0: drivernode0 {
							status = "okay";
							pcl_id = "v4l2_sensor";
							//devname = "imx708 9-001a";
							sysfs-device-tree = CAM0_SYSFS;
						};
					};
					cam_module1: module1 {
						status = "okay";
						badge = "imx708_rear_RBPCV3";
						position = "rear";
						orientation = "1";
						cam_module1_drivernode0: drivernode0 {
							status = "okay";
							pcl_id = "v4l2_sensor";
							//devname = "imx708 10-001a";
							sysfs-device-tree = CAM1_SYSFS;
						};
					};
				};
			};
		};
	};	
};

The output of the messages:

[Thu Jul 16 13:07:30 2026] sdhci: Secure Digital Host Controller Interface driver
[Thu Jul 16 13:07:32 2026] tegra-gpcdma 2600000.dma-controller: Adding to iommu group 1
[Thu Jul 16 13:07:32 2026] tegra-gpcdma 2600000.dma-controller: GPC DMA driver register 31 channels
[Thu Jul 16 13:07:32 2026] /bus@0/i2c@3180000/pca9544@70/i2c@3/cam1@1a: Fixed dependency cycle(s) with /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1
[Thu Jul 16 13:07:32 2026] /bus@0/i2c@3180000/pca9544@70/i2c@2/cam0@1a: Fixed dependency cycle(s) with /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0
[Thu Jul 16 13:07:32 2026] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0: Fixed dependency cycle(s) with /bus@0/i2c@3180000/pca9544@70/i2c@2/cam0@1a
[Thu Jul 16 13:07:32 2026] /bus@0/i2c@3180000/pca9544@70/i2c@2/cam0@1a: Fixed dependency cycle(s) with /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0
[Thu Jul 16 13:07:32 2026] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1: Fixed dependency cycle(s) with /bus@0/i2c@3180000/pca9544@70/i2c@3/cam1@1a
[Thu Jul 16 13:07:32 2026] /bus@0/i2c@3180000/pca9544@70/i2c@3/cam1@1a: Fixed dependency cycle(s) with /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1
[Thu Jul 16 13:07:32 2026] tegra-xusb 3610000.usb: xHCI Host Controller
[Thu Jul 16 13:07:32 2026] tegra-xusb 3610000.usb: xHCI Host Controller
[Thu Jul 16 13:07:32 2026] usb usb1: Product: xHCI Host Controller
[Thu Jul 16 13:07:32 2026] usb usb2: Product: xHCI Host Controller
[Thu Jul 16 13:07:32 2026] irq: IRQ151: trimming hierarchy from :bus@0:interrupt-controller@f400000-1
[Thu Jul 16 13:07:32 2026] irq: IRQ176: trimming hierarchy from :bus@0:interrupt-controller@f400000-1
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'cpu' supported: yes
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'cpuacct' supported: no
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'cpuset' supported: yes
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'io' supported: yes
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'blkio' supported: no
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'memory' supported: yes
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'devices' supported: no
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'pids' supported: yes
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'bpf-firewall' supported: yes
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'bpf-devices' supported: yes
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'bpf-foreign' supported: yes
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'bpf-socket-bind' supported: no
[Thu Jul 16 13:07:34 2026] systemd[1]: Controller 'bpf-restrict-network-interfaces' supported: no
[Thu Jul 16 13:07:35 2026] systemd[1]:  /etc/systemd/system.control
[Thu Jul 16 13:07:35 2026] systemd[1]:  /run/systemd/system.control
[Thu Jul 16 13:07:35 2026] systemd[1]: unit_file_build_name_map: normal unit file: /etc/systemd/system/nvfancontrol.service
[Thu Jul 16 13:07:36 2026] systemd[1]: unit_file_build_name_map: normal unit file: /usr/lib/systemd/system/systemd-udevd-control.socket
[Thu Jul 16 13:07:37 2026] tegra-ivc-bus bc00000.rtcpu:ivc-bus:ivccontrol@3: ivccontrol: ver=0 grp=1 RX[64x320]=0x5f00-0xaf80 TX[64x320]=0xaf80-0x10000
[Thu Jul 16 13:07:37 2026] tegra-ivc-bus bc00000.rtcpu:ivc-bus:ivccontrol@3: ivc channel driver missing
[Thu Jul 16 13:07:37 2026] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1: Fixed dependency cycle(s) with /bus@0/i2c@3180000/pca9544@70/i2c@3/cam1@1a
[Thu Jul 16 13:07:37 2026] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@1: Fixed dependency cycle(s) with /tegra-capture-vi
[Thu Jul 16 13:07:38 2026] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0: Fixed dependency cycle(s) with /bus@0/i2c@3180000/pca9544@70/i2c@2/cam0@1a
[Thu Jul 16 13:07:38 2026] /bus@0/host1x@13e00000/nvcsi@15a00000/channel@0: Fixed dependency cycle(s) with /tegra-capture-vi
[Thu Jul 16 13:07:38 2026] imx708 11-001a: probing v4l2 sensor at addr 0x1a
[Thu Jul 16 13:07:38 2026] imx708 11-001a: tegracam sensor driver:imx708_v2.0.6
[Thu Jul 16 13:07:38 2026] imx708 11-001a: imx708_board_setup: error during i2c read probe (-121)
[Thu Jul 16 13:07:38 2026] imx708 11-001a: board setup failed
[Thu Jul 16 13:07:38 2026] imx708: probe of 11-001a failed with error -121
[Thu Jul 16 13:07:38 2026] imx708 12-001a: probing v4l2 sensor at addr 0x1a
[Thu Jul 16 13:07:38 2026] imx708 12-001a: tegracam sensor driver:imx708_v2.0.6
[Thu Jul 16 13:07:38 2026] imx708 12-001a: imx708_board_setup: error during i2c read probe (-121)
[Thu Jul 16 13:07:38 2026] imx708 12-001a: board setup failed
[Thu Jul 16 13:07:38 2026] imx708: probe of 12-001a failed with error -121
[Thu Jul 16 13:07:39 2026] camera-diagnostics bc00000.rtcpu:ivc-bus:diag@5: Failed to initialize diagnostic channel: -19
[Thu Jul 16 13:07:41 2026] fusb301: probe of 1-0025 failed with error -22
[Thu Jul 16 13:07:41 2026] gic 2a41000.interrupt-controller: GIC IRQ controller registered
[Thu Jul 16 13:07:41 2026] tegra-adma 2930000.dma-controller: Tegra210 ADMA driver registered 32 channels
[Thu Jul 16 13:07:41 2026] tegra-xudc 3550000.usb: EP 0 (type: ctrl, dir: out) enabled
[Thu Jul 16 13:07:42 2026] tegra-mixer-controls sound:mixer-controls: Begin probe of override control device
[Thu Jul 16 13:07:42 2026] tegra-mixer-controls sound:mixer-controls: Registered override controls for APE sound card
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 17000000.gpu
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 17000000.gpu
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 13800000.display
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 13800000.display
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 15820000.crypto
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 15820000.crypto
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 15840000.crypto
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 15840000.crypto
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 15880000.nvdla0
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 15880000.nvdla0
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 158c0000.nvdla1
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 158c0000.nvdla1
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 13e00000.host1x:vi0@15c00000
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 13e00000.host1x:vi0@15c00000
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 13e00000.host1x:vi0-thi@15f00000
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 13e00000.host1x:vi0-thi@15f00000
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 13e00000.host1x:vi1@14c00000
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 13e00000.host1x:vi1@14c00000
[Thu Jul 16 13:07:52 2026] tegra186-emc 2c60000.external-memory-controller: sync_state() pending due to 13e00000.host1x:vi1-thi@14f00000
[Thu Jul 16 13:07:52 2026] tegra-mc 2c00000.memory-controller: sync_state() pending due to 13e00000.host1x:vi1-thi@14f00000

regarding loaded modules I lsmod reports this:

Module                  Size  Used by
xt_conntrack           12288  1
xt_MASQUERADE          12288  1
xt_set                 16384  0
ip_set                 45056  1 xt_set
nft_chain_nat          12288  5
nf_nat                 45056  2 nft_chain_nat,xt_MASQUERADE
nf_conntrack          118784  3 xt_conntrack,nf_nat,xt_MASQUERADE
nf_defrag_ipv6         16384  1 nf_conntrack
nf_defrag_ipv4         12288  1 nf_conntrack
xt_addrtype            12288  4
nft_compat             16384  6
nf_tables             233472  57 nft_compat,nft_chain_nat
libcrc32c              12288  3 nf_conntrack,nf_nat,nf_tables
snd_soc_tegra_controls    20480  0
snd_soc_tegra_utils    12288  1 snd_soc_tegra_controls
snd_soc_tegra210_ope    36864  1
snd_soc_tegra210_admaif    86016  1
snd_soc_tegra210_mvc    20480  2
snd_soc_tegra210_mixer   114688  1
snd_soc_tegra_pcm      12288  1 snd_soc_tegra210_admaif
snd_soc_tegra210_adx    49152  4
snd_soc_tegra186_asrc    36864  1
snd_soc_tegra210_amx    49152  4
snd_soc_tegra210_sfc    49152  4
governor_pod_scaling    12288  0
usb_f_ncm              20480  2
usb_f_mass_storage     40960  2
snd_soc_tegra210_i2s    24576  2
nvvrs_pseq_rtc         12288  0
snd_soc_tegra210_ahub  2011136  1
tegra210_adma          20480  0
spidev                 20480  0
usb_f_acm              12288  2
u_serial               16384  3 usb_f_acm
usb_f_rndis            24576  2
drm_gpuvm              32768  0
u_ether                24576  2 usb_f_rndis,usb_f_ncm
drm_exec               12288  1 drm_gpuvm
gpu_sched              53248  0
drm_ttm_helper         12288  0
ttm                    73728  1 drm_ttm_helper
libcomposite           61440  17 usb_f_rndis,u_ether,usb_f_mass_storage,usb_f_acm,usb_f_ncm
nvmap                 208896  0
rtk_btusb              73728  0
btrtl                  20480  0
btintel                40960  0
btmtk                  12288  0
crct10dif_ce           12288  1
snd_soc_tegra_audio_graph_card    16384  0
nvsciipc               36864  1 nvmap
btbcm                  20480  0
ivc_cdev               12288  1 nvsciipc
snd_soc_audio_graph_card    12288  1 snd_soc_tegra_audio_graph_card
snd_soc_simple_card_utils    24576  3 snd_soc_tegra_audio_graph_card,snd_soc_audio_graph_card,snd_soc_tegra210_i2s
tegra234_oc_event      12288  0
bluetooth             528384  5 btrtl,btmtk,btintel,btbcm,rtk_btusb
ecdh_generic           12288  1 bluetooth
ecc                    32768  1 ecdh_generic
snd_hda_codec_hdmi     53248  1
tegra_dce             114688  1
nvpmodel_clk_cap       12288  0
arm_dsu_pmu            16384  0
snd_hda_tegra          12288  0
mttcan                 53248  0
snd_hda_codec         122880  2 snd_hda_codec_hdmi,snd_hda_tegra
r8168                 495616  0
nvpps                  32768  1 mttcan
optee_rng              12288  0
ramoops                20480  0
can_dev                40960  1 mttcan
rng_core               16384  1 optee_rng
snd_hda_core           98304  3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_tegra
at24                   16384  0
host1x_fence           32768  1
fusb301                20480  0
tegra_cactmon_mc_all    12288  0
tegra234_aon           36864  1
pwm_tegra_tachometer    12288  0
spi_tegra114           20480  0
nvidia_vrs_pseq        12288  0
ina3221                16384  0
tegra_aconnect         12288  0
mc_hwpm                12288  0
reed_solomon           16384  1 ramoops
thermal_trip_event     12288  0
tegra_bpmp_bwmgr       12288  0
tpm_ftpm_tee           12288  0
camera_diagnostics     16384  0
nvhost_isp5            16384  0
tegra_capture_isp      36864  1 nvhost_isp5
camchar                12288  0
rtcpu_debug            28672  0
br_netfilter           28672  0
bridge                241664  1 br_netfilter
stp                    12288  1 bridge
llc                    12288  2 bridge,stp
nv_imx708              16384  0
tegra_camera          208896  2 tegra_capture_isp,nv_imx708
v4l2_dv_timings        32768  1 tegra_camera
host1x_nvhost          28672  2 host1x_fence,tegra_camera
tegra_drm             339968  0
tegra_wmark            12288  3
nvhwpm                458752  2 mc_hwpm,tegra_drm
drm_display_helper    147456  1 tegra_drm
drm_dp_aux_bus         12288  1 tegra_drm
cec                    49152  1 tegra_drm
host1x                155648  6 host1x_nvhost,host1x_fence,nvhost_isp5,tegra_capture_isp,tegra_camera,tegra_drm
tegra_camera_platform    16384  2 nvhost_isp5,tegra_camera
mc_utils               12288  1 tegra_camera_platform
capture_ivc            24576  2 tegra_capture_isp,tegra_camera
tegra_camera_rtcpu    196608  4 rtcpu_debug,capture_ivc,tegra_capture_isp,tegra_camera
ivc_bus                20480  5 rtcpu_debug,capture_ivc,camera_diagnostics,camchar,tegra_camera_rtcpu
hsp_mailbox_client     16384  2 ivc_bus,tegra_camera_rtcpu
v4l2_fwnode            16384  1 tegra_camera
iwlmvm                466944  0
v4l2_async             20480  2 v4l2_fwnode,tegra_camera
videobuf2_dma_contig    16384  1 tegra_camera
videobuf2_memops       12288  1 videobuf2_dma_contig
videobuf2_v4l2         28672  1 tegra_camera
mac80211              856064  1 iwlmvm
videodev              262144  4 v4l2_async,v4l2_fwnode,videobuf2_v4l2,tegra_camera
videobuf2_common       61440  4 videobuf2_dma_contig,videobuf2_v4l2,tegra_camera,videobuf2_memops
libarc4                12288  1 mac80211
mc                     53248  5 v4l2_async,videodev,videobuf2_v4l2,tegra_camera,videobuf2_common
iwlwifi               425984  1 iwlmvm
cfg80211              864256  3 iwlmvm,iwlwifi,mac80211
rfkill                 24576  6 iwlmvm,bluetooth,cfg80211
nvme_fabrics           28672  0
fuse                  122880  1
nfnetlink              20480  5 nft_compat,nf_tables,ip_set
ip_tables              24576  0
x_tables               32768  6 xt_conntrack,nft_compat,xt_addrtype,xt_set,ip_tables,xt_MASQUERADE
ipv6                  442368  32 bridge,br_netfilter
pwm_fan                16384  0
pwm_tegra              12288  1
tegra_bpmp_thermal     12288  0
tegra_xudc             40960  0
uas                    20480  0
ucsi_ccg               20480  0
typec_ucsi             45056  1 ucsi_ccg
typec                  61440  1 typec_ucsi
nvme                   40960  2
nvme_core             110592  4 nvme,nvme_fabrics
phy_tegra194_p2u       12288  9
pcie_tegra194          32768  0

I have lane_polarity set to 6 because @JerryChang told me to here: Collecting knowlege about CSI cameras and the device tree - #9 by t.mehr

Thanks for the detailed diagnostics and the corrected device tree. The successful sensor binding combined with the missing NvCSI entities in media-ctl output points to a VI/CSI integration layer issue rather than a driver loading problem.

To narrow down the root cause, please provide:

  1. Confirm tegra_sinterface alignment: Verify that your tegra_sinterface values in the device tree match the port-index assignments:

    • serial_a for port 0
    • serial_b for port 1
    • serial_c for port 2

    In your current tree, cam0 uses serial_a (port 0) and cam1 uses serial_c (port 2), which looks correct, but please confirm these are the actual CSI serial interfaces available on your platform.

  2. Filtered kernel logs for initialization errors:

    dmesg -T | egrep -i 'imx708|tegra.*camera|tegracam|nvcsi|vi5|control|ctrl|Failed to init|unsupported|Error -22|unknown symbol|invalid module|disagrees'
    

    This will help identify any probe, module loading, or initialization failures in the VI/CSI pipeline.

  3. Verify VI/CSI pipeline initialization: Confirm that the media graph includes NvCSI entities. Run:

    media-ctl -d /dev/media0 -p
    

    and check if you see nvcsi entities in the output. If they’re missing, the VI/CSI driver may not be initializing properly.

Actually, after manually a modprobe nvhost-nvcsi media-ctl -p gives me

Media controller API version 6.8.12

Media device information
------------------------
driver          tegra-camrtc-ca
model           NVIDIA Tegra Video Input Device
serial          
bus info        platform:tegra-capture-vi
hw revision     0x3
driver version  6.8.12

Device topology
- entity 1: imx708 9-001a (1 pad, 1 link, 0 routes)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev0
        pad0: Source
                [stream:0 fmt:SRGGB10_1X10/4608x2592@1/14 field:none colorspace:srgb]
                -> "13e00000.host1x:nvcsi@15a00000-":0 [ENABLED]

- entity 3: imx708 10-001a (1 pad, 1 link, 0 routes)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev1
        pad0: Source
                [stream:0 fmt:SRGGB10_1X10/4608x2592@1/14 field:none colorspace:srgb]
                -> "13e00000.host1x:nvcsi@15a00000-":0 [ENABLED]

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

- entity 8: vi-output, imx708 9-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 22: 13e00000.host1x:nvcsi@15a00000- (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
        pad0: Sink
                <- "imx708 10-001a":0 [ENABLED]
        pad1: Source
                -> "vi-output, imx708 10-001a":0 [ENABLED]

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


and video0 and video1 showed up.

Hi @t.mehr

It’s good to hear that manually loading the nvhost-nvcsi module makes the video device appear. This suggests that the NvCSI driver was not being loaded as expected. Please make sure that all the required camera-related kernel modules have been rebuilt, installed, and updated so they are loaded automatically during boot.

Also, have you tried accessing the video device, for example with:

v4l2-ctl --all -d /dev/video0

Regards,

Kimberly Carvajal
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: www.ridgerun.com

Thanks for the detailed troubleshooting! Based on the diagnosis from @kimberly.carvajal and the moderator feedback, the root cause is clear: the nvhost-nvcsi kernel module is not loading automatically at boot.

You’ve already confirmed this works when you manually run modprobe nvhost-nvcsi — the full sensor-to-CSI-to-VI pipeline appears with /dev/video0 and /dev/video1 nodes.

To resolve this permanently, please:

  1. Rebuild and reinstall the camera-related kernel modules (particularly nvhost-nvcsi) following the RidgeRun porting guide for JP7.2.
  2. Ensure the modules are configured to load automatically at boot by checking /etc/modules-load.d/ or your kernel module configuration.
  3. Perform a fresh reboot and verify that /dev/video0 and /dev/video1 appear automatically without needing to manually run modprobe nvhost-nvcsi.
  4. Run media-ctl -p after reboot to confirm the sensor-to-CSI-to-VI pipeline is established automatically.

Please share the results of these steps so we can confirm the fix is working end-to-end.

Thanks for the detailed troubleshooting. The manual modprobe nvhost-nvcsi confirming immediate /dev/video0 and /dev/video1 creation strongly suggests the root cause is the NvCSI kernel module not auto-loading at boot.

To make this permanent, please:

  1. Rebuild and reinstall camera-related kernel modules (especially nvhost-nvcsi) following the RidgeRun JP7.2 porting guide for your carrier board configuration.

  2. Ensure auto-load configuration: Verify the modules are configured to load automatically at boot via /etc/modules-load.d/ or your kernel module configuration.

  3. Reboot and verify: After a full reboot, confirm that /dev/video0 and /dev/video1 appear automatically without manual modprobe commands.

  4. Validate the pipeline: Run media-ctl -p after reboot to confirm the complete sensor-to-CSI-to-VI pipeline is established automatically.

Please share the results of steps 3 and 4 (especially the post-reboot media-ctl -p output) so we can confirm the fix is permanent.

Yes, I get

Driver Info:
Driver name : tegra-video
Card type : vi-output, imx708 10-001a
Bus info : platform:tegra-capture-vi:1
Driver version : 6.8.12
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Priority: 2
Video input : 0 (Camera 1: no power)
Format Video Capture:
Width/Height : 4608/2592
Pixel Format : ‘RG10’ (10-bit Bayer RGRG/GBGB)
Field : None
Bytes per Line : 9216
Size Image : 23887872
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
Streaming Parameters Video Capture:
Capabilities : timeperframe
Frames per second: 14.000 (14/1)
Read buffers : 0

Camera Controls

                 group_hold 0x009a2003 (bool)   : default=0 value=0 flags=execute-on-write
                sensor_mode 0x009a2008 (int64)  : min=0 max=1 step=1 default=0 value=0 flags=slider
                       gain 0x009a2009 (int64)  : min=16 max=257 step=1 default=16 value=16 flags=slider
                   exposure 0x009a200a (int64)  : min=500 max=65488 step=1 default=1600 value=500 flags=slider
                 frame_rate 0x009a200b (int64)  : min=2000000 max=14000000 step=1 default=14000000 value=2000000 flags=slider
       sensor_configuration 0x009a2032 (u32)    : min=0 max=4294967295 step=1 default=0 dims=[22] flags=read-only, volatile, has-d
     sensor_mode_i2c_packet 0x009a2033 (u32)    : min=0 max=4294967295 step=1 default=0 dims=[1026] flags=read-only, volatile, had
  sensor_control_i2c_packet 0x009a2034 (u32)    : min=0 max=4294967295 step=1 default=0 dims=[1026] flags=read-only, volatile, had
                bypass_mode 0x009a2064 (intmenu): min=0 max=1 default=0 value=0 (0 0x0)
                            0: 0 (0x0)
                            1: 1 (0x1)
            override_enable 0x009a2065 (intmenu): min=0 max=1 default=0 value=0 (0 0x0)
                            0: 0 (0x0)
                            1: 1 (0x1)
               height_align 0x009a2066 (int)    : min=1 max=16 step=1 default=1 value=1
                 size_align 0x009a2067 (intmenu): min=0 max=2 default=0 value=0 (1 0x1)
                            0: 1 (0x1)
                            1: 65536 (0x10000)
                            2: 131072 (0x20000)
           write_isp_format 0x009a2068 (int)    : min=1 max=1 step=1 default=1 value=1
   sensor_signal_properties 0x009a2069 (u32)    : min=0 max=4294967295 step=1 default=0 dims=[30][28] flags=read-only, has-payload
    sensor_image_properties 0x009a206a (u32)    : min=0 max=4294967295 step=1 default=0 dims=[30][16] flags=read-only, has-payload
  sensor_control_properties 0x009a206b (u32)    : min=0 max=4294967295 step=1 default=0 dims=[30][36] flags=read-only, has-payload
          sensor_dv_timings 0x009a206c (u32)    : min=0 max=4294967295 step=1 default=0 dims=[30][16] flags=read-only, has-payload
           low_latency_mode 0x009a206d (bool)   : default=0 value=0
           preferred_stride 0x009a206e (int)    : min=0 max=65535 step=1 default=0 value=0
override_capture_timeout_ms 0x009a206f (int)    : min=-1 max=2147483647 step=1 default=2500 value=2500
               sensor_modes 0x009a2082 (int)    : min=0 max=30 step=1 default=30 value=1 flags=read-only

It seems to work. I don’t quite understand why the nvcsi module isn’t being loaded automatically, even adding it to /etc/modules didn’t do it.

I wrote a systemd service that does the modprobe, that seems to work well.

For me the issue is solved. Thanks for your support.

Regards,

Thore Mehr