forked from luck/tmp_suning_uos_patched
Documentation: i2c: improve section about flags mangling the protocol
Sort the entries alphabetically. Make the introductory paragraph more precise. Skip useless 'Flag' introduction from the entries. Remove trailing white spaces from the file. Add missing I2C_M_STOP entry. Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
cf23e33588
commit
9f02fba84b
|
@ -6,8 +6,8 @@ Key to symbols
|
|||
S (1 bit) : Start bit
|
||||
P (1 bit) : Stop bit
|
||||
Rd/Wr (1 bit) : Read/Write bit. Rd equals 1, Wr equals 0.
|
||||
A, NA (1 bit) : Accept and reverse accept bit.
|
||||
Addr (7 bits): I2C 7 bit address. Note that this can be expanded as usual to
|
||||
A, NA (1 bit) : Accept and reverse accept bit.
|
||||
Addr (7 bits): I2C 7 bit address. Note that this can be expanded as usual to
|
||||
get a 10 bit I2C address.
|
||||
Comm (8 bits): Command byte, a data byte which often selects a register on
|
||||
the device.
|
||||
|
@ -49,11 +49,20 @@ a byte read, followed by a byte write:
|
|||
Modified transactions
|
||||
=====================
|
||||
|
||||
The following modifications to the I2C protocol can also be generated,
|
||||
with the exception of I2C_M_NOSTART these are usually only needed to
|
||||
work around device issues:
|
||||
The following modifications to the I2C protocol can also be generated by
|
||||
setting these flags for i2c messages. With the exception of I2C_M_NOSTART, they
|
||||
are usually only needed to work around device issues:
|
||||
|
||||
Flag I2C_M_NOSTART:
|
||||
I2C_M_IGNORE_NAK:
|
||||
Normally message is interrupted immediately if there is [NA] from the
|
||||
client. Setting this flag treats any [NA] as [A], and all of
|
||||
message is sent.
|
||||
These messages may still fail to SCL lo->hi timeout.
|
||||
|
||||
I2C_M_NO_RD_ACK:
|
||||
In a read message, master A/NA bit is skipped.
|
||||
|
||||
I2C_M_NOSTART:
|
||||
In a combined transaction, no 'S Addr Wr/Rd [A]' is generated at some
|
||||
point. For example, setting I2C_M_NOSTART on the second partial message
|
||||
generates something like:
|
||||
|
@ -67,17 +76,13 @@ work around device issues:
|
|||
I2C device but may also be used between direction changes by some
|
||||
rare devices.
|
||||
|
||||
Flags I2C_M_REV_DIR_ADDR
|
||||
I2C_M_REV_DIR_ADDR:
|
||||
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
|
||||
|
||||
Flags I2C_M_IGNORE_NAK
|
||||
Normally message is interrupted immediately if there is [NA] from the
|
||||
client. Setting this flag treats any [NA] as [A], and all of
|
||||
message is sent.
|
||||
These messages may still fail to SCL lo->hi timeout.
|
||||
|
||||
Flags I2C_M_NO_RD_ACK
|
||||
In a read message, master A/NA bit is skipped.
|
||||
I2C_M_STOP:
|
||||
Force a stop condition (P) after the message. Some I2C related protocols
|
||||
like SCCB require that. Normally, you really don't want to get interrupted
|
||||
between the messages of one transfer.
|
||||
|
|
Loading…
Reference in New Issue
Block a user