> I'm currently writing a driver for a cheap usb-to-i2c master device, which 
> unfortunately can only write 31 bytes (+slave addr) and read 32 bytes.

Which one?

> What is the correct behavior if a user requests larger read/writes?
> Simply set i2c_msg.len to the bytes transmitted?

No!

> Or should the master try to split up the requests?

If you have control over sending start/stop bits, you could omit the
stop condition unless you transfered all of the 32 byte chunks and issue
the stop at the end.

If you can't, don't advertise I2C_FUNC_I2C, but SMBUS functions (without
the block functions again). That will work for most devices.

Hope that helps,

   Wolfram

Attachment: signature.asc
Description: Digital signature

Reply via email to