Device Node Is not creating for new camera sensor driver

@khang.l4es
Hello all,
I’m trying to integrate the sony FCB camera ev9500m with Nvidia Jetson Nano. actully i have the driver for xavier NX Board. i have done the modification according to t210(JETSON NANO) in the dtsi file and the driver also. for me the device node is not getting created.

I have done the debugging printk’s in the driver and tegracam_device_register function , tegracam_v4l2subdev_register functions all the prints are printing properly and i’m checking the return values i’m getteing 0 as the value properly the driver is executing till the end of the probe function but the device node is not getting generated.

here i’m attaching my driver file and dtsi file
ev9500m.c (13.2 KB)
tegra194-camera-ev9500m.dtsi (7.2 KB)

I have included our dtsi file in the below dtsi file

public/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms/tegra210-porg-camera.dtsi

what might be the issue, please help …!

I would suggest using ov5693(e3326) as template to modify your driver.

Thanks

Thanks for your response
Actually our camera doesn’t have I2C, which only has 4 MIPI lanes. and i have referred the driver and Dtsi file with imx219 sensor and i have modified the things accordingly

OK, any of reference driver would be OK.

You can remove all i2c access code in imx219.c to check if able to gen the video node for debugging.

I’m sorry Actually i have the exact camera driver for ev9500m which i have attached in my Question. but that driver is for Xavier NX i have to port that into jetson nano
i observed the changes in t190 and t210 Dtsi files and i have modified my Dtsi file accordingly. and i have done debugging the complete probe function and
tegracam_device_register
tegracam_v4l2subdev_register functions also all executed properly and even i have checked the error status its clear.

but when i grep “nvcsi” i got the below error:
~$ dmesg | grep “nvcsi”
[ 1.066335] t194-nvcsi 50000000.host1x:nvcsi: No memory resource
[ 1.066377] t194-nvcsi: probe of 50000000.host1x:nvcsi failed with error -22

That could be your device tree incorrect for the nvcsi/vi driver didn’t loaded.
Please dump the device tree to confirm.

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

Yes i have done it by

/boot/dtb$ sudo dtc -I fs /proc/device-tree -O dts -o kernel_tegra210-p3448-0002-p3449-0000-b00.dtb

And here is the data

dtsDumpdata (36.9 KB)

You should -o kernel_tegra210-p3448-0002-p3449-0000-b00.dts
And check the dts file for the context of nvcsi@xxx and vi@xxx

Hi @ShaneCCC

I have done this

Linux_for_Tegra/kernel/dtb$ dtc -I dtb -O dts -o - tegra210-p3448-0002-p3449-0000-b00.dtb > extrcted.dts

and got the below as the dts file
extrcted.dts (333.9 KB)

what are the things need to be confirmed here ?

Should be t210 instead of t194

		compatible = "nvidia,tegra194-nvcsi";

Yes, i’m able to see that but i have commented that in camera sensor dtsi file as the imx219 commented out.

yes those commented DTSI isn’t compiled properly now i have compiled it alone and tested those error got resolved but the node isn’t created yet.

I have changed
compatible = “nvidia,tegra210-nvcsi”
and i have commented the compatible string for nvcsi
in both the case there was no error but still devnode is not getting generated.

Here is the latest dtb dump file:
extrctedV1testagain.dts (333.9 KB)

Question:

  1. without connecting the camera will the video devnode create ??
    (why because we are not communicating with camera through i2c)

Or we should connect the camera for generating the video devnode even in this case

Note:
My i2c@546c0000 is creating under the host1x.

No need to connect physically to gen video node.
Modify the address to avoid conflict to try.

ev9500m_a@10

Can you please elaborate bit in detail Mr.Shane

Change 10 to any others slave address like 80 …

yes i have changed it other address but still the video devnode is not getting generated

why our i2c@546c0000 is populated under Host1x

Here is the latest dtb dumb file :
extrctedV3.dts (334.0 KB)

Check the if there have bound nvcsi/vi message like below example.

[   13.059175] tegra194-vi5 15c10000.vi: subdev 15a00000.nvcsi--2 bound
[   13.060637] tegra194-vi5 15c10000.vi: subdev 15a00000.nvcsi--1 bound

yes i got this exactly

[ 1.476477] vi 54080000.vi: subdev nvcsi–2 bound
[ 1.476578] vi 54080000.vi: subdev nvcsi–1 bound

Well,
Please check with below command.

media-ctl -p

v4l2-ctl --list-formats-ext

media-ctl -p
Media controller API version 0.1.0

Media device information

driver vi
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 0.0.0

Device topology

  • entity 1: nvcsi–2 (2 pads, 0 link)
    type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
    pad1: Source

  • entity 4: nvcsi–1 (2 pads, 0 link)
    type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
    pad1: Source

v4l2-ctl --list-formats-ext
Failed to open /dev/video0: No such file or directory