Re: [RFC PATCH v1 3/3] dt-bindings: thermal: Add yaml bindings for thermal zones

From: Amit Kucheria
Date: Thu Mar 05 2020 - 10:43:30 EST


On Thu, Mar 5, 2020 at 9:08 PM Rob Herring <robh@xxxxxxxxxx> wrote:
>
> On Thu, Mar 5, 2020 at 6:50 AM Amit Kucheria <amit.kucheria@xxxxxxxxxx> wrote:
> >
> > On Tue, Feb 25, 2020 at 12:10 AM Rob Herring <robh@xxxxxxxxxx> wrote:
> > >
> > > On Mon, 24 Feb 2020 12:55:37 +0530, Amit Kucheria wrote:
> > > > As part of moving the thermal bindings to YAML, split it up into 3
> > > > bindings: thermal sensors, cooling devices and thermal zones.
> > > >
> > > > The thermal-zone binding is a software abstraction to capture the
> > > > properties of each zone - how often they should be checked, the
> > > > temperature thresholds (trips) at which mitigation actions need to be
> > > > taken and the level of mitigation needed at those thresholds.
> > > >
> > > > Signed-off-by: Amit Kucheria <amit.kucheria@xxxxxxxxxx>
> > > > ---
> > > > .../bindings/thermal/thermal-zones.yaml | 302 ++++++++++++++++++
> > > > 1 file changed, 302 insertions(+)
> > > > create mode 100644 Documentation/devicetree/bindings/thermal/thermal-zones.yaml
> > > >
> > >
> > > My bot found errors running 'make dt_binding_check' on your patch:
> > >
> > > 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
> >
> > This one isn't due to my patch, I believe.
>
> Right, that's the one known warning...
>
> > > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/thermal/thermal-zones.example.dt.yaml: thermal-sensor@c263000: interrupt-names: ['uplow'] is too short
> > > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/thermal/thermal-zones.example.dt.yaml: thermal-sensor@c263000: interrupts: [[0, 506, 4]] is too short
> > > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/thermal/thermal-zones.example.dt.yaml: thermal-sensor@c265000: interrupt-names: ['uplow'] is too short
> > > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/thermal/thermal-zones.example.dt.yaml: thermal-sensor@c265000: interrupts: [[0, 507, 4]] is too short
> >
> > Fixed. Just for my information, did the check somehow figure out that
> > this (incomplete) example needed the qcom-tsens.yaml binding (based on
> > compatible string?) and then apply those rules to throw this error?
>
> Yes. And setting DT_SCHEMA_FILES did change that to only check with
> the specified schema file. However, that's now changed in linux-next
> such that examples are always checked by all schemas and
> DT_SCHEMA_FILES just limits which bindings to build and check.

DT_SCHEMA_FILES doesn't seem to take wildcards. Individual yaml files
worked fine.

$ make -k -j`nproc` ARCH=arm64 CROSS_COMPILE="ccache
aarch64-linux-gnu-" O=~/work/builds/build-aarch64/ dt_binding_check
DT_SCHEMA_FILES=Documentation/devicetree/bindings/thermal/thermal*.yaml
make[1]: Entering directory '/home/amit/work/builds/build-aarch64'
make[2]: Circular
Documentation/devicetree/bindings/processed-schema.yaml <-
Documentation/devicetree/bindings/thermal/thermal-sensor.example.dt.yaml
dependency dropped.
make[2]: Circular
Documentation/devicetree/bindings/thermal/thermal-zones.example.dt.yaml
<- Documentation/devicetree/bindings/processed-schema.yaml dependency
dropped.
make[2]: Circular
Documentation/devicetree/bindings/thermal/thermal-cooling-devices.example.dt.yaml
<- Documentation/devicetree/bindings/processed-schema.yaml dependency
dropped.
SCHEMA Documentation/devicetree/bindings/processed-schema.yaml
Traceback (most recent call last):
File "/home/amit/.local/bin/dt-mk-schema", line 7, in <module>
exec(compile(f.read(), __file__, 'exec'))
File "/home/amit/work/sources/tools-dt-schema.git/tools/dt-mk-schema",
line 32, in <module>
schemas = dtschema.process_schemas(args.schemas, core_schema=(not
args.useronly))
File "/home/amit/work/sources/tools-dt-schema.git/dtschema/lib.py",
line 475, in process_schemas
sch = process_schema(os.path.abspath(filename))
File "/home/amit/work/sources/tools-dt-schema.git/dtschema/lib.py",
line 435, in process_schema
DTValidator.check_schema(schema)
File "/home/amit/work/sources/tools-dt-schema.git/dtschema/lib.py",
line 582, in check_schema
meta_schema = cls.resolver.resolve_from_url(schema['$schema'])
TypeError: list indices must be integers or slices, not str
make[2]: *** [/home/amit/work/sources/linux-amit.git/Documentation/devicetree/bindings/Makefile:34:
Documentation/devicetree/bindings/processed-schema.yaml] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [/home/amit/work/sources/linux-amit.git/Makefile:1262:
dt_binding_check] Error 2
make[1]: Leaving directory '/home/amit/work/builds/build-aarch64'
make: *** [Makefile:179: sub-make] Error 2
make: Target 'dt_binding_check' not remade because of errors.