| From 8f7474895664c609cb9c69ace1c78692d5a1c714 Mon Sep 17 00:00:00 2001 |
| From: Stefan Popa <stefan.popa@analog.com> |
| Date: Tue, 10 Sep 2019 17:44:46 +0300 |
| Subject: [PATCH] iio: accel: adxl372: Perform a reset at start up |
| |
| 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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| 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) |
| 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; |
| -- |
| 2.7.4 |
| |