mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
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
This commit is contained in:
commit
42fe55ce90
10 changed files with 51 additions and 14 deletions
|
|
@ -18,9 +18,9 @@ For the most up-to-date list of functionality constants, please check
|
|||
adapters typically can not do these)
|
||||
I2C_FUNC_10BIT_ADDR Handles the 10-bit address extensions
|
||||
I2C_FUNC_PROTOCOL_MANGLING Knows about the I2C_M_IGNORE_NAK,
|
||||
I2C_M_REV_DIR_ADDR, I2C_M_NOSTART and
|
||||
I2C_M_NO_RD_ACK flags (which modify the
|
||||
I2C protocol!)
|
||||
I2C_M_REV_DIR_ADDR and I2C_M_NO_RD_ACK
|
||||
flags (which modify the I2C protocol!)
|
||||
I2C_FUNC_NOSTART Can skip repeated start sequence
|
||||
I2C_FUNC_SMBUS_QUICK Handles the SMBus write_quick command
|
||||
I2C_FUNC_SMBUS_READ_BYTE Handles the SMBus read_byte command
|
||||
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:
|
|||
emulated by a real I2C adapter (using
|
||||
the transparent emulation layer)
|
||||
|
||||
In kernel versions prior to 3.5 I2C_FUNC_NOSTART was implemented as
|
||||
part of I2C_FUNC_PROTOCOL_MANGLING.
|
||||
|
||||
|
||||
ADAPTER IMPLEMENTATION
|
||||
----------------------
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue