[lm-sensors] Re: I2C block reads with i2c-viapro: testers wanted

Krzysztof Halasa khc at pm.waw.pl
Thu Aug 11 23:39:45 CEST 2005

Jean Delvare <khali at linux-fr.org> writes:

> However,
> EEPROMs are also often found on SMBus busses, those controller only
> implement a subset of all possible I2C commands.

You mean one can't drive clock and data lines at will, and the controller
(some hardware) does it instead, based on commands received from the
program (and, for example, the program interface is parallel, not 2-wire
serial). Right?

But wait, even then does the controller really know anything about
I^2C commands? How would it differentiate between, say, 8-bit and
16-bit reads? Or is it just an 8-bit EEPROM bus?

Does it do START and STOP automatically as well?

> [1] Due to an internal limitation in the Linux kernel, the maximum block
> size that can be read is actually 32 bytes, so several block reads are
> needed to retrieve larger chunks of data.

BTW: Some devices can't output all their contents in one transaction (or
with continuous byte/word read) - they are limited to one bank.
If you want to access another bank, you have to select it first.
But I think you know things like that better than me.
Krzysztof Halasa

More information about the lm-sensors mailing list