Hi Everyone,
Disclaimer:
I have searched this topic quite a lot and have not yet found a solution however a number of people asking so I might also be missing something in other posts.
I am currently adapting a camera driver for a custom carrier board which will have 4 cameras.
In order to do that we want to use the I2C MUX as it is suggested in the camera dev guide.
The hardware seems alright and all contacts seem to be made accordingly.
Installed is the standard Image as found on the Nvidia website (JP v32.5) no kernel or device tree customizations (yet, we can do that if needed)
The driver is similar to the driver found in “tegra194-camer-jakku-rbpcv2-imx219.dtsi”
Given was:
mux-gpios = <&tegra_aon_gpio CAM_I2C_MUX GPIO_ACTIVE_HIGH>;
I changed this too:
mux-gpios = <&tegra_main_gpio TEGRA194_MAIN_GPIO(Q, 1) GPIO_ACTIVE_HIGH &tegra_main_gpio TEGRA194_MAIN_GPIO(Q, 6) GPIO_ACTIVE_HIGH>;
(other config changes like port changes, adding camera configs, etc have also been done but I cant provide you the full file)
This is due to the fact that the GPIOs connected to the MUX Chips (a TS3A507) are pin no 212 and 216 respectively.
Unfortunately this dosent seem to work.
Only one camera can be adressed and it is the camera that would be addressed if the GPIOs wouldn’t be set all together.
Checking with oscilloscope I can see them being set at some times however they dont seem to check every cam.
Pattern is LOW LOW → HIGH HIGH → LOW LOW
I’d atleast expect it to detect two cameras at this point, but it just dosent, also checking the I2C on the board with an oscilloscope I can see that it only attempts to speak to one camera, all other I2Cs are never used.
I have the following ideas what the problem could be:
- Kernel Device Tree needs to be customized, if so, I’d need some instructions
- I am not configuring the two GPIOs correctly in the dts (like delimiter missing etc.), if so, I’d need some instructions and am also very confused why the driver compiles to begin with
- One or more of the GPIOs is already in use by something else, if so, I assume 1. applies
- Something else, if so, please explain what you think it could be.
Thank you very much for your help!
I am happy to provide snippets of the .dts and other information if needed!