[lm-sensors] [PATCH] i2c multiplexer driver for Proliant microserver N36L

Eddi De Pieri eddi at depieri.net
Wed Dec 7 15:57:29 CET 2011


On Tue, Dec 6, 2011 at 9:39 AM, Jean Delvare <khali at linux-fr.org> wrote:

> The SMBus multiplexing as it exists on the SB800 is very
> different from what was implemented for the Tyan S4882 and S4985 boards.

Well...
- the Tyan use PCA9556 to select the multiplexed bus...

- SB800 (and SB700) seems to select lines writing the port number
using a particolar protocol.

> In fact, now that I have a SB800 datasheet, I better understand what
> you were doing and how it should be implemented.

> I don't even think you
> need the multiplexer framework for the SB800.

Are you sure?

SB7/8xx has two i2c bus smbus(0) should be accessible to the user
smbus(1) should be reserved to the chipset

> it has 4 almost independent SMBus ports.

smbus(0) may be connected to different physical port.... but each port
may be routed by the OEM to different function... so these port aren't
really independent.

how to probe this? perhaps by reading DMI?

> 1* Turn piix4_adapter to an array, so that it can hold up to 4
>   i2c_adapter structures.
> 2* Add a mutex to prevent concurrent access to the register set. It
>   should be initialized in piix4_setup_sb800(), taken at the very
>   beginning of piix4_access() and released at the very end of this
>   function.
> 3* Add support for ports 1, 2 and 3 of the SB800.

I tried to apply your suggestion... but... I don't really have the
knowledges to do what you wrote...

I need your help :(

Regards

Eddi




More information about the lm-sensors mailing list