From mboxrd@z Thu Jan 1 00:00:00 1970 From: avinashhm@ti.com (Avinash.H.M.) Date: Mon, 20 Jun 2011 15:13:34 +0530 Subject: [PATCH v4] OMAP2/3: hwmod: fix the i2c-reset timeout during bootup In-Reply-To: <20110605084915.GA2887@avinash-laptop> References: <1305906384-22061-1-git-send-email-avinashhm@ti.com> <20110605084915.GA2887@avinash-laptop> Message-ID: <20110620094334.GA9174@avinash-laptop> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 > > Cc: Paul Walmsley > > Cc: Benoit Cousson > > Cc: Kevin Hilman > > Signed-off-by: Avinash.H.M > > --- > > 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 >