On 07/02/2018 01:24 PM, Wolfram Sang wrote:
+ if (msg->flags & I2C_M_RD)
+ cmd |= I2C_CMD_READ;
Since you support MANGLING, I'd think you can easily support
I2C_M_REV_DIR_ADDR here, too?
Hm, I don't really understand the purpose of that flag. From the docs:
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.
I'd think something like this should do:
if (msg->flags & I2C_M_REV_DIR_ADDR)
cmd ^= I2C_CMD_READ;
I meant that the hardware cannot interpret this, it would be a
meaningless command unfortunately.