Jetpack 5.1.1 and ar1335 cameras: e-Con e-CAM130A_CUXVR device tree issue

The Jetpack 5.1 announcement, JetPack 5.1 with Jetson Linux 35.2.1 Released, included mention of support for AR1335 cameras. We use the AR1335 based e-CAM130A_CUXVR from e-con systems so I have been testing the support included now in Jetpack and it seems to me that there is an addressing issue in the device tree. Below I provide some details in case it helps others.

Jetpack 5.1.1 includes a kernel module driver for the AR1335 based off e-con’s and a device tree overlay for the eCAM130A_CUXVR. There is no flashing configuration file by default that includes the overlay so I created one and flashed a Xavier AGX dev kit but the camera detection fails.

invalid GPIO 65019
...
ar1335 30-0042: pwdn gpios not in DT

The eCAM130A_CUXVR has a base board that mounts to the expansion header of the xavier carrier board and has an I2C GPIO chip that provides the GPIOs that control camera power down and reset etc. Detection of this GPIO chip fails:

pca953x 1-0022: using AI
pca953x 1-0022: failed writing register
pca953x: probe of 1-0022 failed with error -121

When running Jetpack 5.0.1 and software provided by e-con this detection looks like:

pca953x 7-0022: using AI
gpio-281 (tca6424_22_outlow): hogged as output/low
gpio-282 (tca6424_22_outlow): hogged as output/low
...

Note that the I2C address that is being used for the GPIO chip is different, 7-0022 vs 1-0022

I downloaded the Jetpack sources and looking at the dtsi files the file kernel-dts/common/tegra194-p2822-camera-eCAM130A_CUXVR.dtsi has the following

        i2c@c240000 {
                #address-cells = <1>;
                #size-cells = <0>;
                tca6424_22: tca6424@22 {

but the corresponding e-con supplied dtsi file has a different address for the I2C bus, c250000 instead of c240000, which signifies a different bus controller:

        i2c@c250000 {
                status = "okay";
                #address-cells = <1>;
                #size-cells = <0>;
                tca6424_22: tca6424@22 {

I changed the incorrect address c240000 to c250000 in the 3 dts files where it is used, built the dtbs and copied the built tegra194-p2822-camera-eCAM130A_CUXVR-overlay.dtbo and tegra194-p2888-0001-p2822-0000.dtb into the Linux_for_Tegra tree. I reflashed the dev kit and cameras were successfully detected.

So it seems to me that the Jetpack5.1 support for eCAM130A_CUXVR works except for this addressing error. Hopefully this can be corrected in the next release

hello dennis.frousheger,

could you please share complete steps, had you execute Jetson-IO to configure the CSI connector?
we’ve test this locally with AGX Xavier/r35.3.1, it works normally.

Hi Jerry

I have not used Jetson-IO at all, and I was not previously aware of it.

I think what I’ve described above covers all of the essential steps I conducted.

Dennis

This is the contents of the flashing configuration file I used:

source "${LDK_DIR}/p2972-0000.conf.common";
PINMUX_CONFIG="tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg";
OVERLAY_DTB_FILE="${OVERLAY_DTB_FILE},tegra194-p2822-camera-eCAM130A_CUXVR-overlay.dtbo,tegra194-p2888-0005-overlay.dtbo,tegra194-p2888-0001-p2822-0000-overlay.dtbo";

Is there an additional overlay that I should be using? Is there a pre-existing flashing configuration file that I should be using instead?

Note that I am flashing via the flash.sh script.

Thanks

Dennis

please execute Jetson-IO to configure CSI connector.
you may see-also… Configuring the CSI Connector.

I have reflashed the Xavier AGX dev kit to standard Jetpack5.1.1 and used Jetson-IO to configure for the ‘Jetson ECON YUV Camera Module’ and the E-Con hardware is not correctly detected. As in my earlier post the wrong I2C bus is being used to communicate by the pca953x driver. The device tree overlay provided in Jetpack is configured to use I2C bus 1 when the device tree provided by E-Con uses I2C bus 7.

I have also tested with a second Xavier AGX dev kit and new from the box eCAM130A_CUXVR hardware to be sure I have not mixed up hardware versions and it is not detected.

I have then changed the address in the source dts and dtsi files, rebuilt them and applied the built dtb and dtbo files when reflashing the Xavier AGX dev kit. I then used Jetson-IO to apply the ECON devicetree overlay with the corrected address and after rebooting the camera hardware is detected and functions.

So I still believe there is an addressing issue in the Jetpack 5.1.1 device tree support for eCAM130A_CUXVR. I don’t see how it can work unmodified with the hardware that I have purchased from E-Con as the device tree is configured to use a different I2C bus.

Sorry for the late response, is this still an issue to support? Thanks

Hi Kayccc,

I checked the dts file (kernel-dts/common/tegra194-p2822-camera-eCAM130A_CUXVR.dtsi) in the latest Jetpack 5.1.2 release and nothing has changed with regards to this so I still believe the address i2c@c240000 is incorrect and doesn’t work with the E-Con hardware that I have. This dtsi file also only supports 3 cameras, but E-Con sells kits with up to 4 cameras, which is what we use.

Thanks

@dennis.frousheger,

Sorry for the inconvenience.

This issue is due to the gpio expander’s bus change in the camera base board.

Please write your query to techsupport@e-consystems.com. Our team will share the latest package to solve this issue.

Thanks for your message @velmurugan.s

I will certainly email e-con’s tech support as you suggest, but for the benefit of others who might read this thread can you please explain what you mean by

gpio expander’s bus change in the camera base board

Does it mean that there is a new hardware version of the base board?

Hello @dennis.frousheger,

Yes, you are correct.
There is a new version of hardware. The latest package will support both base boards.

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