Re: [PATCH] i2c multiplexer driver for Proliant microserver N36L

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

 



On Tue, Dec 6, 2011 at 9:39 AM, Jean Delvare <khali@xxxxxxxxxxxx> 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
--
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