From: Joe Hershberger Date: Tue, 28 Feb 2012 19:02:18 +0000 (-0600) Subject: Xilinx: ARM: i2c: Disable restart in i2c read X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a2b3e7179349087dee5a9ff16b75f19bf0ae82ae;p=thirdparty%2Fu-boot.git Xilinx: ARM: i2c: Disable restart in i2c read It doesn't seem to work. Hardware bug? Signed-off-by: Joe Hershberger --- diff --git a/drivers/i2c/zynq_i2c.c b/drivers/i2c/zynq_i2c.c index 4b8c5cab5b1..084cd27a47d 100644 --- a/drivers/i2c/zynq_i2c.c +++ b/drivers/i2c/zynq_i2c.c @@ -216,7 +216,10 @@ int i2c_read(u8 dev, uint addr, int alen, u8 *data, int length) /* Write the register address */ Xsetbits_le32(&zynq_i2c->control, ZYNQ_I2C_CONTROL_CLR_FIFO | ZYNQ_I2C_CONTROL_HOLD); - Xclrbits_le32(&zynq_i2c->control, ZYNQ_I2C_CONTROL_RW); + /* Temporarily disable restart (by clearing hold)... */ + /* It doesn't seem to work. */ + Xclrbits_le32(&zynq_i2c->control, ZYNQ_I2C_CONTROL_RW | + ZYNQ_I2C_CONTROL_HOLD); Xout_le32(&zynq_i2c->interrupt_status, 0xFF); while (alen--) Xout_le32(&zynq_i2c->data, addr >> (8*alen));