diff options
author | Stefan Popa <stefan.popa@analog.com> | 2019-09-10 10:44:46 -0400 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2019-10-09 14:11:25 -0400 |
commit | d9a997bd4d762d5bd8cc548d762902f58b5e0a74 (patch) | |
tree | c3d04567183c34b2a68f515e174f14f6185c25df | |
parent | 62df81b74393079debf04961c48cb22268fc5fab (diff) |
iio: accel: adxl372: Perform a reset at start up
We need to perform a reset a start up to make sure that the chip is in a
consistent state. This reset also disables all the interrupts which
should only be enabled together with the iio buffer. Not doing this, was
sometimes causing unwanted interrupts to trigger.
Signed-off-by: Stefan Popa <stefan.popa@analog.com>
Fixes: f4f55ce38e5f ("iio:adxl372: Add FIFO and interrupts support")
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-rw-r--r-- | drivers/iio/accel/adxl372.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c index fbad4b45fe42..67b8817995c0 100644 --- a/drivers/iio/accel/adxl372.c +++ b/drivers/iio/accel/adxl372.c | |||
@@ -575,6 +575,14 @@ static int adxl372_setup(struct adxl372_state *st) | |||
575 | return -ENODEV; | 575 | return -ENODEV; |
576 | } | 576 | } |
577 | 577 | ||
578 | /* | ||
579 | * Perform a software reset to make sure the device is in a consistent | ||
580 | * state after start up. | ||
581 | */ | ||
582 | ret = regmap_write(st->regmap, ADXL372_RESET, ADXL372_RESET_CODE); | ||
583 | if (ret < 0) | ||
584 | return ret; | ||
585 | |||
578 | ret = adxl372_set_op_mode(st, ADXL372_STANDBY); | 586 | ret = adxl372_set_op_mode(st, ADXL372_STANDBY); |
579 | if (ret < 0) | 587 | if (ret < 0) |
580 | return ret; | 588 | return ret; |