vi, nvcsi, camera sensor or tc358840 drivers relationship

Hi All,

vi controller, nvcsi controller and Camera sensor device or tc358840 device, here, all are V4l2 drivers. The driver details as:
vi → v4l2 device and video device driver
nvcsi → v4l2 subdev driver
camera sensor or tc358840 → v4l2 subdev driver

I came to know that how the drivers are written. Need the below details:

  1. What is the relationship between these drivers? Not implementation details in Linux. Need the details
    about the hardware architecture way, i.e. hardware access, data flow, configuration flow and etc.
    In hardware controllers point of view, what is the relationship between these drivers or devices.
    In software point of view, what is the relationship between these drivers or devices.

  2. What nvcsi driver will expect from tc358840 driver or camera sensor driver and vice versa.

  3. What vi driver will expect from nvcsi driver and vice versa.

  4. What vi driver will expect from nvcsi and camera sensor driver and vice versa.

-Thanks.

BalajiNP
Could you check the l4t document and TRM first.