diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-05-30 10:55:34 +0200 |
---|---|---|
committer | Jean Delvare <khali@endymion.delvare> | 2012-05-30 10:55:34 +0200 |
commit | 14674e70119ea01549ce593d8901a797f8a90f74 (patch) | |
tree | 15474236bfa505aa396bf2892cbbee65e842b94b /Documentation/i2c/i2c-protocol | |
parent | 838bfa6049fb84dc66c9c9bbeb3a968ec987fd3d (diff) | |
download | lwn-14674e70119ea01549ce593d8901a797f8a90f74.tar.gz lwn-14674e70119ea01549ce593d8901a797f8a90f74.zip |
i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING
Since there are uses for I2C_M_NOSTART which are much more sensible and
standard than most of the protocol mangling functionality (the main one
being gather writes to devices where something like a register address
needs to be inserted before a block of data) create a new I2C_FUNC_NOSTART
for this feature and update all the users to use it.
Also strengthen the disrecommendation of the protocol mangling while we're
at it.
In the case of regmap-i2c we remove the requirement for mangling as
I2C_M_NOSTART is the only mangling feature which is being used.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'Documentation/i2c/i2c-protocol')
-rw-r--r-- | Documentation/i2c/i2c-protocol | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Documentation/i2c/i2c-protocol b/Documentation/i2c/i2c-protocol index 10518dd58814..0b3e62d1f77a 100644 --- a/Documentation/i2c/i2c-protocol +++ b/Documentation/i2c/i2c-protocol @@ -49,7 +49,9 @@ a byte read, followed by a byte write: Modified transactions ===================== -We have found some I2C devices that needs the following modifications: +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: Flag I2C_M_NOSTART: In a combined transaction, no 'S Addr Wr/Rd [A]' is generated at some @@ -60,6 +62,11 @@ We have found some I2C devices that needs the following modifications: we do not generate Addr, but we do generate the startbit S. This will probably confuse all other clients on your bus, so don't try this. + This is often used to gather transmits from multiple data buffers in + system memory into something that appears as a single transfer to the + I2C device but may also be used between direction changes by some + rare devices. + Flags 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 |