Commit 95302e54 authored by Hernán Gonzalez's avatar Hernán Gonzalez Committed by Jonathan Cameron

staging: iio: ad7746: Automatically swap values in readings/writings

Data to read or write was being handled with the swab16() macro instead
of using i2c_smbus_{read,write}_swapped.
Signed-off-by: default avatarHernán Gonzalez <hernan@vanguardiasur.com.ar>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent a60acdf9
......@@ -451,7 +451,7 @@ static int ad7746_write_raw(struct iio_dev *indio_dev,
goto out;
}
ret = i2c_smbus_write_word_data(chip->client, reg, swab16(val));
ret = i2c_smbus_write_word_swapped(chip->client, reg, val);
if (ret < 0)
goto out;
......@@ -462,8 +462,8 @@ static int ad7746_write_raw(struct iio_dev *indio_dev,
ret = -EINVAL;
goto out;
}
ret = i2c_smbus_write_word_data(chip->client,
AD7746_REG_CAP_OFFH, swab16(val));
ret = i2c_smbus_write_word_swapped(chip->client,
AD7746_REG_CAP_OFFH, val);
if (ret < 0)
goto out;
......@@ -594,21 +594,21 @@ static int ad7746_read_raw(struct iio_dev *indio_dev,
goto out;
}
ret = i2c_smbus_read_word_data(chip->client, reg);
ret = i2c_smbus_read_word_swapped(chip->client, reg);
if (ret < 0)
goto out;
/* 1 + gain_val / 2^16 */
*val = 1;
*val2 = (15625 * swab16(ret)) / 1024;
*val2 = (15625 * ret) / 1024;
ret = IIO_VAL_INT_PLUS_MICRO;
break;
case IIO_CHAN_INFO_CALIBBIAS:
ret = i2c_smbus_read_word_data(chip->client,
AD7746_REG_CAP_OFFH);
ret = i2c_smbus_read_word_swapped(chip->client,
AD7746_REG_CAP_OFFH);
if (ret < 0)
goto out;
*val = swab16(ret);
*val = ret;
ret = IIO_VAL_INT;
break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment