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