From 6006eb59b1064cdc115583d2eab3fe7bab4ffa4d Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Mon, 21 Oct 2013 01:09:09 +0200 Subject: imx233/i2c: always reset the i2c block on timeout On targets like stmp3700, resetting the dma channel on "soft" timeout drives the whole block crazy unless it goes through complete reset. Change-Id: I830b252279989bf9f9cd9c138240a6ea9b003527 --- firmware/target/arm/imx233/i2c-imx233.c | 1 + 1 file changed, 1 insertion(+) (limited to 'firmware/target') diff --git a/firmware/target/arm/imx233/i2c-imx233.c b/firmware/target/arm/imx233/i2c-imx233.c index 57f0f7356a..4d066a4152 100644 --- a/firmware/target/arm/imx233/i2c-imx233.c +++ b/firmware/target/arm/imx233/i2c-imx233.c @@ -205,6 +205,7 @@ enum imx233_i2c_error_t imx233_i2c_end(unsigned timeout) if(semaphore_wait(&i2c_sema, timeout) == OBJ_WAIT_TIMEDOUT) { imx233_dma_reset_channel(APB_I2C); + imx233_i2c_reset(); ret = I2C_TIMEOUT; } else if(BF_RD(I2C_CTRL1, MASTER_LOSS_IRQ)) -- cgit v1.2.3