From: Keith Packard Date: Sat, 2 Jun 2012 23:56:41 +0000 (-0700) Subject: altos: Reset i2c controller at boot time X-Git-Tag: 1.0.9.6~129 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=97317d332f21c42860747c4ecde633bd0228ef52;hp=64e2e66a5239541b15f43172655cfb3560bec79b altos: Reset i2c controller at boot time In case it's wedged. Signed-off-by: Keith Packard --- diff --git a/src/stm/ao_i2c_stm.c b/src/stm/ao_i2c_stm.c index d82342db..c205706d 100644 --- a/src/stm/ao_i2c_stm.c +++ b/src/stm/ao_i2c_stm.c @@ -362,8 +362,12 @@ void ao_i2c_channel_init(uint8_t index) { struct stm_i2c *stm_i2c = ao_i2c_stm_info[index].stm_i2c; + int i; /* Turn I2C off while configuring */ + stm_i2c->cr1 = (1 << STM_I2C_CR1_SWRST); + for (i = 0; i < 100; i++) + asm("nop"); stm_i2c->cr1 = 0; stm_i2c->cr2 = AO_STM_I2C_CR2;