Re: [PATCH] platform/x86: barco-p50-gpio: use software nodes for gpio-leds/keys

From: Dmitry Torokhov
Date: Mon Aug 11 2025 - 12:11:15 EST


On Mon, Aug 11, 2025 at 06:45:23PM +0300, Andy Shevchenko wrote:
> On Mon, Aug 11, 2025 at 04:20:33PM +0200, Hans de Goede wrote:
> > On 11-Aug-25 2:44 PM, Andy Shevchenko wrote:
> > > On Sun, Aug 10, 2025 at 09:31:37PM -0700, Dmitry Torokhov wrote:
>
> ...
>
> > > Otherwise LGTM as here it looks like we establish platform device ourselves and
> > > hence no need some additional magic Hans mentioned in the other series.
> >
> > Not entirely like with the x86-android-tablets patches this
> > declares a software-node for the gpiochip:
> >
> > static const struct software_node gpiochip_node = {
> > .name = DRIVER_NAME,
> > };
> >
> > and registers that node, but nowhere does it actually
> > get assigned to the gpiochip.
> >
> > This is going to need a line like this added to probe():
> >
> > p50->gc.fwnode = software_node_fwnode(&gpiochip_node);
> >
> > note the software_node_fwnode() call MUST be made after
> > registering the software-nodes (group).
> >
> > Other then needing this single line things are indeed
> > much easier when the code containing the software
> > properties / nodes is the same code as which is
> > registering the gpiochip.
>
> Ah, good point!

This is wrong though, the software node need not be attached to the
gpiochip (and I wonder if it is even safe to do so). It simply provides
a name by which gpiochip is looked up in swnode_get_gpio_device().

Thanks.

--
Dmitry