How to probe for pca954x multiplexers on a i2c-ocores bus?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux