opt_F = (1 << 4), opt_l = (1 << 5);
const char *const optstr = "yaqrFl";
- int fd, bus_num, i, j, mode = I2CDETECT_MODE_AUTO, status;
+ int fd, bus_num, i, j, mode = I2CDETECT_MODE_AUTO, status, cmd;
unsigned first = 0x03, last = 0x77, opts;
unsigned long funcs;
for(j = 0; j < 16; j++) {
fflush_all();
+ cmd = mode;
if (mode == I2CDETECT_MODE_AUTO) {
if ((i+j >= 0x30 && i+j <= 0x37) ||
(i+j >= 0x50 && i+j <= 0x5F))
- mode = I2CDETECT_MODE_READ;
+ cmd = I2CDETECT_MODE_READ;
else
- mode = I2CDETECT_MODE_QUICK;
+ cmd = I2CDETECT_MODE_QUICK;
}
/* Skip unwanted addresses. */
if (i+j < first
|| i+j > last
- || (mode == I2CDETECT_MODE_READ && !(funcs & I2C_FUNC_SMBUS_READ_BYTE))
- || (mode == I2CDETECT_MODE_QUICK && !(funcs & I2C_FUNC_SMBUS_QUICK)))
+ || (cmd == I2CDETECT_MODE_READ && !(funcs & I2C_FUNC_SMBUS_READ_BYTE))
+ || (cmd == I2CDETECT_MODE_QUICK && !(funcs & I2C_FUNC_SMBUS_QUICK)))
{
printf(" ");
continue;
"can't set address to 0x%02x", i + j);
}
- switch (mode) {
+ switch (cmd) {
case I2CDETECT_MODE_READ:
/*
* This is known to lock SMBus on various