Re: [PATCH 12/13] dt-bindings: arm: Add Calxeda system registers json-schema binding

From: Rob Herring
Date: Thu Feb 27 2020 - 09:44:40 EST


On Wed, Feb 26, 2020 at 6:12 PM Andrà Przywara <andre.przywara@xxxxxxx> wrote:
>
> On 26/02/2020 21:57, Rob Herring wrote:
>
> Hi Rob,
>
> thanks for giving it a try!
>
> > On Wed, 26 Feb 2020 18:09:00 +0000, Andre Przywara wrote:
> >> The Calxeda system registers are a collection of MMIO register
> >> controlling several more general aspects of the SoC.
> >> Beside for some power management tasks this node is also somewhat
> >> abused as the container for the clock nodes.
> >>
> >> Add a binding in DT schema format using json-schema.
> >>
> >> Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>
> >> ---
> >> .../bindings/arm/calxeda/hb-sregs.yaml | 47 +++++++++++++++++++
> >> 1 file changed, 47 insertions(+)
> >> create mode 100644 Documentation/devicetree/bindings/arm/calxeda/hb-sregs.yaml
> >>
> >
> > My bot found errors running 'make dt_binding_check' on your patch:
> >
> > warning: no schema found in file: Documentation/devicetree/bindings/arm/calxeda/hb-sregs.yaml
> > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/arm/calxeda/hb-sregs.yaml: ignoring, error in schema: properties: clocks
> > Documentation/devicetree/bindings/display/simple-framebuffer.example.dts:21.16-37.11: Warning (chosen_node_is_root): /example-0/chosen: chosen node must be at root node
> > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/arm/calxeda/hb-sregs.yaml: properties:clocks: {'type': 'object'} is not valid under any of the given schemas (Possible causes of the failure):
> > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/arm/calxeda/hb-sregs.yaml: properties:clocks: 'maxItems' is a required property
> >
> > Documentation/devicetree/bindings/Makefile:12: recipe for target 'Documentation/devicetree/bindings/arm/calxeda/hb-sregs.example.dts' failed
> > make[1]: *** [Documentation/devicetree/bindings/arm/calxeda/hb-sregs.example.dts] Error 1
> > Makefile:1263: recipe for target 'dt_binding_check' failed
> > make: *** [dt_binding_check] Error 2
> >
> > See https://patchwork.ozlabs.org/patch/1245261
> > Please check and re-submit.
>
> Ah, right, I forgot that I actually fixed dt-schema:
>
> It seems like we can cope with "clocks" being just a node name in
> schema/clock/clock.yaml [1], but not in meta-schemas/clocks.yaml [2].
>
> I added a similar anyOf ... to the meta-schemas entry, which seems to
> fix it for me.
>
> Can you confirm that this is a bug in dt-schema and this is the proper
> fix or am I doing something wrong (I have only a smattering in
> dt-schema/json)?

Yeah, that's right. Though ideally we'd avoid names that are used as
both properties and nodes, but this one is kind of widely used.

Can you submit a GH pull req with the fix (use the devicetree-org one,
not my tree).

Rob