From: Stefan Popa stefan.popa@analog.com
commit d9a997bd4d762d5bd8cc548d762902f58b5e0a74 upstream.
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 Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
--- drivers/iio/accel/adxl372.c | 8 ++++++++ 1 file changed, 8 insertions(+)
--- a/drivers/iio/accel/adxl372.c +++ b/drivers/iio/accel/adxl372.c @@ -575,6 +575,14 @@ static int adxl372_setup(struct adxl372_ return -ENODEV; }
+ /* + * Perform a software reset to make sure the device is in a consistent + * state after start up. + */ + ret = regmap_write(st->regmap, ADXL372_RESET, ADXL372_RESET_CODE); + if (ret < 0) + return ret; + ret = adxl372_set_op_mode(st, ADXL372_STANDBY); if (ret < 0) return ret;