Skip to content

dts: sigmastar: infinity6e: set i2c2 padmux to 4 (PAD 44/45) for lens motor driver - #52

Open
miguelangel-nubla wants to merge 1 commit into
OpenIPC:sigmastar-infinity6efrom
miguelangel-nubla:feat/infinity6e-i2c2-padmux4
Open

dts: sigmastar: infinity6e: set i2c2 padmux to 4 (PAD 44/45) for lens motor driver#52
miguelangel-nubla wants to merge 1 commit into
OpenIPC:sigmastar-infinity6efrom
miguelangel-nubla:feat/infinity6e-i2c2-padmux4

Conversation

@miguelangel-nubla

Copy link
Copy Markdown

📝 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, i2c2 was configured with i2c-padmux = <1>, causing all I2C transactions to the lens driver to timeout (ETIMEDOUT 110).

Change:

--- a/arch/arm/boot/dts/infinity6e.dtsi
+++ b/arch/arm/boot/dts/infinity6e.dtsi
@@ -453,7 +453,7 @@
              *         4 -> PAD_PM_I2CM_SCL, PAD_PM_I2CM_SDA
              *         5 -> PAD_PM_GPIO0, PAD_PM_GPIO1
             */
-            i2c-padmux = <1>;
+            i2c-padmux = <4>;
             interrupts=<GIC_SPI INT_IRQ_MIIC_2 IRQ_TYPE_LEVEL_HIGH>;
             status = "ok";
         };

Verification:

  • Tested and verified on SigmaStar SSC338Q hardware running OpenIPC Lite and OpenIPC Ultimate (2.6.08.28).
  • i2cdetect -y -r 2 immediately detects the MS32006 motor controller at address 0x10.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Fix Infinity6e I2C2 pad routing for lens motor controllers

🐞 Bug fix ⚙️ Configuration changes 🕐 Less than 10 minutes

Grey Divider

AI Description

• Routes Infinity6e I2C2 through padmux 4 for PAD 44/45 wiring.
• Restores lens motor communication and prevents I2C transaction timeouts.
Diagram

graph TD
  DTS["Infinity6e DTS"] --> I2C["I2C2 Controller"] --> Pads["Pads 44/45"] --> Motor["Lens Motor"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Override padmux per board DTS
  • ➕ Avoids changing I2C2 routing for every board including infinity6e.dtsi
  • ➕ Supports Infinity6e designs wired to other pad groups
  • ➖ Duplicates configuration across affected camera board definitions
  • ➖ Requires reliable mapping of each board's physical I2C2 routing

Recommendation: Keep the shared padmux change if PAD 44/45 is the intended I2C2 route across supported Infinity6e targets. Because many board files include this common DTSI, confirm none require selector 1; otherwise, move the selector to board-specific overrides.

Files changed (1) +1 / -1

Bug fix (1) +1 / -1
infinity6e.dtsiRoute I2C2 through PAD 44/45 +1/-1

Route I2C2 through PAD 44/45

• Changes the Infinity6e I2C2 padmux selector from 1 to 4, matching the physical PAD 44 SCL and PAD 45 SDA wiring. This restores communication with lens motor controllers on /dev/i2c-2.

arch/arm/boot/dts/infinity6e.dtsi

@miguelangel-nubla

Copy link
Copy Markdown
Author

🔗 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).

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can reply 'qodo' on any finding to push back, ask questions, or dig deeper

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant