Re: [PATCH v2 1/5] dt-bindings: Add compatible string opencores,gpio to gpio-mmio

Linus Walleij <[email protected]>
Newsgroups org.kernel.vger.linux-openrisc,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel
Message-ID <CAD++jLm1u9ChqsftwvbOptiG3Qo2KWxPjqN2snOVuZDYuVST5Q@mail.gmail.com>
On Thu, Jan 8, 2026 at 9:41 AM Geert Uytterhoeven <[email protected]> wrote:

> > > What is the rationale behind using brcm,bcm6345-gpio?
> > > Given brcm,bcm6345-gpio has 32-bit registers, while opencores,gpio
> > > has 8-bit registers, I doubt the latter is compatible with the former...

Yeah this needs to be fixed/reverted pronto :/

> > I switch the size from 32-bit to 8-bit using the reg = <* 0x1>, <* 0x1> setting.
> > Also the reg addresses of "dat" and "dirout" are different for the real
> > brcm,bcm6345-gpio.
> >
> > brcm,bcm6345-gpio. Example:
> >
> >        /* GPIOs 192 .. 223 */
> >        gpio6: gpio@518 {
> >                compatible = "brcm,bcm6345-gpio";
> >                reg = <0x518 0x04>, <0x538 0x04>;
> >                reg-names = "dirout", "dat";
> >                gpio-controller;
> >                #gpio-cells = <2>;
> >        };
> >
> > vs opencores,gpio Example:
> >
> >        gpio0: gpio@91000000 {
> >                compatible = "opencores,gpio", "brcm,bcm6345-gpio";
> >                reg = <0x91000000 0x1>, <0x91000001 0x1>;
> >                reg-names = "dat", "dirout";
> >                gpio-controller;
> >                #gpio-cells = <2>;
> >        };
>
> Exactly, the register space and register widths are different

...as proved here.

Stafford can you send a fixup or revert patch?
(Only need to revert if you can't make a fix quick enough, which I
think you can.)

> > The opencores,gpio setup does work.
> >
> > Now that I think about it, would it have been better to just add opencores,gpio
> > to gpio-mmio.c compatible list?
>
> I think that would be better.

Yes this is better.

I should have seen this, I guess I was sloppy :(

> > If so I will can revise this patch and add patch to gpio-mmio.c.
>
> DT maintainers: Given gpio-mmio is that generic/simple, is there a
> specific reason there is no generic "gpio-mmio" compatible value that
> can be used as a fallback, avoiding the need to keep on adding new
> entries to gpio_mmio_of_match[]?

I think "gpio-mmio" combined with compulsory property of
bus-width = <nn> (as used by multiple bindings) would be
generic enough. So a schema that accepts "gpio-mmio" if and
only if bus-width = 8|16|32|64 would be acceptable.

Yours,
Linus Walleij
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.