I’m struggling a bit in understanding in deep the actual meaning of the video input and NVCSI entries in the device tree of the TX2 camera sensor drivers. More precisely, I’m focusing in the OV5693, although all the sensors I’ve seen include almost the same. AFAIK, host1x is a DMA engine, and the entries inside it define the flow of the video data, going from sensor → VI → NVCSI → I2C. Moreover, the remote-endpoint property defines the sink and the source. Am I correct? If so:
- How does the DT know which port is the source and which the sink?
- Is the flow like: sensor → vi(port@0) → nvcsi(port@1) → nvcsi(port@0) → i2c(port@0)?
- Port-index defines the sensor port connection. But how? Why some sensors take the value <0> and others (for example e3326) <2>?
host1x {
vi@15700000 {
num-channels = <1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
liimx185_vi_in0: endpoint {
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&liimx185_csi_out0>;
};
};
};
};
nvcsi@150c0000 {
num-channels = <1>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
liimx185_csi_in0: endpoint@0 {
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&liimx185_imx185_out0>;
};
};
port@1 {
reg = <1>;
liimx185_csi_out0: endpoint@1 {
remote-endpoint = <&liimx185_vi_in0>;
};
};
};
};
};
};