Re: [PATCH v2 1/2] dt-bindings: gpio: add gpio-aggregator binding
From: Herve Codina
Date: Fri Feb 20 2026 - 03:17:41 EST
Hi Linus,
On Thu, 19 Feb 2026 18:57:48 +0100
Linus Walleij <linusw@xxxxxxxxxx> wrote:
> On Fri, Feb 13, 2026 at 3:34 PM Rob Herring <robh@xxxxxxxxxx> wrote:
>
> > > > Humm, peripheral boards! So there's a connector. You need a connector
> > > > binding. And the one solved binding for such a thing is GPIO! The
> > > > gpio-map property lets you remap GPIOs from one provider (the connector)
> > > > to a parent provider (soc_gpio). It would look something like this:
> > >
> > > Well...some GPIOs are wired to peripheral board connectors...but
> > > some are wired to things like built in LEDs and a few different
> > > on-controller components as well which vary by controller hardware
> > > revisions.
> > >
> > > This gpio-map feature doesn't exist in the mainline kernel does it?
> >
> > For at least the last 5 years. It's even defined in the DT spec
> > (generically as "nexus").
>
> I actually tested this. It works.
>
> It's however a bit annoying that we do not have a single upstream
> DTS file using it, so there are no examples to look at other than
> in the documentation.
>
> I suppose there would also be greater buy-in to the concept if
> we had managed to push the same for at least I2C and SPI,
> but it's easy to ask other people to work, I know that.
Nexus for I2C or SPI will not work.
In fact, busses cannot work with nexus node concept.
A nexus node translate a phandle.
prop = <&nexus X> is, in the end, translated to <&controller Y>.
For busses, you describe devices connected to the bus as sub-nodes of the
bus controller node.
&spi0 {
my_device@0 {
reg = 0;
...
};
};
No phandle involved but labels.
With nexus, you cannot translate &spi0.
Also nexus works well when an index is involved. In other word, it works
well with phandle with args.
i2c-bus = <&i2c0>;
In this kind of of definition, no index are present. With nexus node, this
looks like
i2c-bus = <&nexus>;
How to handle multiple i2c busses with nexus node?
Some ways other than nexus have to explored to handle busses.
Best regards,
Hervé