From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lokesh Vutla Date: Tue, 3 Dec 2013 09:32:46 +0530 Subject: [U-Boot] [PATCH V2] arm: omap: i2c: don't zero cnt in i2c_write In-Reply-To: <529CAB7C.8070200@mm-sol.com> References: <1385563449-15094-1-git-send-email-nikita@compulab.co.il> <1385654682-2775-1-git-send-email-nikita@compulab.co.il> <529CAB7C.8070200@mm-sol.com> Message-ID: <529D57E6.1070401@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Lubomir, On Monday 02 December 2013 09:17 PM, Lubomir Popov wrote: > Hi Nikita, > > On 28/11/13 18:04, Nikita Kiryanov wrote: >> Writing zero into I2Ci.I2C_CNT register causes random I2C failures in OMAP3 >> based devices. This seems to be related to the following advisory which >> apears in multiple erratas for OMAP3 SoCs (OMAP35xx, DM37xx), as well as >> OMAP4430 TRM: >> >> Advisory: >> I2C Module Does Not Allow 0-Byte Data Requests >> Details: >> When configured as the master, the I2C module does not allow 0-byte data >> transfers. Note: Programming I2Ci.I2C_CNT[15:0]: DCOUNT = 0 will cause >> undefined behavior. >> Workaround(s): >> No workaround. Do not use 0-byte data requests. >> >> The writes in question are unnecessary from a functional point of view. >> Most of them are done after I/O has finished, and the only one that preceds >> I/O (in i2c_probe()) is also unnecessary because a stop bit is sent before >> actual data transmission takes place. >> >> Therefore, remove all writes that zero the cnt register. >> >> Cc: Heiko Schocher >> Cc: Thomas Petazzoni >> Cc: Tom Rini >> Cc: Lubomir Popov >> Cc: Enric Balletbo Serra >> Signed-off-by: Nikita Kiryanov >> --- >> Changes in V2: >> Removed all instances of writew(0, &i2c_base->cnt) instead of just the >> one in i2c_write (following a test of V1 by Thomas Petazzoni). >> >> > Tested-by: Lubomir Popov > > In addition to the OMAP5430/32 tests performed last week, tested today > on OMAP4 (4430/60/70) and on AM3359. Thus tests have covered OMAP4/5- > compatible I2C IPs with revnb_lo=[0x000a to 0x000c] (revnb_hi is 0x5040 > for all those IPs). May I know on top of which tree,tag you are trying this patch ? I tried OMAP4 on top of v2014.01-rc1, but I am not able to boot. I applied this patch and still not able to boot. There is a mail thread going on, on this topic. So I just wanted to know that I am not missing very obvious. Thanks and regards, Lokesh >