Re: Intel ICHx bus driver

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

 



Hi Felix,

On Wed, 27 Jan 2010 19:56:02 +0200, Felix Rubinstein wrote:
> Running i2cdetect on ICH9 says:
> "I2C Block Write                  yes"
> 
> But having a closer look at how the whole thing is implemented proves
> that no i2c block write is supported.
>
> The proof:
> 1. i801_probe turns i801_features to FEATURE_I2C_BLOCK_READ

Yes it does, but this is totally unrelated to I2C block _writes_.

> 2. as a sequence in i801_block_transaction
> i801_block_transaction_byte_by_byte is called

No. Read the code again, for the ICH9, i801_block_transaction_by_block
is called, not i801_block_transaction_byte_by_byte.

> 3. on the other hand i801_block_transaction_byte_by_byte does
>    if (read_write == I2C_SMBUS_WRITE)
>               outb_p(len, SMBHSTDAT0);
> meaning SMBus length.

This is correct, and as a matter of fact,
i801_block_transaction_by_block does the same. And this is the right
thing to do: the SMBus controller must know how many bytes it must send
to the target slave.

> But what if I want to write I2C's multi-block (without length or even
> command before)?

I have no idea what you mean with "I2C's multi-block". Please be
specific.

> I cannot understand why i801_func turns on I2C_FUNC_SMBUS_WRITE_I2C_BLOCK?

Because it supports that transaction type. Why would you want it to not
advertise a transaction type it supports?

Please refer to Documentation/i2c/smbus-protocol for what exactly each
supported transaction type is doing at the wire level.

-- 
Jean Delvare
http://khali.linux-fr.org/wishlist.html
--
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