From 97317d332f21c42860747c4ecde633bd0228ef52 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 2 Jun 2012 16:56:41 -0700 Subject: [PATCH] altos: Reset i2c controller at boot time In case it's wedged. Signed-off-by: Keith Packard --- src/stm/ao_i2c_stm.c | 4 ++++ 1 file changed, 4 insertions(+) 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; -- 2.30.2