scripts: dts: Simplify and improve 'compatible' matching

Instead of

    properties:
        compatible:
            constraint: "foo"

, just have

    compatible: "foo"

at the top level of the binding.

For backwards compatibility, the old 'properties: compatible: ...' form
is still accepted for now, and is treated the same as a single-element
'compatible:'.

The old syntax was inspired by dt-schema (though it isn't
dt-schema-compatible), which is in turn a thin wrapper around
json-schema (the idea is to transform .dts files into YAML and then
verify them).

Maybe the idea was to gradually switch the syntax over to dt-schema and
then be able to use unmodified dt-schema bindings, but dt-schema is
really a different kind of tool (a completely standalone linter), and
works very differently from our stuff (see schemas/dt-core.yaml in the
dt-schema repo to get an idea of just how differently).

Better to keep it simple.

This commit also piggybacks some clarifications to the binding template
re. '#cells:'.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
This commit is contained in:
Ulf Magnusson 2019-08-19 20:32:25 +02:00 committed by Kumar Gala
commit a0fceff1a2
360 changed files with 861 additions and 1208 deletions

View file

@ -9,12 +9,11 @@ title: RV32M1 PCC (Peripheral Clock Control)
description: >
This is a representation of the RV32M1 PCC IP node
compatible: "openisa,rv32m1-pcc"
include: [clock-controller.yaml, base.yaml]
properties:
compatible:
constraint: "openisa,rv32m1-pcc"
reg:
required: true