Manjunatha GK 57eb81b14e 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 <manjugk@ti.com>
Signed-off-by: George, Harith<harith@ti.com>
Acked-by: Varadarajan, Charu Latha<charu@ti.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-24 01:30:54 +00:00
..
2009-06-16 22:42:16 +01:00
2009-06-16 22:42:16 +01:00
2009-07-15 00:03:56 +01:00
2009-06-16 22:42:16 +01:00
2009-12-06 17:06:27 +01:00
2008-01-27 18:14:45 +01:00
2009-05-05 08:39:24 +02:00
2009-06-16 22:42:16 +01:00
2009-06-16 22:42:16 +01:00
2009-12-15 08:53:25 -08:00
2009-04-07 10:23:34 +01:00
2009-04-07 10:23:34 +01:00
2009-07-15 00:03:56 +01:00
2008-04-11 12:07:05 +02:00
2009-06-16 22:42:16 +01:00
2009-01-26 21:19:52 +01:00
2009-12-06 17:06:21 +01:00
2009-12-06 17:06:21 +01:00