From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/5] gpiolib: of: remove [devm_]gpiod_get_from_of_node() APIs
Date: Tue, 20 Dec 2022 16:01:08 +0200 [thread overview]
Message-ID: <Y6HAJCBs3MQxNP29@smile.fi.intel.com> (raw)
In-Reply-To: <20221219192016.1396950-5-dmitry.torokhov@gmail.com>
On Mon, Dec 19, 2022 at 11:20:16AM -0800, Dmitry Torokhov wrote:
> Now that everyone is using [devm_]fwnode_gpiod_get[_index]() APIs,
> remove OF-specific [devm_]gpiod_get_from_of_node().
I very much in favour of this change!
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
But the same question reminds, how this is possible to exists with the removed
of_get_named_gpiod_flags()?
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
> drivers/gpio/gpiolib-devres.c | 55 -----------------------------------
> drivers/gpio/gpiolib-of.c | 46 -----------------------------
> include/linux/gpio/consumer.h | 48 ------------------------------
> 3 files changed, 149 deletions(-)
>
> diff --git a/drivers/gpio/gpiolib-devres.c b/drivers/gpio/gpiolib-devres.c
> index 16a696249229..fe9ce6b19f15 100644
> --- a/drivers/gpio/gpiolib-devres.c
> +++ b/drivers/gpio/gpiolib-devres.c
> @@ -129,61 +129,6 @@ struct gpio_desc *__must_check devm_gpiod_get_index(struct device *dev,
> }
> EXPORT_SYMBOL_GPL(devm_gpiod_get_index);
>
> -/**
> - * devm_gpiod_get_from_of_node() - obtain a GPIO from an OF node
> - * @dev: device for lifecycle management
> - * @node: handle of the OF node
> - * @propname: name of the DT property representing the GPIO
> - * @index: index of the GPIO to obtain for the consumer
> - * @dflags: GPIO initialization flags
> - * @label: label to attach to the requested GPIO
> - *
> - * Returns:
> - * On successful request the GPIO pin is configured in accordance with
> - * provided @dflags.
> - *
> - * In case of error an ERR_PTR() is returned.
> - */
> -struct gpio_desc *devm_gpiod_get_from_of_node(struct device *dev,
> - const struct device_node *node,
> - const char *propname, int index,
> - enum gpiod_flags dflags,
> - const char *label)
> -{
> - struct gpio_desc **dr;
> - struct gpio_desc *desc;
> -
> - desc = gpiod_get_from_of_node(node, propname, index, dflags, label);
> - if (IS_ERR(desc))
> - return desc;
> -
> - /*
> - * For non-exclusive GPIO descriptors, check if this descriptor is
> - * already under resource management by this device.
> - */
> - if (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE) {
> - struct devres *dres;
> -
> - dres = devres_find(dev, devm_gpiod_release,
> - devm_gpiod_match, &desc);
> - if (dres)
> - return desc;
> - }
> -
> - dr = devres_alloc(devm_gpiod_release, sizeof(struct gpio_desc *),
> - GFP_KERNEL);
> - if (!dr) {
> - gpiod_put(desc);
> - return ERR_PTR(-ENOMEM);
> - }
> -
> - *dr = desc;
> - devres_add(dev, dr);
> -
> - return desc;
> -}
> -EXPORT_SYMBOL_GPL(devm_gpiod_get_from_of_node);
> -
> /**
> * devm_fwnode_gpiod_get_index - get a GPIO descriptor from a given node
> * @dev: GPIO consumer
> diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
> index fdf443310442..4a47e71782f3 100644
> --- a/drivers/gpio/gpiolib-of.c
> +++ b/drivers/gpio/gpiolib-of.c
> @@ -418,52 +418,6 @@ static unsigned long of_convert_gpio_flags(enum of_gpio_flags flags)
> return lflags;
> }
>
> -/**
> - * gpiod_get_from_of_node() - obtain a GPIO from an OF node
> - * @node: handle of the OF node
> - * @propname: name of the DT property representing the GPIO
> - * @index: index of the GPIO to obtain for the consumer
> - * @dflags: GPIO initialization flags
> - * @label: label to attach to the requested GPIO
> - *
> - * Returns:
> - * On successful request the GPIO pin is configured in accordance with
> - * provided @dflags.
> - *
> - * In case of error an ERR_PTR() is returned.
> - */
> -struct gpio_desc *gpiod_get_from_of_node(const struct device_node *node,
> - const char *propname, int index,
> - enum gpiod_flags dflags,
> - const char *label)
> -{
> - unsigned long lflags;
> - struct gpio_desc *desc;
> - enum of_gpio_flags of_flags;
> - int ret;
> -
> - desc = of_get_named_gpiod_flags(node, propname, index, &of_flags);
> - if (!desc || IS_ERR(desc))
> - return desc;
> -
> - ret = gpiod_request(desc, label);
> - if (ret == -EBUSY && (dflags & GPIOD_FLAGS_BIT_NONEXCLUSIVE))
> - return desc;
> - if (ret)
> - return ERR_PTR(ret);
> -
> - lflags = of_convert_gpio_flags(of_flags);
> -
> - ret = gpiod_configure_flags(desc, propname, lflags, dflags);
> - if (ret < 0) {
> - gpiod_put(desc);
> - return ERR_PTR(ret);
> - }
> -
> - return desc;
> -}
> -EXPORT_SYMBOL_GPL(gpiod_get_from_of_node);
> -
> static struct gpio_desc *of_find_gpio_rename(struct device_node *np,
> const char *con_id,
> unsigned int idx,
> diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h
> index 45da8f137fe5..59cb20cfac3d 100644
> --- a/include/linux/gpio/consumer.h
> +++ b/include/linux/gpio/consumer.h
> @@ -581,54 +581,6 @@ struct gpio_desc *devm_fwnode_gpiod_get(struct device *dev,
> flags, label);
> }
>
> -#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_OF_GPIO)
> -struct device_node;
> -
> -struct gpio_desc *gpiod_get_from_of_node(const struct device_node *node,
> - const char *propname, int index,
> - enum gpiod_flags dflags,
> - const char *label);
> -
> -#else /* CONFIG_GPIOLIB && CONFIG_OF_GPIO */
> -
> -struct device_node;
> -
> -static inline
> -struct gpio_desc *gpiod_get_from_of_node(const struct device_node *node,
> - const char *propname, int index,
> - enum gpiod_flags dflags,
> - const char *label)
> -{
> - return ERR_PTR(-ENOSYS);
> -}
> -
> -#endif /* CONFIG_GPIOLIB && CONFIG_OF_GPIO */
> -
> -#ifdef CONFIG_GPIOLIB
> -struct device_node;
> -
> -struct gpio_desc *devm_gpiod_get_from_of_node(struct device *dev,
> - const struct device_node *node,
> - const char *propname, int index,
> - enum gpiod_flags dflags,
> - const char *label);
> -
> -#else /* CONFIG_GPIOLIB */
> -
> -struct device_node;
> -
> -static inline
> -struct gpio_desc *devm_gpiod_get_from_of_node(struct device *dev,
> - const struct device_node *node,
> - const char *propname, int index,
> - enum gpiod_flags dflags,
> - const char *label)
> -{
> - return ERR_PTR(-ENOSYS);
> -}
> -
> -#endif /* CONFIG_GPIOLIB */
> -
> struct acpi_gpio_params {
> unsigned int crs_entry_index;
> unsigned int line_index;
> --
> 2.39.0.314.g84b9a713c41-goog
>
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2022-12-20 14:01 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-19 19:20 [PATCH 1/5] gpiolib: of: remove of_gpio_count() Dmitry Torokhov
2022-12-19 19:20 ` [PATCH 2/5] gpiolib: of: stop exporting of_gpio_named_count() Dmitry Torokhov
2022-12-20 13:50 ` Andy Shevchenko
2022-12-20 18:27 ` Dmitry Torokhov
2022-12-20 19:15 ` Andy Shevchenko
2022-12-19 19:20 ` [PATCH 3/5] gpiolib: of: remove obsolete comment for of_gpio_get_count() Dmitry Torokhov
2022-12-20 13:52 ` Andy Shevchenko
2023-01-09 13:07 ` Linus Walleij
2022-12-19 19:20 ` [PATCH 4/5] gpiolib: of: remove of_get_gpio[_flags]() and of_get_named_gpio_flags() Dmitry Torokhov
2022-12-20 13:58 ` Andy Shevchenko
2022-12-20 18:29 ` Dmitry Torokhov
2022-12-20 19:16 ` Andy Shevchenko
2022-12-19 19:20 ` [PATCH 5/5] gpiolib: of: remove [devm_]gpiod_get_from_of_node() APIs Dmitry Torokhov
2022-12-20 14:01 ` Andy Shevchenko [this message]
2022-12-20 18:30 ` Dmitry Torokhov
2022-12-20 13:51 ` [PATCH 1/5] gpiolib: of: remove of_gpio_count() Andy Shevchenko
2022-12-20 18:33 ` Dmitry Torokhov
2022-12-30 15:55 ` Bartosz Golaszewski
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=Y6HAJCBs3MQxNP29@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=brgl@bgdev.pl \
--cc=dmitry.torokhov@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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.