Re: [PATCH] gpiolib: use of_node_name if line-name is missing

From: Frank Wunderlich (linux)

Date: Thu Sep 17 2026 - 10:10:44 EST


Am 2026-09-17 15:00, schrieb Andy Shevchenko:
On Thu, Sep 17, 2026 at 02:28:13PM +0200, Frank Wunderlich wrote:

Until v7.0, GPIO hogs inherited the DT node name when no line-name
property was specified. This was implemented as a fallback in
of_parse_own_gpio().

Commit d1d564ec4992 ("gpio: move hogs into GPIO core") moved hog parsing
into the GPIO core and removed this fallback.

Consequently, GPIO hogs without a line-name property are now displayed
with a ? in /sys/kernel/debug/gpio. Restore the old fallback.

...

int gpiochip_add_hog(struct gpio_chip *gc, struct fwnode_handle *fwnode)

fwnode_property_read_string(fwnode, "line-name", &name);

+ if (!name && is_of_node(fwnode))
+ name = to_of_node(fwnode)->name;

Can we move it inside the loop? Yes, I understand that it will be unnecessarily
called more times than required, but gpiod_hog() is called anyway in the loop,
so I don't think it will be a big deal. With that it will allow to group
OF-specific code in one location.

for (unsigned int i = 0; i < num_hogs; i++) {
if (is_of_node(fwnode)) {

...somewhere inside this conditional...

/*

I'm not sure what you want to achieve here (maybe only to have the is_of_node-condition once?, as the loop imho is only for enumerating multiple gpio (like "gpios = <3 0>, <4 0>;") inside one hog of_node. Here the node-name will never change (like the line-name above) and read-once is correct.
But while looking at the code i also thought about these multi-gpio-hogs (label and output-X). Imho here something like the gpio-controllers "line-names" would make sense as well as something similar for the output (or just handling this with the GPIO_ACTIVE_HIGH/LOW param).

But if you think the part should be moved into the loop, that's no big deal.

regards Frank