Customer camera driver development

In dmesg I found an entry maybe related to my driver with address 0x24
“Tegra-vii2c 546c0000.i2c: arb lost in communicate to add 0x24”

But do not know how to solve if it is the main reason!
What do you think?
Thanks

Now, I have no entry in dmesg related to my driver or any failed registered

But I can not found /dev/video0 or /dev/video1, so that I am not able to open camera with any SW (Python or C++ using gstreamer).

Only one thing that Maybe a problem is my camera ov4000 provides data over 2 CSI after ISP.
If it is the case, what must be changed or extended in where?

Any idea? Thanks

@ShaneCCC @kayccc could you pls share me any documentation about descriptions of dtsi file?
Thanks

@ShaneCCC my camera has the address 0x24 and connected to Nano via CSI0 and 1 (I understood them at i2c bus number 7 and 8). I used i2cdetect, but I get communication with a device at adress 0x6a (see below)
What is wrong here?
#####################################
binh@BNano:~/Desktop/Binh/CSI-Camera$ i2cdetect -y -r 7
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: UU – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – 6a – – – – –
70: – – – – – – – –
binh@BNano:~/Desktop/Binh/CSI-Camera$ i2cdetect -y -r 8
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: UU – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – 6a – – – – –
70: – – – – – – – –

Have a check below for driver implement. You may need HW to check the i2cdetect problem first.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/camera_sensor_prog.47.1.html#

@ShaneCCC I fully checked my dtsi files according to your description. And compile again!
No error registered in dmesg!
Everything about my camera described in my dtsi can be found in /proc/device-tree folder correctly
But no /dev/video*.
Any idea? Thanks

@ShaneCCC one question: in your Guide with imx185, in dtsi file you use
fragment@xx, where xx stands for integer number
But sometimes you use
fragment-imx185@xxx

Could you please explain me the syntax with „fragment „?

Thanks

The fragment is used for the device tree overlay for the plugin manager.
You should check the programing guide to remove the plugin manager to use main platform device tree.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/camera_sensor_prog.47.2.html#wwpID0E0XF0HA

@ShaneCCC OK, I will try it.
But I want to understand the syntax for Plug-in Manager.dtsi
For Dual imx219, it looks like
fragement@10 {
ids = “>=3448-0000-300”, “>=3448-0002-300”; //imx219

What does the string in ids mean?
Why does ids have 1,2 or even 3 string of numbers?
Can I put anything like?
fragement_xxx@10 {
ids = “any string”;

Thanks

@ShaneCCC the 2. question to you:
My ov4000 is written based on dual imx219 with only different by name, camera parameters (image size, clock, mode type) and address,
Why does System try to connect to imx219 By booting, whereas ov4000 is really connected?

Thanks

Those string is the id read from the EEPROM but most of customize camera board don’t have EEPROM design so suggest remove the plugin manager.

Could you pls explain me, @ShaneCCC ? Thanks

It could be your device tree have define imx219. You may need to dump your device tree to check.

sudo dtc -I fs -O dts -o extracted_proc.dts /proc/device-tree