@@ 409,6 409,7 @@ static void
private_send_stop(uint8_t sercom_no)
{
I2CS[sercom_no].dev->I2CM.CTRLB.reg |= SERCOM_I2CM_CTRLB_CMD(3);
+ I2C_SYSOPBUSY(I2CS[sercom_no].dev);
}
static void
@@ 468,6 469,7 @@ i2c_sercom_handler(D21_I2C_BUS_t *self)
if (self->request.txlen > 0) {
// continuing the data transfer
dev->I2CM.DATA.reg = *self->request.tx;
+ I2C_SYSOPBUSY(dev);
self->request.tx++;
self->request.txlen--;
} else {
@@ 497,6 499,7 @@ i2c_sercom_handler(D21_I2C_BUS_t *self)
ctl_events_set_clear(&self->events, TRANSFER_DONE_EVENT, 0);
}
+ I2C_SYSOPBUSY(dev);
*self->request.rx = dev->I2CM.DATA.reg;
self->request.rx++;
self->request.rxlen--;