Re: [PATCH v2] iio: accel: bmc150: check reset write error
From: Jonathan Cameron
Date: Thu Sep 24 2026 - 23:05:17 EST
On Thu, 24 Sep 2026 09:48:45 -0500
Carlos Casadiego via B4 Relay <devnull+cdcp206.gmail.com@xxxxxxxxxx> wrote:
> From: Carlos Casadiego <cdcp206@xxxxxxxxx>
>
> The software reset is required to bring the device into a known
> state before reading the chip ID.
>
> Check the return value of regmap_write() and abort initialization if
> the reset command cannot be written.
>
> Fixes: 1c500840934a ("iio: accel: bmc150: reset chip at init time")
> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
> Signed-off-by: Carlos Casadiego <cdcp206@xxxxxxxxx>
Just to check: Was this verified against actual hardware?
Quite a few devices get going on their resets before sending
acks on i2c which means you get an error on that particular
write. That is often why you don't see an error check on this
particular operation.
> ---
> Changes in v2:
> - Remove the blank line in the tag block.
> - Add Srinivas Pandruvada's Acked-by.
> - Link to v1: https://patch.msgid.link/20260923-iio-bmc150-check-reset-error-v1-1-b8c1ebc4c947@xxxxxxxxx
> ---
> drivers/iio/accel/bmc150-accel-core.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
> index 46bb36d9366e..43a39e1ccce5 100644
> --- a/drivers/iio/accel/bmc150-accel-core.c
> +++ b/drivers/iio/accel/bmc150-accel-core.c
> @@ -1561,8 +1561,12 @@ static int bmc150_accel_chip_init(struct bmc150_accel_data *data)
> * Reset chip to get it in a known good state. A delay of 1.8ms after
> * reset is required according to the data sheets of supported chips.
> */
> - regmap_write(data->regmap, BMC150_ACCEL_REG_RESET,
> - BMC150_ACCEL_RESET_VAL);
> + ret = regmap_write(data->regmap, BMC150_ACCEL_REG_RESET,
> + BMC150_ACCEL_RESET_VAL);
> + if (ret < 0) {
> + dev_err(dev, "Error writing reset register\n");
> + return ret;
> + }
> usleep_range(1800, 2500);
>
> ret = regmap_read(data->regmap, BMC150_ACCEL_REG_CHIP_ID, &val);
>
> ---
> base-commit: d8c0f48f0b1583308a98401c0c7b1a65d1d43a6c
> change-id: 20260923-iio-bmc150-check-reset-error-389b096b0ad4
>
> Best regards,
> --
> Carlos Casadiego <cdcp206@xxxxxxxxx>
>
>