'virtual I2c adapter' driver

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

 



Yes this does sound good. We have heard of this type of multiplexing before.
As Greg said, if you have a 2.6-compatible patch it can go into the kernel;
If you have a 2.4-compatible patch see doc/developers/new_drivers in
the sensors package and send it to this mailing list.

thanks
mds



Brian Kuschak wrote:
> Hello,
> 
> I work for an networking storage company, supporting
> linux for our custom embedded hardware.  My company
> makes extensive use of the I2C bus in our products. 
> Some of these product are chassis/blade based and as a
> result many times a given I2C bus is multiplexed into
> several bus segments to prevent address conflicts when
> many I2C devices exist with the same address.  Some
> muxes are I2C based, some based on GPIO lines or
> CPLDs, etc.  
> 
> In my experience this is a common hardware solution,
> but it is difficult to fit into the existing i2c
> driver implementation.
> 
> I wanted to design a nice architecture to handle these
> bus multiplexors in the most transparent and simple
> way possible.  My solution was to create a new i2c
> adapter driver (i2c-virtual.c) which registers a new
> i2c adapter/bus for each multiplexed bus segment. 
> This virtual adapter then makes calls to the real i2c
> adapter to select the mux, perform the transfer, and
> deselect again.  Locking of the buses is handled.  The
> code also prevents "aliasing" of the same I2C device
> onto multiple virtual I2C buses, putting all
> non-multiplexed devices on the real bus, and only
> multiplexed devices on the virtual busses.
> 
> The result is that all the existing i2c client drivers
> and sensor drivers work with this multiplexed hardware
> without any changes, just by scanning the additional
> buses.
> 
> If anyone from this your group is interested in
> reviewing or integrating this code into the official
> sources, please let me know and I'll send a patch.
> 
> BTW, do you have a mailing list?  I couldn't find one.
> 
> Best regards,
> 
> Brian Kuschak
> Brocade Communications Sys.
> 
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free, easy-to-use web site design software
> http://sitebuilder.yahoo.com
> 



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux