diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-30 13:03:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-30 13:03:46 -0400 |
commit | 42fe55ce905212542426fa6407a76534a5fb696a (patch) | |
tree | 874c5984e4222ea253b78c5be4755b3d31da54e2 /Documentation | |
parent | 19ce0a995ff230b364c7329fd488c70e91c171d9 (diff) | |
parent | 14674e70119ea01549ce593d8901a797f8a90f74 (diff) |
Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
Pull i2c updates from Jean Delvare.
* 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING
i2c-dev: Add support for I2C_M_RECV_LEN
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/i2c/functionality | 9 | ||||
-rw-r--r-- | Documentation/i2c/i2c-protocol | 9 |
2 files changed, 14 insertions, 4 deletions
diff --git a/Documentation/i2c/functionality b/Documentation/i2c/functionality index 42c17c1fb3cd..b0ff2ab596ce 100644 --- a/Documentation/i2c/functionality +++ b/Documentation/i2c/functionality | |||
@@ -18,9 +18,9 @@ For the most up-to-date list of functionality constants, please check | |||
18 | adapters typically can not do these) | 18 | adapters typically can not do these) |
19 | I2C_FUNC_10BIT_ADDR Handles the 10-bit address extensions | 19 | I2C_FUNC_10BIT_ADDR Handles the 10-bit address extensions |
20 | I2C_FUNC_PROTOCOL_MANGLING Knows about the I2C_M_IGNORE_NAK, | 20 | I2C_FUNC_PROTOCOL_MANGLING Knows about the I2C_M_IGNORE_NAK, |
21 | I2C_M_REV_DIR_ADDR, I2C_M_NOSTART and | 21 | I2C_M_REV_DIR_ADDR and I2C_M_NO_RD_ACK |
22 | I2C_M_NO_RD_ACK flags (which modify the | 22 | flags (which modify the I2C protocol!) |
23 | I2C protocol!) | 23 | I2C_FUNC_NOSTART Can skip repeated start sequence |
24 | I2C_FUNC_SMBUS_QUICK Handles the SMBus write_quick command | 24 | I2C_FUNC_SMBUS_QUICK Handles the SMBus write_quick command |
25 | I2C_FUNC_SMBUS_READ_BYTE Handles the SMBus read_byte command | 25 | I2C_FUNC_SMBUS_READ_BYTE Handles the SMBus read_byte command |
26 | I2C_FUNC_SMBUS_WRITE_BYTE Handles the SMBus write_byte command | 26 | I2C_FUNC_SMBUS_WRITE_BYTE Handles the SMBus write_byte command |
@@ -50,6 +50,9 @@ A few combinations of the above flags are also defined for your convenience: | |||
50 | emulated by a real I2C adapter (using | 50 | emulated by a real I2C adapter (using |
51 | the transparent emulation layer) | 51 | the transparent emulation layer) |
52 | 52 | ||
53 | In kernel versions prior to 3.5 I2C_FUNC_NOSTART was implemented as | ||
54 | part of I2C_FUNC_PROTOCOL_MANGLING. | ||
55 | |||
53 | 56 | ||
54 | ADAPTER IMPLEMENTATION | 57 | ADAPTER IMPLEMENTATION |
55 | ---------------------- | 58 | ---------------------- |
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: | |||
49 | Modified transactions | 49 | Modified transactions |
50 | ===================== | 50 | ===================== |
51 | 51 | ||
52 | We have found some I2C devices that needs the following modifications: | 52 | The following modifications to the I2C protocol can also be generated, |
53 | with the exception of I2C_M_NOSTART these are usually only needed to | ||
54 | work around device issues: | ||
53 | 55 | ||
54 | Flag I2C_M_NOSTART: | 56 | Flag I2C_M_NOSTART: |
55 | In a combined transaction, no 'S Addr Wr/Rd [A]' is generated at some | 57 | 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: | |||
60 | we do not generate Addr, but we do generate the startbit S. This will | 62 | 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. | 63 | probably confuse all other clients on your bus, so don't try this. |
62 | 64 | ||
65 | This is often used to gather transmits from multiple data buffers in | ||
66 | system memory into something that appears as a single transfer to the | ||
67 | I2C device but may also be used between direction changes by some | ||
68 | rare devices. | ||
69 | |||
63 | Flags I2C_M_REV_DIR_ADDR | 70 | Flags I2C_M_REV_DIR_ADDR |
64 | This toggles the Rd/Wr flag. That is, if you want to do a write, but | 71 | 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 | 72 | need to emit an Rd instead of a Wr, or vice versa, you set this |