* [U-Boot] [PATCH] ARMV7: OMAP: I2C driver: Fix bug found in 37XX testing
@ 2010-10-22 20:48 Steve Sakoman
2010-10-25 6:05 ` Heiko Schocher
0 siblings, 1 reply; 2+ messages in thread
From: Steve Sakoman @ 2010-10-22 20:48 UTC (permalink / raw)
To: u-boot
On OMAP36/37XX the standard on chip pullups are not sufficient to
ensure proper i2c operation without external pullups or switching
to high speed mode and enabling special on chip pullups.
This is an issue for Beagle xM, which does not have external pullups
on the expansion board i2c lines.
The issue manifests itself as an AL (arbitration lost) error when
probing for a non-existent device (i.e. on a Beagle xM with no expansion
boards attached). This issue does not occur on expansion boards that
include pullups or on Overo 37XX COM's since they include pull-ups.
This patch fixes the issue by checking for the AL bit in the i2c_probe
function.
Signed-off-by: Steve Sakoman <steve.sakoman@linaro.org>
---
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
index a72d1a1..fab49fd 100644
--- a/drivers/i2c/omap24xx_i2c.c
+++ b/drivers/i2c/omap24xx_i2c.c
@@ -329,7 +329,7 @@ int i2c_probe (uchar chip)
while (1) {
status = wait_for_pin();
- if (status == 0) {
+ if (status == 0 || status & I2C_STAT_AL) {
res = 1;
goto probe_exit;
}
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH] ARMV7: OMAP: I2C driver: Fix bug found in 37XX testing
2010-10-22 20:48 [U-Boot] [PATCH] ARMV7: OMAP: I2C driver: Fix bug found in 37XX testing Steve Sakoman
@ 2010-10-25 6:05 ` Heiko Schocher
0 siblings, 0 replies; 2+ messages in thread
From: Heiko Schocher @ 2010-10-25 6:05 UTC (permalink / raw)
To: u-boot
Hello Steve,
Steve Sakoman wrote:
> On OMAP36/37XX the standard on chip pullups are not sufficient to
> ensure proper i2c operation without external pullups or switching
> to high speed mode and enabling special on chip pullups.
>
> This is an issue for Beagle xM, which does not have external pullups
> on the expansion board i2c lines.
>
> The issue manifests itself as an AL (arbitration lost) error when
> probing for a non-existent device (i.e. on a Beagle xM with no expansion
> boards attached). This issue does not occur on expansion boards that
> include pullups or on Overo 37XX COM's since they include pull-ups.
>
> This patch fixes the issue by checking for the AL bit in the i2c_probe
> function.
>
> Signed-off-by: Steve Sakoman <steve.sakoman@linaro.org>
> ---
Tested it here on my beagle board too, thanks!
Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
U-Boot 2010.09-04580-g4df6689 (Oct 25 2010 - 07:57:35)
OMAP3530-GP ES3.0, CPU-OPP2, L3-165MHz, Max CPU Clock 600 mHz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
[...]
Applied to u-boot-i2c master
bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-10-25 6:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-22 20:48 [U-Boot] [PATCH] ARMV7: OMAP: I2C driver: Fix bug found in 37XX testing Steve Sakoman
2010-10-25 6:05 ` Heiko Schocher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox