summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorWolfgang Denk <[email protected]>2009-07-23 00:57:21 +0200
committerWolfgang Denk <[email protected]>2009-07-23 00:57:21 +0200
commitfaca03ca0e7b16f551f10fa895cb8d4bbe0122a0 (patch)
tree7ff0f0dbb7c7b354371a4259d53b8f670146c2e7 /drivers
parent05c37340183ff097b29d66e8d7862fc21162bc6e (diff)
parent49a7720b215aa3da24bb13266c4c194012f499a6 (diff)
Merge branch 'master' of /home/wd/git/u-boot/custodians
Diffstat (limited to 'drivers')
-rw-r--r--drivers/i2c/fsl_i2c.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/i2c/fsl_i2c.c b/drivers/i2c/fsl_i2c.c
index 6ab7d3d9fcf..ce0f301e131 100644
--- a/drivers/i2c/fsl_i2c.c
+++ b/drivers/i2c/fsl_i2c.c
@@ -178,6 +178,12 @@ i2c_init(int speed, int slaveadd)
struct fsl_i2c *dev;
unsigned int temp;
+#ifdef CONFIG_SYS_I2C_INIT_BOARD
+ /* call board specific i2c bus reset routine before accessing the */
+ /* environment, which might be in a chip on that bus. For details */
+ /* about this problem see doc/I2C_Edge_Conditions. */
+ i2c_init_board();
+#endif
dev = (struct fsl_i2c *) (CONFIG_SYS_IMMR + CONFIG_SYS_I2C_OFFSET);
writeb(0, &dev->cr); /* stop I2C controller */