imx185_probe is not invoked during boot

I want to develop a driver for a camera with the MIPI interface. I follow the guide in https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-282/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fcamera_sensor_prog.html%23
Since this camera does not have onboard EEPROM, I have to use the main platform device tree file. I delete the line “#include “jetson-plugin-manager/tegra210-jetson-cv-camera-plugin-manager.dtsi”” in the file tegra210-jetson-cv-base-p2597-2180-a00.dts, and change the status from “disabled” to “okay” in the file tegra210-jetson-cv-camera-modules.dtsi. Then I add a line in the function imx185_probe()
printk(KERN_INFO “LT8918: imx185_probe.\n”);
However, after TX1 is booted, I do not get "“LT8918: imx185_probe” when using dmesg.

I have checked the following issues:
(1) The device tree file.
I download the file /boot/tegra210-jetson-cv-base-p2597-2180-a00.dtb from TX1, decompile it into inverse.dts. The related section in inverse.dts is

imx185_a@1a {
compatible = “nvidia,imx185”;
reg = <0x1a>;
physical_w = “15.0”;
physical_h = “12.5”;
sensor_model = “imx185”;
post_crop_frame_drop = [30 00];
use_decibel_gain = “true”;
delayed_gain = “true”;
use_sensor_mode_id = “true”;
clocks = <0x41 0x117>;
clock-names = “clk_out_3”;
clock-frequency = <0x16e3600>;
mclk = “clk_out_3”;
reset-gpios = <0x78 0x94 0x0>;
status = “okay”;

	mode0 {
		...
	};
	...
	mode4 {
		...
	};
	ports {
		...
	};

}
(2) The modification in imx185.c.
To make sure that the modification in imx185.c is compiled into the kernel, I add a test function before the function imx185_probe(),
int LT8918_in_imx185(void)
{
printk(KERN_INFO “LT8918: LT8918_in_imx185.\n”);
return 1;
}
then I call this test function in another file. After TX1 is booted, I get "“LT8918: LT8918_in_imx185” when using dmesg.

I don’t know why the imx185_probe() is not invoked. Could you help me please?

Thanks!

Make sure your device is connect to the bus or i2c-mux like below case.

i2c@546c0000 {
 			tca9546@70 {
 				i2c@0 {
				imx185_a@1a {
 					compatible = "nvidia,imx185";
 					reg = <0x1a>;
 
 					/* Physical dimensions of sensor */
 					physical_w = "15.0";
 					physical_h = "12.5";
 
 					sensor_model ="imx185";
 					/* Define any required hw resources needed by driver */
 					/* ie. clocks, io pins, power sources */

I modify the device tree and connect imx185 to i2c@7000c500, then the function imx185_probe() is invoked correctly.