Thank you 6by9 for the thorough answer!
I think I now understand the big picture of the I2C concept on the CM4.
One followup question:
You said enabling muxing on I20 while assigning GPIO44/45 to I2C1 should lead to an error and problems. Because I didn't know better until now, I did exactly that in my current setup. I am using two MIPI cameras, CAM0 on CSI0 and I2C0 (GPIO0/1) and CAM1 on CSI1 and I2C1 (GPIO44/45). In the DTOverlay for CAM0 I have enabled i2c0if and i2c0mux. In the DTOverlay for CAM2 I2C1 is assigned to GPIO44/45 using pinctrl-0 = <&i2c1_gpio44>. This setup does work fine and I can see no errors in the kernel log. Now I am a bit confused about this? Is there a chance this could work somehow?
In order to fix my setup, I tried to disable the I2C0 muxing in the DTOverlay for CAM0. Therefor, I disabled i2c0mux and added pinctrl-0 = <&i2c0_gpio0> to i2c0if. I would assume to see /dev/i2c-0 now, but I only see /dev/i2c-11. Am I doing something wrong?
Thank you,
Marc
I think I now understand the big picture of the I2C concept on the CM4.
One followup question:
You said enabling muxing on I20 while assigning GPIO44/45 to I2C1 should lead to an error and problems. Because I didn't know better until now, I did exactly that in my current setup. I am using two MIPI cameras, CAM0 on CSI0 and I2C0 (GPIO0/1) and CAM1 on CSI1 and I2C1 (GPIO44/45). In the DTOverlay for CAM0 I have enabled i2c0if and i2c0mux. In the DTOverlay for CAM2 I2C1 is assigned to GPIO44/45 using pinctrl-0 = <&i2c1_gpio44>. This setup does work fine and I can see no errors in the kernel log. Now I am a bit confused about this? Is there a chance this could work somehow?
In order to fix my setup, I tried to disable the I2C0 muxing in the DTOverlay for CAM0. Therefor, I disabled i2c0mux and added pinctrl-0 = <&i2c0_gpio0> to i2c0if. I would assume to see /dev/i2c-0 now, but I only see /dev/i2c-11. Am I doing something wrong?
Thank you,
Marc
Statistics: Posted by marcp — Thu Nov 21, 2024 10:00 am