diff options
author | Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> | 2018-04-30 12:14:11 +0200 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2018-05-06 18:01:20 +0100 |
commit | edddddd98cbda25da4370838c52b0457af807cda (patch) | |
tree | 47c80c2f055f813913736e830b1e135e98b8bf15 /drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | |
parent | iio: imu: inv_mpu6050: skip first sample when gyro is on (diff) | |
download | linux-dev-edddddd98cbda25da4370838c52b0457af807cda.tar.xz linux-dev-edddddd98cbda25da4370838c52b0457af807cda.zip |
iio: imu: inv_mpu6050: fix user_ctrl register overwritten
When in spi mode, we are setting i2c disable bit in user_ctrl
register. But the register is overwritten after when turning fifo
on. So save user_ctrl init value and always use it when updating
the register.
Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c')
-rw-r--r-- | drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c index fe0bf5ac4245..227f50afff22 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c @@ -31,8 +31,9 @@ static int inv_mpu_i2c_disable(struct iio_dev *indio_dev) if (ret) return ret; - ret = regmap_write(st->map, INV_MPU6050_REG_USER_CTRL, - INV_MPU6050_BIT_I2C_IF_DIS); + st->chip_config.user_ctrl |= INV_MPU6050_BIT_I2C_IF_DIS; + ret = regmap_write(st->map, st->reg->user_ctrl, + st->chip_config.user_ctrl); if (ret) { inv_mpu6050_set_power_itg(st, false); return ret; |