Re: [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema

From: Rob Herring
Date: Mon Feb 24 2020 - 09:52:07 EST


On Fri, Feb 21, 2020 at 11:33 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
>
> Hi Rob,
>
> On Sat, Feb 22, 2020 at 12:32 AM Rob Herring <robh@xxxxxxxxxx> wrote:
> >
> > On Fri, 21 Feb 2020 11:10:01 +0900, Masahiro Yamada wrote:
> > > Convert the UniPhier GPIO controller binding to DT schema format.
> > >
> > > I omitted the 'gpio-ranges' property because it is defined in the
> > > dt-schema project (/schemas/gpio/gpio.yaml).
> > >
> > > As of writing, the 'gpio-ranges-group-names' is not defined in that
> > > file despite it is a common property described in
> > > Documentation/devicetree/bindings/gpio/gpio.txt
> > > So, I defined it in this schema.
> > >
> > > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> > > ---
> > >
> > > I have a question about the range about 'ngpio'.
> > >
> > > ngpios:
> > > minimum: 0
> > > maximum: 512
> > >
> > > The 'ngpio' property is already defined as 'uint32' in the dt-schema tool:
> > > https://github.com/robherring/dt-schema/blob/master/schemas/gpio/gpio.yaml#L20
> > >
> > > 'uint32' is unsigned, so 'minimum: 0' looks too obvious.
> > >
> > > I cannot omit the minimum because minimum and maximum depend on each other.
> > > I just put a sensible number, 512, in maximum.
> > >
> > > If this range is entirely unneeded, I will delete it.
> >
> > This property is generally for when you can have some number less
> > than a maximum number implied by the compatible string.
> >
> > If there is really no max (e.g. 2^32 - 1 is valid), then just do
> > 'ngpios: true'
>
>
> What does ': true' mean?

It's a schema that always passes validation. It's purpose here is just
to say you are using this common property for this binding.

>
> If it is documented somewhere,
> could you point me to the reference?

https://github.com/devicetree-org/dt-schema/blob/master/schemas/gpio/gpio.yaml

>
> Even if I remove the 'ngpio' entirely
> from my dt-schema, the 'ngpio' is checked
> correctly.

Yes, if you change it to a string value for example, it should fail.
(Only if DT_SCHEMA_FILES is not set without my kbuild changes)

You should also add 'additionalProperties: false' at the top level of
your schema and then it will also fail if you don't list ngpios in
properties.

Rob