Jetson Nano model B01 without CAM_I2C MUX - only one camera

Hello.
We have the following hardware

  • Jetson board: Jetson nano tegra210-p3448-0002-p3449-0000-b00 (uses eMMC memory)
  • Carrier board: custom carrier board
  • Environment: Jetpack: 4.6.1 [L4T 32.7.1]

The custom carrier board has only one CSI camera connector. The I2C MUX was removed and now the camera isn’t recognized (we need to use only one camera). The first version of the custom carrier had an I2c mux and worked well. The only difference is that now, there is no connection on GPIO06 → CAM_MUX_SEL and of course the CAM1 pins connections. The CAM0 pins are connected to CSIA in pinmux device tree.

I have looked into the comments and references from the following links :
[1] Jetson Nano multi CSI without CAM_I2CMUX
[2] NANO multi CSI without I2C HUB
[3] I2c mux tca9548 for imx462

I even tried the solution from [2], but it didn’t work. Below are the dtsi files that were modified (they are in txt format so I could upload them).
tegra210-camera-rbpcv2-dual-imx219.txt (13.5 KB)
tegra210-porg-camera-rbpcv2-dual-imx219.txt (1.4 KB)
tegra210-porg-plugin-manager.txt (7.3 KB ← I didn’t feel like this file affected the output)

The following file was not modified. Should I modify something here as well?
tegra210-p3448-all-p3449-0000-camera-imx219-dual.txt (2.3 KB)

With the configuration above I get the following results.

I have tried multiple even configs from the dtsi for only one imx219 camera. But didn’t work.
Also, I have put the status “disabled” in tegra210-porg-camera-rbpcv2-dual-imx219, like in [2], but then the dmesg would show nothing.


The dev/video0 was created, but the camera didn’t work. The output of the v4l2 is not good.

On the previous carrier (where it was an i2c mux) I had the following response (and the camera worked):

Do you have any ideas? What should I change? I am spinning in a circle with this one. Any feedback is appreciated. If I can provide anything else for debugging let me know. Thank you!

You need move the imx219 to i2c@xxxx {} instead of cam_i2cmux{}, you can reference to e3326 for single camera device tree configure.

I have tried to change the files accordingly. I observed that it looked like tegra210-camera-rbpcv2-imx219.dtsi. I still get errors, and no /dev/video0 is created.
I’ve got the errors for the following addresses:

"i2c@546c0000"
dmesg |grep imx
[    0.597695] i2c i2c-6: of_i2c: modalias failure on /host1x/i2c@546c0000/rbpcv2_imx219_a@10
[    0.597733] i2c i2c-6: Failed to create I2C device for /host1x/i2c@546c0000/rbpcv2_imx219_a@10

 "i2c@7000c000"
  dmesg |grep imx
[    1.232879] imx219 0-0010: reset-gpios not found
[    1.237553] imx219 0-0010: unable to get platform data
[    1.242715] imx219 0-0010: tegra camera driver registration failed
[    1.249003] imx219: probe of 0-0010 failed with error -14

 "i2c@7000c400"
dmesg |grep imx
[    1.266495] imx219 1-0010: reset-gpios not found
[    1.271220] imx219 1-0010: unable to get platform data
[    1.276385] imx219 1-0010: tegra camera driver registration failed
[    1.282671] imx219: probe of 1-0010 failed with error -14

 "i2c@7000c700"
dmesg |grep imx
[    1.281078] imx219 3-0010: reset-gpios not found
[    1.285749] imx219 3-0010: unable to get platform data
[    1.290907] imx219 3-0010: tegra camera driver registration failed
[    1.297190] imx219: probe of 3-0010 failed with error -14

The schematics are like this:


and the pinmux:

here are the new configs based on reference to e3326.
tegra210-camera-rbpcv2-dual-imx219.txt (13.2 KB)
tegra210-porg-camera-rbpcv2-dual-imx219.txt (1.1 KB)

What is the right i2c address? Based on what I’ve read, it should be on i2c-7. On what i2c bus should I expect the camera?

It should be i2c6 = “/host1x/i2c@546c0000”
Also check if your design have reset-gpios to decline in the device tree.

Thanks

Ok. I have modified the dtsi files for i2c@546c0000, but it didn’t work.

dmesg |grep imx
[    1.270235] imx219 6-0010: tegracam sensor driver:imx219_v2.0.6
[    1.293655] imx219 6-0010: imx219_board_setup: error during i2c read probe (-121)
[    1.301324] imx219 6-0010: board setup failed
[    1.305766] imx219: probe of 6-0010 failed with error -121

What do you mean by reset-gpios in the device tree? I don’t think there are reset pins which are connected to the camera. Only CAM1_PWDN which is associated with CAM0_PWDN. There is no CAM0_RST_L like in the reference to e3326.

I have this in tegra210-porg-camera-rbpcv2-dual-imx219

#define CAM1_PWDN		TEGRA_GPIO(S, 7)

/ {
    host1x {
		i2c@546c0000 {
			rbpcv2_imx219_a@10 {
				reset-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;
			};
		};
	};

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

All good now. It was a hardware problem, which is now fixed. Now the camera works with the default .dtsi dual-imx219 files, even if there is only one CSI and no i2c mux.

Thanks for the support!