Selaa lähdekoodia

i2c, omap24xx: set bus_initialized only after relocation.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher 14 vuotta sitten
vanhempi
commit
1724fe9adf
1 muutettua tiedostoa jossa 3 lisäystä ja 1 poistoa
  1. 3 1
      drivers/i2c/omap24xx_i2c.c

+ 3 - 1
drivers/i2c/omap24xx_i2c.c

@@ -40,6 +40,7 @@ static unsigned int current_bus;
 
 
 void i2c_init (int speed, int slaveadd)
 void i2c_init (int speed, int slaveadd)
 {
 {
+	DECLARE_GLOBAL_DATA_PTR;
 	int psc, fsscll, fssclh;
 	int psc, fsscll, fssclh;
 	int hsscll = 0, hssclh = 0;
 	int hsscll = 0, hssclh = 0;
 	u32 scll, sclh;
 	u32 scll, sclh;
@@ -139,7 +140,8 @@ void i2c_init (int speed, int slaveadd)
 	writew (0xFFFF, &i2c_base->stat);
 	writew (0xFFFF, &i2c_base->stat);
 	writew (0, &i2c_base->cnt);
 	writew (0, &i2c_base->cnt);
 
 
-	bus_initialized[current_bus] = 1;
+	if (gd->flags & GD_FLG_RELOC)
+		bus_initialized[current_bus] = 1;
 }
 }
 
 
 static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)
 static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)