Is serial_* the same as CSI interface?

In this topic:

The OP is talking about the serial_ interfaces. Do those serial interfaces correspond to each CSI port in this figure (from here)?

Meaning serial_a corresponds to CSI A in this picture

And so on so forth until serial_h that corresponds to CSI H?

If that is true, how do I configure a sensor that I know it is sending data through CSI G, for example?

Do I need to bind it to:

tegra-capture-vi: port 5

nvcsi@15a00000: port 6

Is that correct?

Thanks!

*** Please note that this reply is generated by LLM automatically ***

The question is asking about the mapping relationship between the port index in tegra-capture-vi, nvcsi@15a00000, and tegra-sinterface in I2C device properties on the Jetson AGX Orin.

The provided diagram shows the CSI port index map on the Jetson AGX Orin. The serial interfaces (seriala to serialh) correspond to each CSI port in the diagram.

Here is the correct mapping:

  • seriala corresponds to CSI A (port index 0)
  • serialb corresponds to CSI B (port index 1)
  • serialc corresponds to CSI C (port index 2)
  • seriald corresponds to CSI D (port index 3)
  • seriale corresponds to CSI E (port index 4)
  • serialf corresponds to CSI F (port index 5)
  • serialg corresponds to CSI G (port index 6)
  • serialh corresponds to CSI H (port index 7)

To configure a sensor that is sending data through CSI G, for example, you would need to bind it to:

  • tegra-capture-vi port 6
  • nvcsi@15a00000 port 6

Note that the port index in tegra-capture-vi and nvcsi@15a00000 is 0-based, meaning that the first port is indexed as 0, not 1.

In the device tree, you would need to set the reg property of the tegra-capture-vi node to 6, and the reg property of the nvcsi@15a00000 node to 6.

For example:

tegra-capture-vi {
    num-channels = <2>;
    ports {
        ...
        port@6 {
            reg = <6>;
            ...
        };
    };
};

bus@0{
    host1x@13e00000 {
        nvcsi@15a00000 {
            num-channels = <2>;
            #address-cells = <1>;
            #size-cells = <0>;
            channel@6 {
                reg = <6>;
                ...
            };
            ...
        };
    };
};

This will bind the sensor to CSI G (serialg) and allow it to send data through that port.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

hello josecarlos.cazarinfi,

that’s correct.
you should have below port bindings since VI has only 5 active streams.
the last two bricks, (CSI-E/F, CSI-G/H) share a single PixelParser.
for instance,
Sensor_out (port-index= 6) → CSI_in (port-index= 6) → CSI_out (port-index= 6) → VI_in (port-index= 5)

please see-also Topic 69753 for some details about the port-index of NVCSI and VI.

1 Like