drivers/device/nuttx/I2C: add transfer failure details

This commit is contained in:
Daniel Agar 2022-04-20 15:08:37 -04:00
parent 37fa4bccb6
commit 87e9fd5c71
No known key found for this signature in database
GPG Key ID: FD3CBA98017A69DE

View File

@ -216,6 +216,29 @@ I2C::transfer(const uint8_t *send, const unsigned send_len, uint8_t *recv, const
int ret_transfer = I2C_TRANSFER(_dev, &msgv[0], msgs);
if (ret_transfer != 0) {
switch (ret_transfer) {
case -EAGAIN:
PX4_WARN("I2C bus: %d, Addr: %X, Arbitration Lost", get_device_bus(), get_device_address());
break;
case -EIO:
PX4_WARN("I2C bus: %d, Addr: %X, Overrun/Underrun", get_device_bus(), get_device_address());
break;
case -EADDRNOTAVAIL:
//PX4_WARN("I2C bus: %d, Addr: %X, Address NACK", get_device_bus(), get_device_address());
break;
case -ECOMM:
PX4_WARN("I2C bus: %d, Addr: %X, Data NACK", get_device_bus(), get_device_address());
break;
case -EBUSY:
PX4_WARN("I2C bus: %d, Addr: %X, Bus busy", get_device_bus(), get_device_address());
break;
}
DEVICE_DEBUG("I2C transfer failed, result %d", ret_transfer);
ret = PX4_ERROR;