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

Andy Shevchenko
2025-08-11T16:01:06Z

On Mon, Aug 11, 2025 at 08:49:21AM -0700, Dmitry Torokhov wrote:
> 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().

Do we have all this being documented somewhere? Perhaps start with that?1

--
With Best Regards,
Andy Shevchenko