Cosmetic changes to I2C code

This commit is contained in:
RichardG867
2020-12-03 15:02:21 -03:00
parent e99be915d4
commit 02b060c5d8
2 changed files with 221 additions and 217 deletions

View File

@@ -122,7 +122,7 @@ i2c_gpio_set(void *dev_handle, uint8_t scl, uint8_t sda)
switch (dev->slave_read) {
case 2: /* address transfer */
dev->slave_addr = dev->byte >> 1;
dev->slave_read = (dev->byte & 1);
dev->slave_read = dev->byte & 1;
/* slave ACKs? */
dev->slave_sda = !(i2c_has_device(dev->i2c, dev->slave_addr) && i2c_start(dev->i2c, dev->slave_addr, dev->slave_read));
@@ -140,12 +140,16 @@ i2c_gpio_set(void *dev_handle, uint8_t scl, uint8_t sda)
break;
}
} else if (dev->pos == 9) {
if (dev->slave_read == 1) { /* read transfer (unless we're in an address transfer) */
switch (dev->slave_read) {
case 1: /* read transfer (unless we're in an address transfer) */
if (!sda) /* master ACKs? */
dev->byte = i2c_read(dev->i2c, dev->slave_addr);
i2c_gpio_log(2, "I2C GPIO %s: Read %02X %sACK\n", dev->bus_name, dev->byte, sda ? "N" : "");
} else
break;
default:
dev->slave_read &= 1; /* if we're in an address transfer, clear it */
}
dev->pos = 0; /* start over */
}
} else if (dev->prev_scl && !scl && (dev->pos != 8)) { /* keep (N)ACK computed at the 8th bit when transitioning to the 9th bit */