Unifying two different types of cameras on Jetson TX2 platform

Hi, I want to know if it is possible that I could get two different types of GMSL cameras work on the Jetson TX2 board. So I get Sony IMX304 and IMX412 cameras. And they are using different types of drivers. I would like to modify the kernel such that Jetson TX2 could work with both types of cameras. I am wondering if it is possible. And if it is possible, what tegra-camera-platform should look like? I conceive something like this:

tegra-camera-platform {
                compatible = "nvidia, tegra-camera-platform";
                # common configurations
                modules {
                        moduleX {
                                # common configurations
                                drivernode0 {
                                        devname = "imx412 XXX";
                                        pcl_id = "v4l2_sensor";
                                        proc-device-tree = "/proc/device-tree/i2c@3180000/tca9546@70/i2c@0/<imx412_endpoint>";
                                };
                                drivernode1 {
                                        devname = "imx304 XXX";
                                        pcl_id = "v4l2_sensor";
                                        proc-device-tree = "/proc/device-tree/i2c@3180000/tca9546@70/i2c@0/<imx304_endpoint>";
                                };
                        };
               ....
               };
}

I know this need sounds weird, but is it possible to do that?

hello xxxdragonslayerxxx,

it’s supported to have heterogeneous camera on the platform, we’ve also test with heterogeneous camera sensors sharing the same CSI port.
however, we’ve tested it on Xavier platforms, Jetson TX2 should also works.

Is it possible that you give me some instructions on how to do that? It would be great if you could share your device tree configs setup for nvcsi@15a00000, vi@15c10000, i2c@3180000, and tegra-camera-platform. Or is there any documentation I could refer to?

hello xxxdragonslayerxxx,

please check Jetson Linux Archive | NVIDIA Developer, and please download the [L4T Driver Package (BSP) Sources] according to your L4T version.
please extract the kernel_src.tbz2 package, and you’ll see device tree sources under hardware/ folder.
there’s reference device tree to have heterogeneous camera, but it’s used by Xavier NX, please refer to tegra194-p3668-all-p3509-0000-camera-imx477-imx219.dts.

you may also check developer guide, Sensor Software Driver Programming.
thanks

That’s very helpful. Thanks a lot!

Hey Jerry,

I downloaded L4T Driver Package (BSP) Sources for L4T R32.5.2, but I didn’t see anything under the hardware/ directory after unzipping kernel_src.tbz2 package. Should I download another version? Or the name of that dts file is different?

$:~/Nvidia_example/Linux_for_Tegra/source/public/hardware$ find . -name "*imx219*"
./nvidia/platform/t19x/jakku/kernel-dts/common/tegra194-camera-rbpcv2-imx219.dtsi
./nvidia/platform/t19x/jakku/kernel-dts/common/tegra194-camera-jakku-rbpcv2-imx219.dtsi
./nvidia/platform/t18x/lanai/kernel-dts/common/tegra186-camera-rbpcv2-imx219.dtsi
./nvidia/platform/t18x/lanai/kernel-dts/common/tegra186-camera-lanai-rbpcv2-imx219.dtsi
$:~/Nvidia_example/Linux_for_Tegra/source/public/hardware$ find . -name "*imx477*"
$:~/Nvidia_example/Linux_for_Tegra/source/public/hardware$ 

hello xxxdragonslayerxxx,

that heterogeneous camera support should be added after r32.5.2.
please try download the newer release version,
for example, it’s available with Jetson Linux R32.7.2 Release Page | NVIDIA Developer

Does that mean I couldn’t get heterogeneous cameras work for r32.5.2 and I have to upgrade the Jetpack first?

hello xxxdragonslayerxxx,

you may try to bring-up the driver, I would like to say heterogeneous cameras is validate after r32.5.2.

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