Repository navigation
dts: sigmastar: infinity6e: set i2c2 padmux to 4 (PAD 44/45) for lens motor driver - #52
Conversation
PR Summary by QodoFix Infinity6e I2C2 pad routing for lens motor controllers
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
|
🔗 Related Userspace Motor Driver PR: OpenIPC/motors#14 (Provides the Ruimeng MS32006 motorized varifocal lens driver with RIU hardware un-gating and 0mA coil sleep). |
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can reply 'qodo' on any finding to push back, ask questions, or dig deeper |
openipc-ai
left a comment
There was a problem hiding this comment.
Thanks for tracking this down. The problem is where the change lives: infinity6e.dtsi is included by every infinity6e board, so this moves i2c2 from PAD_SR1_IO18/19 to the new pads on all of them, including boards that have nothing to do with this lens driver. Any board that uses i2c2 on the current pads would lose that bus, and those pads could also be in use for something else on other boards.
Could this be an override for your board instead, leaving the dtsi default alone? Board files already do this: infinity6e-ssc012b-s01a.dts sets its own i2c-padmux for i2c0. If your camera has no board DTS of its own yet, adding one is probably the cleanest route.
One thing to confirm as well: the dtsi lists mux 4 as PAD_PM_I2CM_SCL / PAD_PM_I2CM_SDA, while this PR calls them PAD 44/45. Are those the same pads? Your i2cdetect result shows mux 4 works on your board, so it would just be good to record the mapping in the commit message.
📝 Description
On SigmaStar SSC338Q / Infinity6e IP cameras equipped with motorized varifocal lenses (e.g. Ruimeng MS32006 on
/dev/i2c-2), the I2C2 lines are physically routed to PAD 44 (SCL) and PAD 45 (SDA).In
arch/arm/boot/dts/infinity6e.dtsi,i2c2was configured withi2c-padmux = <1>, causing all I2C transactions to the lens driver to timeout (ETIMEDOUT 110).Change:
Verification:
2.6.08.28).i2cdetect -y -r 2immediately detects the MS32006 motor controller at address0x10.