As I expected, my crude diagram came out all messed up. Here's a simplified representation: uP -> i2c-ocores -> PCIe -> FPGA -> PCA954x -> i2c buses Martin Belanger Sr. Software Engineer 1383 North McDowell Blvd. Petaluma, CA 94954 M(707) 481-3392 Emartin.belanger@xxxxxxxxxxx www.cyaninc.com On Fri, Nov 14, 2014 at 2:34 PM, Martin Belanger <martin.belanger@xxxxxxxxxxx> wrote: > We're in the process of developing a new hardware platform. It's built > around a COM-Express motherboard. There will be four hot-pluggable > PCIe cards. The pluggable cards have an FPGA that provides PCIe > connectivity with the motherboard. We're planning to use the > OpenCores I2C controller combined with the i2c-ocores kernel driver > (Documentation/i2c/busses/i2c-ocores) to provide one or more i2c buses > out of the FPGA as shown in the crude diagram below. > > There will be several variations of the pluggable cards. At this time > we don't know exactly how different these cards will be, but suffice > to say that some cards will have PCA954x i2c multiplexers hanging off > the i2c-ocores bus, and others may not have PCA954x muxes at all. It > would be nice if the PCA954x i2c mux buses could get enumerated > automatically by probing. I'm not sure how to make this work however. > > I read the i2c documentation, "instantiating-devices" and > "writing-clients", but it is still not clear to me how to do this. In > "instantiating-devices", "Method 3: Probe an I2C bus for certain > devices" seems to be the way to go, but I'm still not sure how the > pca954x driver will get instantiated for each of the PCA954x > multiplexers. > > Is what I'm describing possible? Is there any code I can look at to > get an idea of how to do this? > > +-----------------+ > +------------------------------------------------------------------+ > | | | Pluggable > | > | | | +---------+ > | > | | | | | > +--------+ | > | | | +------+ | +---+ > Device | +---------+ | > | | | | | | | > +--------+ | +---- ... | > | | | | +---I2C---+ pca954x | > | | | > | | | | | | > +----------------+ pca954x +---- ... | > | | | | | | | > +--------+ | | | > | | | | | | +---+ > Device | | +---- ... | > | Motherboard +---PCIe---+--+ FPGA | +---------+ > +--------+ +---------+ | > | | | | | > | > | | | | | > +--------+ | > | | | | +---I2C---------+-------+ > Device | | > | | | | | | > +--------+ | > | | | +------+ | > +--------+ | > | | | +-------+ > Device | | > | | | > +--------+ | > +-----------------+ > +------------------------------------------------------------------+ > > Thanks, > Martin Belanger -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html