From: Jonathan Cameron <jic23@kernel.org>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>,
linux-iio@vger.kernel.org, Hartmut Knaack <knaack.h@gmx.de>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Subject: Re: [PATCH v1 3/3] iio: st_lsm6dsx: Make use of device properties
Date: Mon, 23 Dec 2019 16:14:35 +0000 [thread overview]
Message-ID: <20191223161435.336dd7e1@archlinux> (raw)
In-Reply-To: <20191216181925.927-3-andriy.shevchenko@linux.intel.com>
On Mon, 16 Dec 2019 20:19:25 +0200
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> Device property API allows to gather device resources from different sources,
> such as ACPI. Convert the drivers to unleash the power of device property API.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Looks good to me. I'd ideally like Lorenzo of someone else to give it
a sanity check. However, I confident enough to add it to the branch
that gets pushed out for build tests in the meantime.
Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with it.
Thanks,
Jonathan
> ---
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 26 ++++++++++----------
> 1 file changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> index a7d40c02ce6b..2b01155d1f32 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> @@ -54,6 +54,7 @@
> #include <linux/interrupt.h>
> #include <linux/irq.h>
> #include <linux/pm.h>
> +#include <linux/property.h>
> #include <linux/regmap.h>
> #include <linux/bitfield.h>
>
> @@ -1826,14 +1827,14 @@ static const struct iio_info st_lsm6dsx_gyro_info = {
> .hwfifo_set_watermark = st_lsm6dsx_set_watermark,
> };
>
> -static int st_lsm6dsx_of_get_drdy_pin(struct st_lsm6dsx_hw *hw, int *drdy_pin)
> +static int st_lsm6dsx_get_drdy_pin(struct st_lsm6dsx_hw *hw, int *drdy_pin)
> {
> - struct device_node *np = hw->dev->of_node;
> + struct device *dev = hw->dev;
>
> - if (!np)
> + if (!dev_fwnode(dev))
> return -EINVAL;
>
> - return of_property_read_u32(np, "st,drdy-int-pin", drdy_pin);
> + return device_property_read_u32(dev, "st,drdy-int-pin", drdy_pin);
> }
>
> static int
> @@ -1842,7 +1843,7 @@ st_lsm6dsx_get_drdy_reg(struct st_lsm6dsx_hw *hw,
> {
> int err = 0, drdy_pin;
>
> - if (st_lsm6dsx_of_get_drdy_pin(hw, &drdy_pin) < 0) {
> + if (st_lsm6dsx_get_drdy_pin(hw, &drdy_pin) < 0) {
> struct st_sensors_platform_data *pdata;
> struct device *dev = hw->dev;
>
> @@ -1871,15 +1872,15 @@ st_lsm6dsx_get_drdy_reg(struct st_lsm6dsx_hw *hw,
> static int st_lsm6dsx_init_shub(struct st_lsm6dsx_hw *hw)
> {
> const struct st_lsm6dsx_shub_settings *hub_settings;
> - struct device_node *np = hw->dev->of_node;
> struct st_sensors_platform_data *pdata;
> + struct device *dev = hw->dev;
> unsigned int data;
> int err = 0;
>
> hub_settings = &hw->settings->shub_settings;
>
> - pdata = (struct st_sensors_platform_data *)hw->dev->platform_data;
> - if ((np && of_property_read_bool(np, "st,pullups")) ||
> + pdata = (struct st_sensors_platform_data *)dev->platform_data;
> + if ((dev_fwnode(dev) && device_property_read_bool(dev, "st,pullups")) ||
> (pdata && pdata->pullups)) {
> err = st_lsm6dsx_set_page(hw, true);
> if (err < 0)
> @@ -2157,9 +2158,9 @@ static irqreturn_t st_lsm6dsx_handler_thread(int irq, void *private)
>
> static int st_lsm6dsx_irq_setup(struct st_lsm6dsx_hw *hw)
> {
> - struct device_node *np = hw->dev->of_node;
> struct st_sensors_platform_data *pdata;
> const struct st_lsm6dsx_reg *reg;
> + struct device *dev = hw->dev;
> unsigned long irq_type;
> bool irq_active_low;
> int err;
> @@ -2187,8 +2188,8 @@ static int st_lsm6dsx_irq_setup(struct st_lsm6dsx_hw *hw)
> if (err < 0)
> return err;
>
> - pdata = (struct st_sensors_platform_data *)hw->dev->platform_data;
> - if ((np && of_property_read_bool(np, "drive-open-drain")) ||
> + pdata = (struct st_sensors_platform_data *)dev->platform_data;
> + if ((dev_fwnode(dev) && device_property_read_bool(dev, "drive-open-drain")) ||
> (pdata && pdata->open_drain)) {
> reg = &hw->settings->irq_config.od;
> err = regmap_update_bits(hw->regmap, reg->addr, reg->mask,
> @@ -2218,7 +2219,6 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
> {
> struct st_sensors_platform_data *pdata = dev->platform_data;
> const struct st_lsm6dsx_shub_settings *hub_settings;
> - struct device_node *np = dev->of_node;
> struct st_lsm6dsx_hw *hw;
> const char *name = NULL;
> int i, err;
> @@ -2281,7 +2281,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
> return err;
> }
>
> - if ((np && of_property_read_bool(np, "wakeup-source")) ||
> + if ((dev_fwnode(dev) && device_property_read_bool(dev, "wakeup-source")) ||
> (pdata && pdata->wakeup_source))
> device_init_wakeup(dev, true);
>
next prev parent reply other threads:[~2019-12-23 16:14 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-16 18:19 [PATCH v1 1/3] iio: st_lsm6dsx: Mark predefined constants with __maybe_unused Andy Shevchenko
2019-12-16 18:19 ` [PATCH v1 2/3] iio: st_lsm6dsx: Drop unneeded OF code Andy Shevchenko
2019-12-23 16:11 ` Jonathan Cameron
2019-12-16 18:19 ` [PATCH v1 3/3] iio: st_lsm6dsx: Make use of device properties Andy Shevchenko
2019-12-23 16:14 ` Jonathan Cameron [this message]
2019-12-23 16:10 ` [PATCH v1 1/3] iio: st_lsm6dsx: Mark predefined constants with __maybe_unused Jonathan Cameron
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=20191223161435.336dd7e1@archlinux \
--to=jic23@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=lorenzo.bianconi83@gmail.com \
--cc=pmeerw@pmeerw.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox