Re: [PATCH v2 1/2] dt-bindings: gpio: add gpio-aggregator binding

From: Geert Uytterhoeven

Date: Fri Feb 20 2026 - 08:29:05 EST


Hi Hervé,

On Fri, 20 Feb 2026 at 14:07, Herve Codina <herve.codina@xxxxxxxxxxx> wrote:
> On Fri, 20 Feb 2026 10:15:59 +0100
> Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> > On Fri, 20 Feb 2026 at 09:35, Linus Walleij <linusw@xxxxxxxxxx> wrote:
> > > On Fri, Feb 20, 2026 at 9:17 AM Herve Codina <herve.codina@xxxxxxxxxxx> wrote:
> > > > 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?
> > >
> > > Can't you just use the foo-n suffix trick from the pinctrl etc?
> > >
> > > my_nexus: nexus {
> > > gpio-map = <...>;
> > > interrupt-map = <...>;
> > > nexus_i2c0: i2c-bus-0 = <&i2c4>;
> > > nexus_i2c1: i2c-bus-1 = <&i2c6>;
> > > nexus_i2c2: i2c-bus-3 = <&i2c8>;
> > > };
> > >
> > > &nexus_i2c1 {
> > > sensor@4c {
> > > ....
> > > };
> > > };
> > >
> > > Maybe it's not as elegant but I think it could work?
> >
> > Wasn't that already solved using i2c-parent, cfr. the connectors
> > discussion at last ELC-E?
>
> Well, I wouldn't say "solved".
>
> But yeah, the idea is i2c bus extension:
> https://lore.kernel.org/all/20250205173918.600037-1-herve.codina@xxxxxxxxxxx/
> https://lore.kernel.org/all/20250618082313.549140-1-herve.codina@xxxxxxxxxxx/
>
> When DT overlays enter in the loop, the main issue is to reference a
> symbol from the overlay.
>
> This issue led to DT addons to replace overlays:
> https://lore.kernel.org/all/de02ed8c-0176-4996-ad7a-680a2e115161@xxxxxxxxxxxxxxx/
>
> All of these is really out of scope of this "dt-bindings: gpio: add
> gpio-aggregator binding" series.
>
> I am open to discuss nexus nodes, busses, DT addons but I don't thing this
> series is the right place to do this discussions and, on my side, I don't
> want to pollute James' work with all that stuff.

So true ;-)

If James' connector uses only GPIOs, he can already use the GPIO
aggregator:
1. Write DT bindings for the "device" (the expansion board) attached
to the connector, with a real compatible value,
2. Add the real compatible value to gpio_aggregator_dt_ids[].

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds