From 58897204a1f94be495fd153d5a4afb7519ac92ac Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Mon, 7 Dec 2020 21:39:53 -0300 Subject: [PATCH] Fix i2c_stop never called by i2c_gpio --- src/device/i2c_gpio.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/device/i2c_gpio.c b/src/device/i2c_gpio.c index 91c2d370b..e3902baaa 100644 --- a/src/device/i2c_gpio.c +++ b/src/device/i2c_gpio.c @@ -95,11 +95,15 @@ i2c_gpio_set(void *dev_handle, uint8_t scl, uint8_t sda) i2c_gpio_log(2, "I2C GPIO %s: Start condition\n", dev->bus_name); dev->started = 1; dev->pos = 0; + dev->slave_addr = 0xff; dev->slave_read = 2; /* start with address transfer */ dev->slave_sda = 1; } else if (!dev->prev_sda && sda) { i2c_gpio_log(2, "I2C GPIO %s: Stop condition\n", dev->bus_name); dev->started = 0; + if (dev->slave_addr != 0xff) + i2c_stop(dev->i2c, dev->slave_addr); + dev->slave_addr = 0xff; dev->slave_sda = 1; } } else if (!dev->prev_scl && scl && dev->started) {