drivers: minimize additional I2C retries

This commit is contained in:
Daniel Agar
2021-08-17 09:54:50 -04:00
parent 8a8171c7aa
commit cb610caf1e
18 changed files with 44 additions and 109 deletions
@@ -72,7 +72,7 @@ int HMC5883_I2C::probe()
{
uint8_t data[3] = {0, 0, 0};
_retries = 10;
_retries = 1;
if (read(ADDR_ID_A, &data[0], 1) ||
read(ADDR_ID_B, &data[1], 1) ||
@@ -81,8 +81,6 @@ int HMC5883_I2C::probe()
return -EIO;
}
_retries = 2;
if ((data[0] != ID_A_WHO_AM_I) ||
(data[1] != ID_B_WHO_AM_I) ||
(data[2] != ID_C_WHO_AM_I)) {
@@ -86,12 +86,11 @@ void IST8308::print_status()
int IST8308::probe()
{
_retries = 2;
for (int retry = 0; retry < 3; retry++) {
const uint8_t WAI = RegisterRead(Register::WAI);
if (WAI == Device_ID) {
_retries = 1;
return PX4_OK;
} else {
@@ -86,15 +86,13 @@ LIS2MDL_I2C::probe()
{
uint8_t data = 0;
_retries = 10;
_retries = 1;
if (read(ADDR_WHO_AM_I, &data, 1)) {
DEVICE_DEBUG("read_reg fail");
return -EIO;
}
_retries = 2;
if (data != ID_WHO_AM_I) {
DEVICE_DEBUG("LIS2MDL bad ID: %02x", data);
return -EIO;
@@ -85,20 +85,18 @@ int LIS3MDL_I2C::probe()
{
uint8_t data = 0;
_retries = 10;
if (read(ADDR_WHO_AM_I, &data, 1)) {
DEVICE_DEBUG("read_reg fail");
return -EIO;
}
_retries = 2;
if (data != ID_WHO_AM_I) {
DEVICE_DEBUG("LIS3MDL bad ID: %02x", data);
return -EIO;
}
_retries = 1;
return OK;
}
@@ -84,20 +84,18 @@ int RM3100_I2C::probe()
{
uint8_t data = 0;
_retries = 10;
if (read(ADDR_REVID, &data, 1)) {
DEVICE_DEBUG("RM3100 read_reg fail");
return -EIO;
}
_retries = 2;
if (data != RM3100_REVID) {
DEVICE_DEBUG("RM3100 bad ID: %02x", data);
return -EIO;
}
_retries = 1;
return OK;
}