On Tue, Mar 24, 2020 at 4:33 AM Amit Kucheria <amit.kucheria@xxxxxxxxxx> wrote: > > On Tue, Mar 24, 2020 at 2:46 AM Rob Herring <robh@xxxxxxxxxx> wrote: > > > > On Mon, Mar 23, 2020 at 2:46 PM Amit Kucheria <amit.kucheria@xxxxxxxxxx> wrote: > > > > > > Hi Rob, > > > > > > Thanks for the review. > > > > > > On Wed, Mar 11, 2020 at 8:19 PM Rob Herring <robh@xxxxxxxxxx> wrote: > > > > > > > > On Thu, Mar 05, 2020 at 06:26:43PM +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. > > > > [...] > > > > > > > > + /* ... */ > > > > > + > > > > > + gpu-thermal-top { > > > > > > > > This one is not going to match (which should cause an error). > > > > > > Good catch. Unfortunately, this isn't getting caught. Nor is the > > > 12-char limitation before -thermal in the thermal zone name. I can't > > > figure out why. > > > > That's because this schema has to be included by another schema which > > matches on a parent node containing 'thermal-zones'. If > > 'thermal-zones' can be at the root node, then you should rework this > > such that you have $nodename: {const: thermal-zones} as a top-level > > property. > > I've done all the change requested in the review(see attached patch), > including moving to > > properties: > $nodename: > const: thermal-zones > > but that generates a bunch of errors similar to: > > /home/amit/work/builds/build-aarch64/Documentation/devicetree/bindings/arm/zte.example.dt.yaml: > /: $nodename:0: 'thermal-zones' was expected > /home/amit/work/builds/build-aarch64/Documentation/devicetree/bindings/arm/psci.example.dt.yaml: > /: $nodename:0: 'thermal-zones' was expected > /home/amit/work/builds/build-aarch64/Documentation/devicetree/bindings/arm/sunxi.example.dt.yaml: > /: $nodename:0: 'thermal-zones' was expected > /home/amit/work/builds/build-aarch64/Documentation/devicetree/bindings/arm/sprd/sprd.example.dt.yaml: > /: $nodename:0: 'thermal-zones' was expected > /home/amit/work/builds/build-aarch64/Documentation/devicetree/bindings/arm/calxeda.example.dt.yaml: > /: $nodename:0: 'thermal-zones' was expected > /home/amit/work/builds/build-aarch64/Documentation/devicetree/bindings/arm/ti/ti,davinci.example.dt.yaml: > /: $nodename:0: 'thermal-zones' was expected > /home/amit/work/builds/build-aarch64/Documentation/devicetree/bindings/arm/spear.example.dt.yaml: > /: $nodename:0: 'thermal-zones' was expected > /home/amit/work/builds/build-aarch64/Documentation/devicetree/bindings/arm/ti/nspire.example.dt.yaml: > /: $nodename:0: 'thermal-zones' was expected > > It seems like dtc is expecting every node to have a thermal-zones node? > > Looking at other root nodes such as cpus.yaml, the main difference I > noticed was the absence of the "select: true" property. However, if I > remove that, we go back to the schema not being applied. 'select: true' should be dropped. It will be applied to any 'thermal-zones' nodes. The generated 'select' will use $nodename if compatible is not present for the schema. I tested that putting an error in the example works. > You mentioned that the thermal-zones schema needs to included by > another schema. What did you mean by that? Nevermind, I wasn't thinking that it's a top-level node. If it was a child node, then you'd want to include it from the parent schemas. Rob