Cosmetic changes to I2C code
This commit is contained in:
@@ -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 */
|
||||
|
Reference in New Issue
Block a user