Messages in this thread | | | From | Masahiro Yamada <> | Date | Tue, 25 Feb 2020 00:59:53 +0900 | Subject | Re: [PATCH 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema |
| |
Hi Rob,
On Mon, Feb 24, 2020 at 11:52 PM Rob Herring <robh@kernel.org> wrote: > > On Fri, Feb 21, 2020 at 11:33 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > Hi Rob, > > > > On Sat, Feb 22, 2020 at 12:32 AM Rob Herring <robh@kernel.org> 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@socionext.com> > > > > --- > > > > > > > > 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.
OK, I see two useful cases:
[1] Documenting purpose in order to clarify that you are using this property
[2] You need to explicitly specify ': true' if you have 'additionalProperties: false' . Otherwise, the following warning is displayed: ... do not match any of the regexes: 'pinctrl-[0-9]+'
For [1], it is already clear that this binding is using ngpios from 'require'
require: - ngpios
> > > > 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.
Hmm, I am confused.
'require: - ngpios' will warn if you don't list ngpios.
'additionalProperties: false' will warn if you list other properties than what is explicitly specified.
BTW, I will not add 'additionalProperties: false' in this binding.
The real DT files have
interrupt-parent = <&aidet>; (arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi line 324)
but, commit 791d3ef2e11100449837dc0b6fe884e60ca3a484 removed interrupt-parent from bindings.
-- Best Regards Masahiro Yamada
| |