How do I add 6 OV5693 camera drivers?

I use jetson-tx1 devkit,I want to add 6 OV5693 cameras through J22 and use pca9548, how can I modify the device tree?

Dear,

You can refer to e3333 dts for six cameras:
tegra210-jetson-cv-camera-e3333-a00.dtsi and tegra210-camera-e3333-a00.dtsi.

hello weijiapingshu,

Dennis_Jiang is right,
E3333 device tree is based-on six ov5693 camera module board.
you could refer to it for your implementation. thanks

Dear JerryChang:
I added tca9548 in the device tree, and after the system is started, the directory “/proc/device-tree/host1x/i2c@546c0000” contains the tca9548 directory, but the system does not find the probe information of tca9548. Why is that?

hello weijiapingshu,

tca9548 is a i2c mux for multiple camera implementation,
you should check from the kernel message if all your sensor probing correctly.
for example,

[    8.683717] tegra-vi4 15700000.vi: subdev ov5693 <b>30</b>-0036 bound
[    8.683982] tegra-vi4 15700000.vi: subdev ov5693 <b>31</b>-0036 bound
[    8.684222] tegra-vi4 15700000.vi: subdev ov5693 <b>32</b>-0036 bound
[    8.684455] tegra-vi4 15700000.vi: subdev ov5693 <b>33</b>-0036 bound
[    8.684686] tegra-vi4 15700000.vi: subdev ov5693 <b>34</b>-0036 bound
[    8.684920] tegra-vi4 15700000.vi: subdev ov5693 <b>35</b>-0036 bound

The tca9548 driver is i2c-mux-pca954x.c? I connected tca9548 and added print to the driver, but did not get the print information.

Hi dude,

i2c-mux-pca954x.c is the driver code for tca9548, you can check the dmesg information for “954x” , like this:
[ 0.505796] pca954x 6-0070: pca954x_probe: forcing device bus number, start 30.
[ 0.505842] pca954x 6-0070: device detect skipped.
[ 0.506272] pca954x 6-0070: Write to device success: 0

if there’s no pca954x, you should check the kernel config and dts setting (refer to e3333)

Hi,

I have kind of similar problem. We use pca9544 with 5 ov9281 cameras.
The first confusing thing is that pca954x driver will not probe without "vcc-supply = " in the device tree. I don’t know what value to set for this parameter.

Then all the device tree examples have “nvcsi” node. I’m confused. I thought that TX1 doesn’t have NVCSI.

At this moment I have 3 out of 5 sensors working.
The problem is that vi will not bind the second sensor if two sensors are on the same i2c (sensors have different i2c addresses).
I have one sensor on i2c@0, two sensors on i2c@1 and two sensors on i2c@2

How do I wire vi -> nvcsi:channel -> i2c:sensor@2 in the device tree?

hi all,

  1. please check camera software stack, you will found it via Camera Software Development Solution chapter for the [Camera Architecture Stack] session.
  2. there’s [V4L2 Sensor Driver Development Tutorial] in the Jetson Tutorials page for your reference.
  3. you may disassembler the t210.dtb file into txt file for more details.
$ dtc -I dtb -O dts -o output.txt $OUT/kernel/dtb/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb