This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: SK-TDA4VM- FPD LINK3 camera bring up through virtual channel (linux)

Part Number: TDA4VM

Hi,

I am trying to integrate 4 cameras with SK-TDA4VM though FPD LINK 3.

As TDA4VM processors has two 4 lane csi port, I have successfully integrated two cameras, each camera through separate csi  port using single UB960 deserializer.

I want to integrate two camera for each csi port through virtual channel thereby i can use 4 cameras in single SK-TDA4VM kit.

Source:

Kernel: 5.10.y

SDK: 08.04.00

All the four cameras are probed, But cdns-csi2rx.c driver creates only one video node for each csi port.

The below are methods i am trying to use virtual channel.

Driver model 1:

I have used ds90ub960.c and ds90ub953.c driver in kernel for probing deserializer and serializer. In that only one Video node is created for 4 cameras which uses only one csi port to route all 4 cameras. even in that i can't stream 4 cameras at a time. Because it didn't have video node created for each camera. How can i use virtual channel to stream 4 cameras at a time?

Driver model 2:

I wrote my own driver for Deserializer, serializer and camera where i can create two video node, as i can utilize two csi node in Deserializer to connect two csi ports of TDA4VM. But i cant create virtual channel to stream 4 cameras.

Could you please help us to stream 4 cameras at a time using virtual channel?

  • Hi,

    For Driver module 1, Could you please confirm if you are using 4 dtb overlays for 4 sensors and a cpd overlay for the fusion board (If you are using this)?

    If yes, then you would have to set the routes for the deserializer and the csi-rx final node to map to different /dev/videoX as shown below

    media-ctl -R '"4500000.ticsi2rx" [0/0 -> 1/0 [1], 0/1 -> 2/0 [1]]'

    media-ctl -R '"ds90ub960 9-003d" [0/0 -> 4/0 [1], 1/0 -> 4/1 [1]]'

    for csi instance 1, you would have to do the above again using media-ctl -d1 ....

    Regards,
    Nikhil

  • Hi,

    Could you please also give me media-ctl command to change formats and resolution of deserializer and serializer?

  • Hi,

    To set the format and resolution, you could use the below command

    For serializer :

    media-ctl -V '"ds90ub953 9-0044":0 [fmt:SRGGB12_1X12/1936x1100 field: none]'

    For deserializer :

    media-ctl -V '"ds90ub960 8-003d":0 [fmt:SRGGB12_1X12/1936x1100 field: none]'

    Regards,
    Nikhil