| | 47 | |
|---|
| | 48 | |
|---|
| | 49 | Modified transactions |
|---|
| | 50 | ===================== |
|---|
| | 51 | |
|---|
| | 52 | We have found some I2C devices that needs the following modifications: |
|---|
| | 53 | |
|---|
| | 54 | Flag I2C_M_NOSTART: |
|---|
| | 55 | In a combined transaction, no 'S Addr' is generated at some point. |
|---|
| | 56 | For example, setting I2C_M_NOSTART on the second partial message |
|---|
| | 57 | generateds something like: |
|---|
| | 58 | S Addr Rd [A] [Data] NA Wr [A] Data [A] P |
|---|
| | 59 | If you set the I2C_M_NOSTART variable for the first partial message, |
|---|
| | 60 | we do not generate Addr, but we do generate the startbit S. This will |
|---|
| | 61 | probably confuse all other clients on your bus, so don't try this. |
|---|
| | 62 | |
|---|
| | 63 | Flags I2C_M_REV_DIR_ADDR |
|---|
| | 64 | This toggles the Rd/Wr flag. That is, if you want to do a write, but |
|---|
| | 65 | need to emit an Rd instead of a Wr, or vice versa, you set this |
|---|
| | 66 | flag. For example: |
|---|
| | 67 | S Addr Rd [A] Data [A] Data [A] ... [A] Data [A] P |
|---|
| | 68 | |
|---|