Adv7280m device tree and driver issues

Hello,

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.

adv7280m.txt (5.0 KB)

the following response of media-ctl -p -d /dev/media0 is when nvcsi@150c0000 is used instead of nvcsi@15a00000.

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
- entity 1: 13e00000.host1x:nvcsi@15a00000- (2 pads, 0 link)
            type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
	pad1: Source

- entity 4: 13e00000.host1x:nvcsi@15a00000- (2 pads, 0 link)
            type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
	pad1: Source

Should be the nvcsi@15a00000 for Orin serials.
Please checking the adv7280m driver to register the tegra_cam.

which function is used to register the tegra_cam in the driver?

For reference sensor driver using tegracam_device_register() and tegracam_v4l2subdev_register() but I don’t know Adv7280m.

the sensor driver has a v4l2_async_register_subdev() , but none of the functions that you mentioned.

Yes, you can trace this function like tc358840.

what do I look for in this function? there’s no reference to base address of nvcsi here, so how is this related to setting up device tree?

I mean like tc358840 using v4l2_async_register_subdev() to register video node and create the port binding.

Hello,

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?

Is this still an issue to support? Any result can be shared?

The update is,

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?

I would still appreciate the help.

Thank you.

Suppose they are.

nvcsi@15a00000
vi0@15c00000 —> disable by default.

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