summaryrefslogtreecommitdiff
path: root/post
diff options
context:
space:
mode:
authorPeter Tyser <ptyser@xes-inc.com>2010-10-22 00:20:29 -0500
committerKumar Gala <galak@kernel.crashing.org>2010-10-22 02:18:42 -0500
commit9f949c9ac2c1bb5077a146753e24c7b3fe099991 (patch)
treef57970a4f08ab50c09371a7283ef95a4583038ce /post
parent7e263cea88995d0b4b9fb659a95c382128feca71 (diff)
post/i2c: Don't probe address 0
According to the I2C specification device address 0 is the "general call address", ie a broadcast address. The I2C specification states that the format of a general call uses at least 2 bytes, which U-Boot's probing routine does not adhere to. Not probing device address 0 will prevent possible issues with devices that accept general calls. Additionally, this change shouldn't reduce POST coverage since each I2C device should still be accessed via its own, unique address. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Acked-by: Heiko Schocher <hs@denx.de> Acked-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'post')
-rw-r--r--post/drivers/i2c.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/post/drivers/i2c.c b/post/drivers/i2c.c
index 0cbbf77bb3..35081776b3 100644
--- a/post/drivers/i2c.c
+++ b/post/drivers/i2c.c
@@ -44,7 +44,8 @@ int i2c_post_test (int flags)
{
unsigned int i;
#ifndef I2C_ADDR_LIST
- for (i = 0; i < 128; i++)
+ /* Start at address 1, address 0 is the general call address */
+ for (i = 1; i < 128; i++)
if (i2c_probe (i) == 0)
return 0;
@@ -55,7 +56,8 @@ int i2c_post_test (int flags)
int j;
const unsigned char i2c_addr_list[] = I2C_ADDR_LIST;
- for (i = 0; i < 128; i++) {
+ /* Start at address 1, address 0 is the general call address */
+ for (i = 1; i < 128; i++) {
if (i2c_probe(i) != 0)
continue;