From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: vamoirid <vassilisamir@gmail.com>
Cc: jic23@kernel.org, lars@metafoo.de, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, anshulusr@gmail.com,
gustavograzs@gmail.com, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 08/13] iio: chemical: bme680: add power management
Date: Fri, 11 Oct 2024 13:10:20 +0300 [thread overview]
Message-ID: <Zwj5jBm-_9_FX6ms@smile.fi.intel.com> (raw)
In-Reply-To: <20241010210030.33309-9-vassilisamir@gmail.com>
On Thu, Oct 10, 2024 at 11:00:25PM +0200, vamoirid wrote:
> From: Vasileios Amoiridis <vassilisamir@gmail.com>
>
> Add runtime power management to the device. To facilitate this, add also
> a struct dev * inside the bme680_data structure to have the device
> accesible from the data structure.
...
> --- a/drivers/iio/chemical/bme680.h
> +++ b/drivers/iio/chemical/bme680.h
> @@ -75,6 +75,7 @@
> #define BME680_CALIB_RANGE_3_LEN 5
>
> extern const struct regmap_config bme680_regmap_config;
> +extern const struct dev_pm_ops bmp280_dev_pm_ops;
Is pm.h being included already in this header? Otherwise you need to add it.
...
> struct regmap *regmap;
> struct bme680_calib bme680;
> struct mutex lock; /* Protect multiple serial R/W ops to device. */
> + struct device *dev;
Is it the same that you may get wia regmap_get_device()?
> u8 oversampling_temp;
> u8 oversampling_press;
> u8 oversampling_humid;
...
> + /* Enable runtime PM */
> + pm_runtime_get_noresume(dev);
> + pm_runtime_set_active(dev);
> + pm_runtime_enable(dev);
> + pm_runtime_set_autosuspend_delay(dev, BME680_STARTUP_TIME_US * 100);
> + pm_runtime_use_autosuspend(dev);
> + pm_runtime_put(dev);
Can we use devm_pm_runtime_enable() for some of the above?
> + ret = devm_add_action_or_reset(dev, bme680_pm_disable, dev);
> + if (ret)
> + return ret;
...
> +static int bme680_runtime_resume(struct device *dev)
> +{
> + struct iio_dev *indio_dev = dev_get_drvdata(dev);
> + struct bme680_data *data = iio_priv(indio_dev);
> + int ret;
> +
> + ret = regulator_bulk_enable(BME680_NUM_SUPPLIES, data->supplies);
> + if (ret)
> + return ret;
> +
> + fsleep(BME680_STARTUP_TIME_US);
> +
> + ret = bme680_chip_config(data);
> + if (ret)
> + return ret;
> + ret = bme680_gas_config(data);
> + if (ret)
> + return ret;
> +
> + return 0;
return bme680_gas_config(...);
> +}
...
> +EXPORT_RUNTIME_DEV_PM_OPS(bme680_dev_pm_ops, bme680_runtime_suspend,
> + bme680_runtime_resume, NULL);
You also need pm.h for the macro IIRC.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2024-10-11 10:10 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-10 21:00 [PATCH v1 00/13]: chemical: bme680: 2nd set of clean and add vamoirid
2024-10-10 21:00 ` [PATCH v1 01/13] iio: chemical: bme680: Fix indentation and unnecessary spaces vamoirid
2024-10-11 9:55 ` Andy Shevchenko
2024-10-11 18:45 ` Vasileios Aoiridis
2024-10-10 21:00 ` [PATCH v1 02/13] iio: chemical: bme680: avoid using camel case vamoirid
2024-10-11 10:00 ` Andy Shevchenko
2024-10-11 18:50 ` Vasileios Aoiridis
2024-10-12 20:34 ` Andy Shevchenko
2024-10-10 21:00 ` [PATCH v1 03/13] iio: chemical: bme680: fix startup time vamoirid
2024-10-11 10:00 ` Andy Shevchenko
2024-10-11 18:51 ` Vasileios Aoiridis
2024-10-12 11:45 ` Jonathan Cameron
2024-10-12 20:36 ` Andy Shevchenko
2024-10-10 21:00 ` [PATCH v1 04/13] iio: chemical: bme680: move to fsleep() vamoirid
2024-10-10 21:00 ` [PATCH v1 05/13] iio: chemical: bme680: refactorize set_mode() mode vamoirid
2024-10-11 10:02 ` Andy Shevchenko
2024-10-11 18:53 ` Vasileios Aoiridis
2024-10-12 11:48 ` Jonathan Cameron
2024-10-10 21:00 ` [PATCH v1 06/13] dt-bindings: iio: add binding for BME680 driver vamoirid
2024-10-11 3:11 ` Rob Herring (Arm)
2024-10-11 6:51 ` Krzysztof Kozlowski
2024-10-11 18:44 ` Vasileios Aoiridis
2024-10-12 11:49 ` Jonathan Cameron
2024-10-10 21:00 ` [PATCH v1 07/13] iio: chemical: bme680: add regulators vamoirid
2024-10-11 10:05 ` Andy Shevchenko
2024-10-11 18:55 ` Vasileios Aoiridis
2024-10-12 11:53 ` Jonathan Cameron
2024-10-10 21:00 ` [PATCH v1 08/13] iio: chemical: bme680: add power management vamoirid
2024-10-11 10:10 ` Andy Shevchenko [this message]
2024-10-11 19:02 ` Vasileios Aoiridis
2024-10-12 11:58 ` Jonathan Cameron
2024-10-12 20:40 ` Andy Shevchenko
2024-10-10 21:00 ` [PATCH v1 09/13] iio: chemical: bme680: Move ambient temperature to attributes vamoirid
2024-10-11 10:12 ` Andy Shevchenko
2024-10-11 19:03 ` Vasileios Aoiridis
2024-10-12 12:01 ` Jonathan Cameron
2024-10-14 20:14 ` Vasileios Amoiridis
2024-10-19 13:59 ` Jonathan Cameron
2024-10-19 17:51 ` Vasileios Amoiridis
2024-10-19 17:58 ` Vasileios Amoiridis
2024-10-10 21:00 ` [PATCH v1 10/13] iio: chemical: bme680: generalize read_*() functions vamoirid
2024-10-10 21:00 ` [PATCH v1 11/13] iio: chemical: bme680: Add SCALE and RAW channels vamoirid
2024-10-10 21:00 ` [PATCH v1 12/13] iio: chemical: bme680: Add triggered buffer support vamoirid
2024-10-11 10:37 ` Andy Shevchenko
2024-10-11 19:07 ` Vasileios Aoiridis
2024-10-12 12:04 ` Jonathan Cameron
2024-10-12 12:09 ` Jonathan Cameron
2024-10-10 21:00 ` [PATCH v1 13/13] iio: chemical: bme680: Add support for preheat current vamoirid
2024-10-11 10:39 ` Andy Shevchenko
2024-10-11 19:08 ` Vasileios Aoiridis
2024-10-12 20:47 ` Andy Shevchenko
2024-10-12 12:36 ` Jonathan Cameron
2024-10-11 10:42 ` [PATCH v1 00/13]: chemical: bme680: 2nd set of clean and add Andy Shevchenko
2024-10-11 18:39 ` Vasileios Aoiridis
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=Zwj5jBm-_9_FX6ms@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=anshulusr@gmail.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gustavograzs@gmail.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=vassilisamir@gmail.com \
/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.