Configuring device with I2C mux

Alex Qiu xqiu at
Wed Jan 8 12:13:33 AEDT 2020

Hi folks,

We have a JSON file configuring I2C devices of a PCIe card which has an
8-channel I2C mux for entity-manager. After we properly configure the mux
of the card, we get 8 new I2C buses in sysfs; however, we don't find an
arithmetic way to describe the relationship between the new buses and their
parent buses.

For example, we have a mux on physical BMC I2C bus i2c-8 spawning a couple
of child buses including i2c-24 and i2c-26, which are the buses for each
PCIe card. The mux on i2c-24 PCIe card spawned 8 buses from i2c-70 to
i2c-77, and the mux on i2c-26 PCIe card spawned ones from i2c-62 to i2c-69.
We have I2C devices on i2c-76 and i2c-68 needs to be configured together
with the PCIe card on i2c-24 and i2c-26 separately.

How do we implement this in the JSON file? If that's not possible to do it
in JSON merely, what's the suggested approach to implement this feature?
Device tree? Implement code in entity-manager to walk through the I2C sysfs?

Thank you!

- Alex Qiu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the openbmc mailing list