Re: [PATCH 0/6] Add support for software nodes to gpiolib

From: Andy Shevchenko
Date: Fri Nov 04 2022 - 13:18:39 EST


On Thu, Nov 03, 2022 at 11:10:10PM -0700, Dmitry Torokhov wrote:
> This series attempts to add support for software nodes to gpiolib, using
> software node references. This allows us to convert more drivers to the
> generic device properties and drop support for custom platform data.
>
> To describe a GPIO via software nodes we can create the following data
> items:
>
> /* Node representing the GPIO controller/GPIO bank */
> static const struct software_node gpio_bank_b_node = {
> .name = "B",
> };
>
> /*
> * Properties that will be assigned to a software node assigned to
> * the devicei that used platform data.
> */
> static const struct property_entry simone_key_enter_props[] = {
> PROPERTY_ENTRY_U32("linux,code", KEY_ENTER),
> PROPERTY_ENTRY_STRING("label", "enter"),
> PROPERTY_ENTRY_REF("gpios", &gpio_bank_b_node, 123, GPIO_ACTIVE_LOW),
> { }
> };
>
> The code in gpiolib handling software nodes uses the name in the
> software node representing GPIO controller to locate the actual instance
> of GPIO controller.
>
> Note that kbuild robot is likely to complain about this patchset because
> it depends on patches removing [devm_]gpiod_get_from_of_node() and
> devm_fwnode_get_[index_]gpiod_from_child() APIs that are still pending.
> I pushed them to
>
> git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git tmp-gpiolib
>
> for your reference.

I agree with Bart, this is nice work!
So, for the patches 1-4:

Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

> To: Linus Walleij <linus.walleij@xxxxxxxxxx>
> To: Bartosz Golaszewski <brgl@xxxxxxxx>
> To: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Cc: linux-gpio@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Cc: linux-acpi@xxxxxxxxxxxxxxx
>
> ---
> Dmitry Torokhov (6):
> gpiolib: of: change of_find_gpio() to accept device node
> gpiolib: acpi: change acpi_find_gpio() to accept firmware node
> gpiolib: acpi: teach acpi_find_gpio() to handle data-only nodes
> gpiolib: acpi: avoid leaking ACPI details into upper gpiolib layers
> gpiolib: consolidate GPIO lookups
> gpiolib: add support for software nodes
>
> drivers/gpio/Makefile | 1 +
> drivers/gpio/gpiolib-acpi.c | 132 +++++++++++++----------
> drivers/gpio/gpiolib-acpi.h | 54 +---------
> drivers/gpio/gpiolib-of.c | 52 +--------
> drivers/gpio/gpiolib-of.h | 16 +--
> drivers/gpio/gpiolib-swnode.c | 106 +++++++++++++++++++
> drivers/gpio/gpiolib-swnode.h | 13 +++
> drivers/gpio/gpiolib.c | 239 ++++++++++++++++++++----------------------
> 8 files changed, 316 insertions(+), 297 deletions(-)
> ---
> base-commit: dc04f5ab1b1114aa19b9026f816fc01ca9c9941d
> change-id: 20221031-gpiolib-swnode-948203f49b23
>
> --
> Dmitry
>

--
With Best Regards,
Andy Shevchenko