i2c device detection process

I’ve built a driver for a camera which is connected to the camera connector in the Jetson TX2. The address of the camera is 0x24, and when running “i2cdetect -y -r 2”, it responds to it. I can verify that the I2C communication is working correctly, as I’m able to read or write in any of the registers of the camera through i2ctransfer commands.

Now, in order to obtain images through CSI, I’ve developed a simple driver, but I’m not able to see it even in /dev as video0.
I’ve flashed the kernel dtb and added the camera properties, and after flashing it I can see it in /proc/device-tree/i2c@3180000/.
All in all, which is the detection process of an I2C driver in the TX2? I2C communication is working correctly.

The process (summarized) has been the following one to flash the TX2:

  1. Generate .dtsi file and add it in <hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-modules/>
  2. Include the .dtsi file in <hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-camera-modules.dtsi>
  3. Add the driver to kernel/nvidia/drivers/media/i2c, and edit Kconfig and Makefile to include it.
  4. Edit menuconfig. Append -tegra to localversion and set the driver as module
  5. Generate image and dtbs
  6. Replace Image and dtsi files in the L4T directory.
  7. Flash jetson through “sudo ./flash.sh -k kernel-dtb jetson-tx2 mmcblk0p1”
  8. In the TX2, replace image at /boot

Any hint of how can I debug it?

Check below doc search the “Using the Main Platform Device Tree File”