2019-09-10 19:05:15

by Stefan Popa

[permalink] [raw]
Subject: [PATCH v2 3/3] 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 <[email protected]>
---
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;
--
2.7.4


2019-09-15 15:18:07

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2 3/3] iio: accel: adxl372: Perform a reset at start up

On Tue, 10 Sep 2019 17:44:46 +0300
Stefan Popa <[email protected]> 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 <[email protected]>
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;