I am working on a CM3 project using the IMX9 camera sensor. The sensor is connected to the CM3 i2c0 via something similar to an i2c extender. I can boot the system, set up the registers on the extender from userspace and see the camera on the i2c0 bus at 0x10.
The software driver, however, does not detect the camera. I know from viewtopic.php?f=98&t=174347, that detection apparently occurs once at boot. So, how can I write to some i2c registers before the camera detection occurs so that the camera is visible when the driver loads?
Has anyone had a similar problem or can anyone suggest an approach?
- My current thought is to setup U-Boot and try to drive the i2c from there, but I'm not sure if U-Boot has access to a compatible i2c driver (or maybe just bitbang as GPIOs?). I have mainline U-Boot booting on the board and loading the kernel but I'm just starting to dive into the i2c part.
- Is there any way to force the camera driver to "re-detect" any connected cameras?
- Any suggestions on when the camera detection occurs that would give me a chance to run some code in the kernel (to write to an i2c address) beforehand?
Thank you for your help.