linux/drivers/i2c
Rajendra Nayak ef871432e1 i2c-omap: OMAP3: PM: (re)init for every transfer to support off-mode
Because of OMAP off-mode, powerdomain can go off when I2C is idle.
Save enough state, and do a re-init for each transfer.

Additional save/restore state added by Jagadeesh Bhaskar Pakaravoor
(SYSC_REG) and Aaro Koskinen (wakeup sources.)

Also, The OMAP3430 TRM states:

"During active mode (I2Ci.I2C_CON[15] I2C_EN bit is set to 1), make no
changes to the I2Ci.I2C_SCLL and I2Ci.I2C_SCLH registers.  Changes may
result in unpredictable behavior."

Hence, the I2C_EN bit should be clearer when modifying these
registers. Please note that clearing the entire I2C_CON register to
disable the I2C module is safe, because the I2C_CON register is
re-configured for each transfer.

Signed-off-by: Jouni Hogander <jouni.hogander@nokia.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Jagadeesh Bhaskar Pakaravoor <j-pakaravoor@ti.com>
Cc: Aaro Koskinen <aaro.koskinen@nokia.com>
Cc: Jon Hunter <jon-hunter@ti.com>
Cc: Hu Tao <taohu@motorola.com>
Cc: Xiaolong Chen <A21785@motorola.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09 00:19:13 +00:00
..
algos i2c-algo-pca: Let PCA9564 recover from unacked data byte (state 0x30) 2009-05-05 08:39:25 +02:00
busses i2c-omap: OMAP3: PM: (re)init for every transfer to support off-mode 2009-12-09 00:19:13 +00:00
chips i2c/chips: Move ds1682 to drivers/misc 2009-12-06 17:06:16 +01:00
i2c-boardinfo.c i2c: Use rwsem instead of mutex for board info 2009-06-19 16:58:20 +02:00
i2c-core.c i2c: Refactor for_each callbacks 2009-12-06 17:06:27 +01:00
i2c-core.h i2c: Use rwsem instead of mutex for board info 2009-06-19 16:58:20 +02:00
i2c-dev.c i2c: Remove big kernel lock from i2cdev_open 2009-12-06 17:06:26 +01:00
Kconfig i2c: Prevent priority inversion on top of bus lock 2009-12-06 17:06:22 +01:00
Makefile i2c: Add i2c_board_info and i2c_new_device() 2007-05-01 23:26:31 +02:00