[v2,3/3] iio: accel: adxl372: Perform a reset at start up
diff mbox series

Message ID 1568126686-13436-1-git-send-email-stefan.popa@analog.com
State New
Headers show
Series
  • [v2,1/3] iio: accel: adxl372: Fix/remove limitation for FIFO samples
Related show

Commit Message

Stefan Popa Sept. 10, 2019, 2:44 p.m. UTC
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>
---
Changes in v2:
	- Instead of disabling the interrupts, now this patch performs
	  a software reset.

 drivers/iio/accel/adxl372.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Jonathan Cameron Sept. 15, 2019, 1:33 p.m. UTC | #1
On Tue, 10 Sep 2019 17:44:46 +0300
Stefan Popa <stefan.popa@analog.com> wrote:

> 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>
Added the same fixes tag, and cc for stable. We'll have to keep an eye
on this though as there are other patches after the one hightlighted so
they may not go on cleanly.

Thanks,

Jonathan

> ---
> Changes in v2:
> 	- Instead of disabling the interrupts, now this patch performs
> 	  a software reset.
> 
>  drivers/iio/accel/adxl372.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
> index 33edca8..8a00528 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;

Patch
diff mbox series

diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
index 33edca8..8a00528 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;