In FPGA Development boards with GPIOs we use the opencores gpio verilog
rtl. This is compatible with the gpio-mmio. Add the compatible string
to allow as below.
Example:
gpio0: gpio@91000000 {
compatible = "opencores,gpio", "brcm,bcm6345-gpio";
reg = <0x91000000 0x1>, <0x91000001 0x1>;
reg-names = "dat", "dirout";
gpio-controller;
#gpio-cells = <2>;
status = "okay";
};
Link: https://opencores.org/projects/gpio
Signed-off-by: Stafford Horne <shorne@gmail.com>
---
Documentation/devicetree/bindings/gpio/gpio-mmio.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
index b4d55bf6a285..0490580df19e 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
+++ b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
@@ -23,6 +23,7 @@ properties:
- ni,169445-nand-gpio
- wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
- intel,ixp4xx-expansion-bus-mmio-gpio
+ - opencores,gpio
big-endian: true
--
2.51.0
On Sun, Dec 14, 2025 at 06:01:41PM +0000, Stafford Horne wrote:
> In FPGA Development boards with GPIOs we use the opencores gpio verilog
> rtl. This is compatible with the gpio-mmio. Add the compatible string
> to allow as below.
>
> Example:
>
> gpio0: gpio@91000000 {
> compatible = "opencores,gpio", "brcm,bcm6345-gpio";
What you have done below does not permit this, it only permits
opencores,gpio in isolation.
pw-bot: changes-requested
> reg = <0x91000000 0x1>, <0x91000001 0x1>;
> reg-names = "dat", "dirout";
> gpio-controller;
> #gpio-cells = <2>;
> status = "okay";
> };
>
> Link: https://opencores.org/projects/gpio
> Signed-off-by: Stafford Horne <shorne@gmail.com>
> ---
> Documentation/devicetree/bindings/gpio/gpio-mmio.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> index b4d55bf6a285..0490580df19e 100644
> --- a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> +++ b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> @@ -23,6 +23,7 @@ properties:
> - ni,169445-nand-gpio
> - wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
> - intel,ixp4xx-expansion-bus-mmio-gpio
> + - opencores,gpio
>
> big-endian: true
>
> --
> 2.51.0
>
On Mon, Dec 15, 2025 at 04:57:45PM +0000, Conor Dooley wrote:
> On Sun, Dec 14, 2025 at 06:01:41PM +0000, Stafford Horne wrote:
> > In FPGA Development boards with GPIOs we use the opencores gpio verilog
> > rtl. This is compatible with the gpio-mmio. Add the compatible string
> > to allow as below.
> >
> > Example:
> >
> > gpio0: gpio@91000000 {
> > compatible = "opencores,gpio", "brcm,bcm6345-gpio";
>
> What you have done below does not permit this, it only permits
> opencores,gpio in isolation.
> pw-bot: changes-requested
Understood, I was not familar with the new schema. I was trying to follow what
was seen in some other patches, now I see where I went wrong. I will fix this
and use the schema validation tools to verify.
Thanks for pointing it out.
> > reg = <0x91000000 0x1>, <0x91000001 0x1>;
> > reg-names = "dat", "dirout";
> > gpio-controller;
> > #gpio-cells = <2>;
> > status = "okay";
> > };
> >
> > Link: https://opencores.org/projects/gpio
> > Signed-off-by: Stafford Horne <shorne@gmail.com>
> > ---
> > Documentation/devicetree/bindings/gpio/gpio-mmio.yaml | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> > index b4d55bf6a285..0490580df19e 100644
> > --- a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> > +++ b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> > @@ -23,6 +23,7 @@ properties:
> > - ni,169445-nand-gpio
> > - wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
> > - intel,ixp4xx-expansion-bus-mmio-gpio
> > + - opencores,gpio
> >
> > big-endian: true
> >
> > --
> > 2.51.0
> >
On Mon, Dec 15, 2025 at 06:40:49PM +0000, Stafford Horne wrote:
> On Mon, Dec 15, 2025 at 04:57:45PM +0000, Conor Dooley wrote:
> > On Sun, Dec 14, 2025 at 06:01:41PM +0000, Stafford Horne wrote:
> > > In FPGA Development boards with GPIOs we use the opencores gpio verilog
> > > rtl. This is compatible with the gpio-mmio. Add the compatible string
> > > to allow as below.
> > >
> > > Example:
> > >
> > > gpio0: gpio@91000000 {
> > > compatible = "opencores,gpio", "brcm,bcm6345-gpio";
> >
> > What you have done below does not permit this, it only permits
> > opencores,gpio in isolation.
> > pw-bot: changes-requested
>
> Understood, I was not familar with the new schema. I was trying to follow what
> was seen in some other patches, now I see where I went wrong. I will fix this
> and use the schema validation tools to verify.
>
> Thanks for pointing it out.
I think the below is correct. But, would this be ok to put in one patch?
I do:
- Convert compatible from simple enum to oneOf.
- Add items: for the openrisc,gpio compatiblity string.
properties:
compatible:
- enum:
- - brcm,bcm6345-gpio
- - ni,169445-nand-gpio
- - wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
- - intel,ixp4xx-expansion-bus-mmio-gpio
+ oneOf:
+ - const: brcm,bcm6345-gpio
+ - const: ni,169445-nand-gpio
+ - const: wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
+ - const: intel,ixp4xx-expansion-bus-mmio-gpio
+ - items:
+ - enum:
+ - opencores,gpio
+ - const: brcm,bcm6345-gpio
Thanks,
-Stafford
> > > reg = <0x91000000 0x1>, <0x91000001 0x1>;
> > > reg-names = "dat", "dirout";
> > > gpio-controller;
> > > #gpio-cells = <2>;
> > > status = "okay";
> > > };
> > >
> > > Link: https://opencores.org/projects/gpio
> > > Signed-off-by: Stafford Horne <shorne@gmail.com>
> > > ---
> > > Documentation/devicetree/bindings/gpio/gpio-mmio.yaml | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> > > index b4d55bf6a285..0490580df19e 100644
> > > --- a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> > > +++ b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
> > > @@ -23,6 +23,7 @@ properties:
> > > - ni,169445-nand-gpio
> > > - wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
> > > - intel,ixp4xx-expansion-bus-mmio-gpio
> > > + - opencores,gpio
> > >
> > > big-endian: true
> > >
> > > --
> > > 2.51.0
> > >
>
>
On Mon, Dec 15, 2025 at 07:34:40PM +0000, Stafford Horne wrote:
> On Mon, Dec 15, 2025 at 06:40:49PM +0000, Stafford Horne wrote:
> > On Mon, Dec 15, 2025 at 04:57:45PM +0000, Conor Dooley wrote:
> > > On Sun, Dec 14, 2025 at 06:01:41PM +0000, Stafford Horne wrote:
> > > > In FPGA Development boards with GPIOs we use the opencores gpio verilog
> > > > rtl. This is compatible with the gpio-mmio. Add the compatible string
> > > > to allow as below.
> > > >
> > > > Example:
> > > >
> > > > gpio0: gpio@91000000 {
> > > > compatible = "opencores,gpio", "brcm,bcm6345-gpio";
> > >
> > > What you have done below does not permit this, it only permits
> > > opencores,gpio in isolation.
> > > pw-bot: changes-requested
> >
> > Understood, I was not familar with the new schema. I was trying to follow what
> > was seen in some other patches, now I see where I went wrong. I will fix this
> > and use the schema validation tools to verify.
> >
> > Thanks for pointing it out.
>
> I think the below is correct. But, would this be ok to put in one patch?
>
> I do:
> - Convert compatible from simple enum to oneOf.
> - Add items: for the openrisc,gpio compatiblity string.
>
> properties:
> compatible:
> - enum:
> - - brcm,bcm6345-gpio
> - - ni,169445-nand-gpio
> - - wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
> - - intel,ixp4xx-expansion-bus-mmio-gpio
> + oneOf:
> + - const: brcm,bcm6345-gpio
> + - const: ni,169445-nand-gpio
> + - const: wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
> + - const: intel,ixp4xx-expansion-bus-mmio-gpio
This is fine, but keep the enum instead of making these into a bunch of
const entries. IOW, just put a - in front of the existing enum: and
reindent it to be correct under the oneOf.
> + - items:
> + - enum:
> + - opencores,gpio
> + - const: brcm,bcm6345-gpio
© 2016 - 2025 Red Hat, Inc.