I have included the driver for adv7280m as a LKM in jetson orin nano dev kit (JP 6.0), and now writing device tree to configure the device as a camera module. I have taken references from many available device tree formats on the forum and from imx219 device tree overlay for this purpose.
I have attached the overlay file with the latest changes. Since I don’t hold any experience in embedded linux, I’m using the trial and error method, changing values and checking which works.
However, my current issue is, jetson orin nano only has nvcsi module with base address 15a00000 (am I right?) When I write nvcsi@15a00000 { in device tree, the response of media-ctl -p -d /dev/media0 is
$ sudo media-ctl -p -d /dev/media0
Media controller API version 5.15.136
Media device information
------------------------
driver tegra-camrtc-ca
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 5.15.136
Device topology
but when I change the base address to another value, say 150c0000, the response shows some port bindings and source sink pads information. Why is that? I would appreciate if you could go through the attached file and point out the errors and modifications, with respect to this specific issue as well as any other issue present in the dts file.
I tried to check with other nvidia provided overlay files present at /boot/ but the nvcsi doesn’t show port binding information (Device Topology) on base address 15a00000, rather it appears when I put nvcsi address 150c0000.
Or does the device topology section of the media-ctl -p -d /dev/media0 is generated by the module driver and not the device tree?
I couldn’t find out why Jetson orin nano’s device tree shows port bindings at address 150c0000 and not at 15a00000,
I also couldn’t make the linux driver available for adv7280m work on JP 6 (nor the edited versions of the driver available at different threads for JP 3 and 4).
So I reached the conclusion that I would have to write its driver manually from scratch which will take some time, so for now we have postponed the project.
If you have answer to any of the problem I mentioned, i.e.,
why the right nvsi address would not work?
or why would the LKM of adv7280m driver provided by linux would not work?
or how to locate if the issue is in driver or device-tree?