]> Git Repo - linux.git/commit
i2c-omap: OMAP3: Fix I2C lockup during timeout/error cases
authorManjunatha GK <[email protected]>
Fri, 11 Dec 2009 05:39:08 +0000 (11:09 +0530)
committerBen Dooks <[email protected]>
Thu, 24 Dec 2009 01:30:54 +0000 (01:30 +0000)
commit57eb81b14e35a14df64ac3597bc90c26ce04a9b4
treedcc3893c4a65872428b38f773c3de0ad2d215474
parent07ac31f6f4cd558e53f6705dbe3033a7f0237eb8
i2c-omap: OMAP3: Fix I2C lockup during timeout/error cases

Current OMAP3 I2C driver code does not follow the correct sequence for soft
reset. Due to this, lock up issues are reported during timeout/error cases.

This patch fixes above issue by disabling I2C controller as per OMAP3430 TRM
for soft reset. As per TRM, I2C controller needs to be disabled as a first
step during soft reset.

Here is correct soft reset sequence:
a. Ensure that the module is disabled
(clear the I2Ci.I2C_CON[15] I2C_EN bit to 0).
b. Set the I2Ci.I2C_SYSC[1] SRST bit to 1.
c. Enable the module by setting I2Ci.I2C_CON[15] I2C_EN bit to 1.
d. Check the I2Ci.I2C_SYSS[0] RDONE bit until it is set to 1 to
indicate the software reset is complete.

Tested on Zoom2, Zoom3, 3430SDP and 3630SDP

Signed-off-by: Manjunatha GK <[email protected]>
Signed-off-by: George, Harith<[email protected]>
Acked-by: Varadarajan, Charu Latha<[email protected]>
Signed-off-by: Ben Dooks <[email protected]>
drivers/i2c/busses/i2c-omap.c
This page took 0.053471 seconds and 4 git commands to generate.