From: Vasileios Amoiridis <vassilisamir@gmail.com>
To: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: vassilisamir@gmail.com, 579lpy@gmail.com, ak@it-klinger.de,
andriy.shevchenko@linux.intel.com, ang.iglesiasg@gmail.com,
biju.das.jz@bp.renesas.com, conor+dt@kernel.org,
devicetree@vger.kernel.org, javier.carrasco.cruz@gmail.com,
jic23@kernel.org, krzk+dt@kernel.org, lars@metafoo.de,
linus.walleij@linaro.org, linux-iio@vger.kernel.org,
linux-kernel@vger.kernel.org, robh@kernel.org,
semen.protsenko@linaro.org
Subject: Re: [PATCH v3 2/7] iio: pressure: bmp280: Add support for bmp280 soft reset
Date: Wed, 28 Aug 2024 09:49:05 +0200 [thread overview]
Message-ID: <20240828074905.GA4934@vamoiridPC> (raw)
In-Reply-To: <b898ad42-1559-4f43-8994-d9692e54f930@wanadoo.fr>
On Sun, Aug 25, 2024 at 09:04:16AM +0200, Christophe JAILLET wrote:
> Le 23/08/2024 à 20:17, Vasileios Amoiridis a écrit :
> > The BM(P/E)28x devices have an option for soft reset which is also
> > recommended by the Bosch Sensortech BME2 Sensor API to be used before the
> > initial configuration of the device.
> >
> > Link: https://github.com/boschsensortec/BME280_SensorAPI/blob/bme280_v3.5.1/bme280.c#L429
> > Signed-off-by: Vasileios Amoiridis <vassilisamir-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > ---
> > drivers/iio/pressure/bmp280-core.c | 26 ++++++++++++++++++++++++++
> > drivers/iio/pressure/bmp280.h | 3 +++
> > 2 files changed, 29 insertions(+)
> >
> > diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c
> > index c23515048081..e01c9369bd67 100644
> > --- a/drivers/iio/pressure/bmp280-core.c
> > +++ b/drivers/iio/pressure/bmp280-core.c
> > @@ -965,6 +965,30 @@ static const unsigned long bme280_avail_scan_masks[] = {
> > 0
> > };
> > +static int bmp280_preinit(struct bmp280_data *data)
> > +{
> > + unsigned int reg;
> > + int ret;
> > +
> > + ret = regmap_write(data->regmap, BMP280_REG_RESET, BMP280_RST_SOFT_CMD);
> > + if (ret)
> > + return dev_err_probe(data->dev, ret,
> > + "Failed to reset device.\n");
> > +
> > + usleep_range(data->start_up_time, data->start_up_time + 500);
> > +
> > + ret = regmap_read(data->regmap, BMP280_REG_STATUS, ®);
> > + if (ret)
> > + return dev_err_probe(data->dev, ret,
> > + "Failed to read status register.\n");
> > +
> > + if (reg & BMP280_REG_STATUS_IM_UPDATE)
> > + return dev_err_probe(data->dev, ret,
> > + "Failed to copy NVM contents.\n");
>
> ret is 0 at this point.
> Should a -E<something> be used instead?
>
> CJ
>
Hi Cristophe,
Yes, actually this could be an I/O error since we were not able to
copy the values back from the NVM device to the sensor.
Cheers,
Vasilis
> > +
> > + return 0;
> > +}
> > +
> > static int bmp280_chip_config(struct bmp280_data *data)
> > {
> > u8 osrs = FIELD_PREP(BMP280_OSRS_TEMP_MASK, data->oversampling_temp + 1) |
> > @@ -1082,6 +1106,7 @@ const struct bmp280_chip_info bmp280_chip_info = {
> > .read_temp = bmp280_read_temp,
> > .read_press = bmp280_read_press,
> > .read_calib = bmp280_read_calib,
> > + .preinit = bmp280_preinit,
> > .trigger_handler = bmp280_trigger_handler,
> > };
> > @@ -1202,6 +1227,7 @@ const struct bmp280_chip_info bme280_chip_info = {
> > .read_press = bmp280_read_press,
> > .read_humid = bme280_read_humid,
> > .read_calib = bme280_read_calib,
> > + .preinit = bmp280_preinit,
> > .trigger_handler = bme280_trigger_handler,
> > };
> > diff --git a/drivers/iio/pressure/bmp280.h b/drivers/iio/pressure/bmp280.h
> > index 4e675401d61b..73516878d020 100644
> > --- a/drivers/iio/pressure/bmp280.h
> > +++ b/drivers/iio/pressure/bmp280.h
> > @@ -205,6 +205,9 @@
> > #define BMP280_REG_CONFIG 0xF5
> > #define BMP280_REG_CTRL_MEAS 0xF4
> > #define BMP280_REG_STATUS 0xF3
> > +#define BMP280_REG_STATUS_IM_UPDATE BIT(0)
> > +#define BMP280_REG_RESET 0xE0
> > +#define BMP280_RST_SOFT_CMD 0xB6
> > #define BMP280_REG_COMP_TEMP_START 0x88
> > #define BMP280_COMP_TEMP_REG_COUNT 6
>
next prev parent reply other threads:[~2024-08-28 7:49 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-23 18:17 [PATCH v3 0/7] pressure: bmp280: Minor cleanup and interrupt support Vasileios Amoiridis
2024-08-23 18:17 ` [PATCH v3 1/7] iio: pressure: bmp280: Use bulk read for humidity calibration data Vasileios Amoiridis
2024-08-23 18:47 ` Andy Shevchenko
2024-08-24 11:10 ` Vasileios Amoiridis
2024-08-23 18:17 ` [PATCH v3 2/7] iio: pressure: bmp280: Add support for bmp280 soft reset Vasileios Amoiridis
2024-08-23 19:13 ` Andy Shevchenko
2024-08-24 11:16 ` Vasileios Amoiridis
2024-08-26 10:11 ` Andy Shevchenko
2024-08-25 7:04 ` Christophe JAILLET
2024-08-28 7:49 ` Vasileios Amoiridis [this message]
2024-08-23 18:17 ` [PATCH v3 3/7] iio: pressure: bmp280: Remove config error check for IIR filter updates Vasileios Amoiridis
2024-08-23 19:15 ` Andy Shevchenko
2024-08-24 11:18 ` Vasileios Amoiridis
2024-08-26 10:12 ` Andy Shevchenko
2024-08-23 18:17 ` [PATCH v3 4/7] iio: pressure: bmp280: Use sleep and forced mode for oneshot captures Vasileios Amoiridis
2024-08-23 19:25 ` Andy Shevchenko
2024-08-24 11:29 ` Vasileios Amoiridis
2024-08-26 10:17 ` Andy Shevchenko
2024-08-23 18:17 ` [PATCH v3 5/7] dt-bindings: iio: pressure: bmp085: Add interrupts for BMP3xx and BMP5xx devices Vasileios Amoiridis
2024-08-23 18:51 ` Biju Das
2024-08-24 11:31 ` Vasileios Amoiridis
2024-08-24 11:41 ` Biju Das
2024-08-24 12:09 ` Vasileios Amoiridis
2024-08-24 7:45 ` Krzysztof Kozlowski
2024-08-24 11:35 ` Vasileios Amoiridis
2024-08-25 6:57 ` Krzysztof Kozlowski
2024-08-23 18:17 ` [PATCH v3 6/7] iio: pressure: bmp280: Add data ready trigger support Vasileios Amoiridis
2024-08-23 20:06 ` Andy Shevchenko
2024-08-24 12:02 ` Vasileios Amoiridis
2024-08-26 10:01 ` Jonathan Cameron
2024-08-26 10:26 ` Andy Shevchenko
2024-08-26 10:23 ` Andy Shevchenko
2024-08-28 14:01 ` Vasileios Amoiridis
2024-08-28 14:17 ` Andy Shevchenko
2024-08-28 18:13 ` Vasileios Amoiridis
2024-08-23 18:17 ` [PATCH v3 7/7] iio: pressure: bmp280: Move bmp085 interrupt to new configuration Vasileios Amoiridis
2024-08-24 10:02 ` Jonathan Cameron
2024-08-24 12:07 ` Vasileios Amoiridis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240828074905.GA4934@vamoiridPC \
--to=vassilisamir@gmail.com \
--cc=579lpy@gmail.com \
--cc=ak@it-klinger.de \
--cc=andriy.shevchenko@linux.intel.com \
--cc=ang.iglesiasg@gmail.com \
--cc=biju.das.jz@bp.renesas.com \
--cc=christophe.jaillet@wanadoo.fr \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=javier.carrasco.cruz@gmail.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linus.walleij@linaro.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=semen.protsenko@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.