No, I didn’t change CSI/VI mode names in device tree. This way I won’t make mistakes on the port binding. And the sensor driver name still the same as imx219. I have verified the port binding is correct and the device can be detected at probe. Also, captured raw images after boost all the clocks.
I have tried to change the value of pix_clk_hz and discontinuous_clk. One camera channel is working by setting pix_clk_hz = 180000000, and discontinuous_clk = “no”. Thank you for your help to make this happen.
Yet I still observed two issues:
camera module has to be reloaded or the clocks has to be boosted, every time after rebooting the system. How to make it work without reloading the module?
Given that one camera channel is working, where should I look into to make the second camera channel working?
Q1
A loadable kernel module (LKM) is a mechanism for adding code to, or removing code from, the Linux kernel at run time. you could configure the makefile as CONFIG_VIDEO <camera>=y, so that sensor driver will built in with kernel image.
please also check Device Registration session, please register your new device by updating the main platform device tree sources to include your camera device.
Q2
are they identical camera? if yes, please check the port binding, you should enable both of them with correct configurations.
It turned out that the configuration of tegra_sinterface was not right. With new fix the two camera channels can stream live video now. Thank you very much for your support!