aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include/i2c.h
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/include/i2c.h')
-rw-r--r--os/hal/include/i2c.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/os/hal/include/i2c.h b/os/hal/include/i2c.h
index 953bd88dd..60b2c322d 100644
--- a/os/hal/include/i2c.h
+++ b/os/hal/include/i2c.h
@@ -210,10 +210,16 @@ struct I2CSlaveConfig{
(i2cp)->id_state = I2C_COMPLETE; \
if(((i2cp)->id_slave_config)->id_callback) { \
((i2cp)->id_slave_config)->id_callback(i2cp, i2cscfg); \
+ if((i2cp)->id_state == I2C_COMPLETE) \
+ (i2cp)->id_state = I2C_READY; \
} \
+ else \
+ (i2cp)->id_state = I2C_READY; \
_i2c_wakeup_isr(i2cp); \
+ i2cReleaseBus(i2cp); \
}
+
/*===========================================================================*/
/* External declarations. */
/*===========================================================================*/