[PATCH v4] OMAP2/3: hwmod: fix the i2c-reset timeout during bootup

Avinash.H.M. 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

> 
> thanks ,
> 
> - Avinash
> 



More information about the linux-arm-kernel mailing list