[PATCH v4] OMAP2/3: hwmod: fix the i2c-reset timeout during bootup
avinashhm at ti.com
Mon Jun 20 05:43:34 EDT 2011
On Sun, Jun 05, 2011 at 02:19:15PM +0530, Avinash.H.M. wrote:
> On Fri, May 20, 2011 at 09:16:24PM +0530, Avinash.H.M wrote:
> > The sequence of _ocp_softreset doesn't work for i2c. The i2c module has a
> > special sequence to reset the module. The sequence is
> > - Disable the I2C.
> > - Write to SOFTRESET bit.
> > - Enable the I2C.
> > - Poll on the RESETDONE bit.
> > The sequence is implemented as a function and the i2c_class is updated with
> > the correct 'reset' pointer. omap_hwmod_softreset function is implemented
> > which triggers the softreset by writing into sysconfig register. On following
> > this sequence, i2c module resets properly and timeouts are not seen.
> > Cc: Rajendra Nayak <rnayak at ti.com>
> > Cc: Paul Walmsley <paul at pwsan.com>
> > Cc: Benoit Cousson <b-cousson at ti.com>
> > Cc: Kevin Hilman <khilman at ti.com>
> > Signed-off-by: Avinash.H.M <avinashhm at ti.com>
> > ---
> Hi Kevin, Paul ,
> Ping .. could you please review this.
Hi Paul ,
I recently observed that the sequence we are following to reset i2c in
omap2, 3 is also applicable for omap4. On checking the the omap4 TRM
sequence , i confirmed this.
The reason why there were no timeouts seen in omap4 was, because of the
'HWMOD_INIT_NO_RESET' flag in the omap4 i2c hwmods. Because of these
flags, hwmod wasn't really attempting to reset i2c in omap4 and hence no
timeouts were seen.
I ll extend the patch to omap4 and send out new patch, also fixing
comments from Tomi. I ll send out v5 and you can review directly v5.
> thanks ,
> - Avinash
More information about the linux-arm-kernel