]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/i2c/designware_i2c.c
designware_i2c: disable i2c controller during target address setup
[karo-tx-uboot.git] / drivers / i2c / designware_i2c.c
index c2f06627d3e312b52a24c6310927a317d4dd506d..c5c6015e99555c80621856428eee863388bb0c8e 100644 (file)
@@ -151,7 +151,19 @@ void i2c_init(int speed, int slaveadd)
  */
 static void i2c_setaddress(unsigned int i2c_addr)
 {
+       unsigned int enbl;
+
+       /* Disable i2c */
+       enbl = readl(&i2c_regs_p->ic_enable);
+       enbl &= ~IC_ENABLE_0B;
+       writel(enbl, &i2c_regs_p->ic_enable);
+
        writel(i2c_addr, &i2c_regs_p->ic_tar);
+
+       /* Enable i2c */
+       enbl = readl(&i2c_regs_p->ic_enable);
+       enbl |= IC_ENABLE_0B;
+       writel(enbl, &i2c_regs_p->ic_enable);
 }
 
 /*