I'd think something like this should do:Hm, I don't really understand the purpose of that flag. From the docs:+ if (msg->flags & I2C_M_RD)Since you support MANGLING, I'd think you can easily support
+ cmd |= I2C_CMD_READ;
I2C_M_REV_DIR_ADDR here, too?
This toggles the Rd/Wr flag. That is, if you want to do a write, but
ÂÂÂ need to emit an Rd instead of a Wr, or vice versa, you set this
ÂÂÂ flag. For example:
S Addr Rd [A] Data [A] Data [A] ... [A] Data [A] P
I don't think our hardware supports this type of operation.
if (msg->flags & I2C_M_REV_DIR_ADDR)
cmd ^= I2C_CMD_READ;