diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-07-24 14:13:59 +0200 |
---|---|---|
committer | Jean Delvare <khali@endymion.delvare> | 2012-07-24 14:13:59 +0200 |
commit | fb604a3d58b79ef722942f664f11dee5e1f73ea4 (patch) | |
tree | f9e1f081d7c1b4f16e3274ce20e8574e1c18d04a /drivers/i2c/busses/i2c-omap.c | |
parent | i2c: Fall back to emulated SMBus if the operation isn't supported natively (diff) | |
download | linux-fb604a3d58b79ef722942f664f11dee5e1f73ea4.tar.xz linux-fb604a3d58b79ef722942f664f11dee5e1f73ea4.zip |
i2c-omap: Add support for I2C_M_STOP message flag
Generate a stop condition after each message marked with I2C_M_STOP.
[JD: Add I2C_FUNC_PROTOCOL_MANGLING.]
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to '')
-rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 801df6000e9b..c2148332de0f 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c @@ -545,6 +545,8 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap, if (dev->speed > 400) w |= OMAP_I2C_CON_OPMODE_HS; + if (msg->flags & I2C_M_STOP) + stop = 1; if (msg->flags & I2C_M_TEN) w |= OMAP_I2C_CON_XA; if (!(msg->flags & I2C_M_RD)) @@ -658,7 +660,8 @@ out: static u32 omap_i2c_func(struct i2c_adapter *adap) { - return I2C_FUNC_I2C | (I2C_FUNC_SMBUS_EMUL & ~I2C_FUNC_SMBUS_QUICK); + return I2C_FUNC_I2C | (I2C_FUNC_SMBUS_EMUL & ~I2C_FUNC_SMBUS_QUICK) | + I2C_FUNC_PROTOCOL_MANGLING; } static inline void |