Thread (32 messages) 32 messages, 2 authors, 2021-12-02

Re: [PATCH v11 2/6] gpiolib: allow to specify the firmware node in struct gpio_chip

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2021-11-30 16:15:13
Also in: linux-kselftest, lkml

On Tue, Nov 30, 2021 at 04:41:23PM +0100, Bartosz Golaszewski wrote:
Software nodes allow us to represent hierarchies for device components
that don't have their struct device representation yet - for instance:
banks of GPIOs under a common GPIO expander. The core gpiolib core
core .. core ?!
however doesn't offer any way of passing this information from the
drivers.

This extends struct gpio_chip with a pointer to fwnode that can be set
by the driver and used to pass device properties for child nodes.

This is similar to how we handle device-tree sub-nodes with
CONFIG_OF_GPIO enabled.
Not sure I understand the proposal. Can you provide couple of (simplest)
examples?

And also it sounds like reinventing a wheel. What problem do you have that you
need to solve this way?

...
+#if IS_ENABLED(CONFIG_OF_GPIO)
+	if (gc->of_node && gc->fwnode) {
+		pr_err("%s: tried to set both the of_node and fwnode in gpio_chip\n",
+		       __func__);
+		return -EINVAL;
+	}
+#endif /* CONFIG_OF_GPIO */
I don't like this. It seems like a hack right now.

Is it possible to convert all GPIO controller drivers to provide an fwnode
rather than doing this? (I believe in most of the drivers we can drop
completely the of_node assignment).

-- 
With Best Regards,
Andy Shevchenko

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help