Re: [PATCH] dt-bindings: uniphier-thermal: add minItems to socionext,tmod-calibration
On Thu, Jul 16, 2020 at 10:54 PM Masahiro Yamada wrote: > > On Fri, Jul 17, 2020 at 8:09 AM Rob Herring wrote: > > > > On Tue, Jul 07, 2020 at 07:23:38PM +0900, Masahiro Yamada wrote: > > > As the description says, this property contains a pair of calibration > > > values. The number of items must be exactly 2. > > > > > > Add minItems to check a too short property. > > > > > > While I was here, I also added this property to the example because > > > this is the case in the real DT file, > > > arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi > > > > > > Also, fix the interrupt type (edge -> level) to align with the > > > real DT. > > > > > > Signed-off-by: Masahiro Yamada > > > --- > > > > > > .../bindings/thermal/socionext,uniphier-thermal.yaml | 4 +++- > > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > > > diff --git > > > a/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > > > > > > b/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > > > index 553c9dcdaeeb..57ffd0c4c474 100644 > > > --- > > > a/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > > > +++ > > > b/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > > > @@ -29,6 +29,7 @@ properties: > > > > > >socionext,tmod-calibration: > > > $ref: /schemas/types.yaml#/definitions/uint32-array > > > +minItems: 2 > > > > The intent was if minItems is not defined, then the default is the same > > as maxItems. This is not the default for json-schema, so the tooling is > > supposed to add it. > > > This implication is unclear. > > maxItems should literally only define the max, and > we should stick to json-schema as much as possible, IMHO. Yes, but we already deviate a bit as the default json-schema behavior is a bit different than DT defaults. For example, with just: items: - const: a - const: b - const: c All of these pass validation: [] [ a ] [ a, b, c, 1, 2, true ] when we really only want [ a, b, c ] to pass (by default). So we add minItems, maxItems, and additionalItems if not specified. > It would be nice if json-schema had something like: > > numItems: 2 > > as a shorthand for > > minItems: 2 > maxItems: 2 Yes, I've been thinking the same thing. It wouldn't be unprecedented as they added 'const' to shorten 'enum: [ one_entry ]'. We can add our own keywords too, but I try to avoid that so far. The only ones we have are internal to dtschema (typeSize and phandle). Rob
Re: [PATCH] dt-bindings: uniphier-thermal: add minItems to socionext,tmod-calibration
On Fri, Jul 17, 2020 at 8:09 AM Rob Herring wrote: > > On Tue, Jul 07, 2020 at 07:23:38PM +0900, Masahiro Yamada wrote: > > As the description says, this property contains a pair of calibration > > values. The number of items must be exactly 2. > > > > Add minItems to check a too short property. > > > > While I was here, I also added this property to the example because > > this is the case in the real DT file, > > arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi > > > > Also, fix the interrupt type (edge -> level) to align with the > > real DT. > > > > Signed-off-by: Masahiro Yamada > > --- > > > > .../bindings/thermal/socionext,uniphier-thermal.yaml | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git > > a/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > > b/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > > index 553c9dcdaeeb..57ffd0c4c474 100644 > > --- > > a/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > > +++ > > b/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > > @@ -29,6 +29,7 @@ properties: > > > >socionext,tmod-calibration: > > $ref: /schemas/types.yaml#/definitions/uint32-array > > +minItems: 2 > > The intent was if minItems is not defined, then the default is the same > as maxItems. This is not the default for json-schema, so the tooling is > supposed to add it. This implication is unclear. maxItems should literally only define the max, and we should stick to json-schema as much as possible, IMHO. It would be nice if json-schema had something like: numItems: 2 as a shorthand for minItems: 2 maxItems: 2 Masahiro Yamada > But looking at processed-schema.yaml, it doesn't > seem to be happening for one case here. I'm working on a fix in the > tools. > > Rob -- Best Regards Masahiro Yamada
Re: [PATCH] dt-bindings: uniphier-thermal: add minItems to socionext,tmod-calibration
On Tue, Jul 07, 2020 at 07:23:38PM +0900, Masahiro Yamada wrote: > As the description says, this property contains a pair of calibration > values. The number of items must be exactly 2. > > Add minItems to check a too short property. > > While I was here, I also added this property to the example because > this is the case in the real DT file, > arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi > > Also, fix the interrupt type (edge -> level) to align with the > real DT. > > Signed-off-by: Masahiro Yamada > --- > > .../bindings/thermal/socionext,uniphier-thermal.yaml | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git > a/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > b/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > index 553c9dcdaeeb..57ffd0c4c474 100644 > --- > a/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > +++ > b/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml > @@ -29,6 +29,7 @@ properties: > >socionext,tmod-calibration: > $ref: /schemas/types.yaml#/definitions/uint32-array > +minItems: 2 The intent was if minItems is not defined, then the default is the same as maxItems. This is not the default for json-schema, so the tooling is supposed to add it. But looking at processed-schema.yaml, it doesn't seem to be happening for one case here. I'm working on a fix in the tools. Rob
[PATCH] dt-bindings: uniphier-thermal: add minItems to socionext,tmod-calibration
As the description says, this property contains a pair of calibration values. The number of items must be exactly 2. Add minItems to check a too short property. While I was here, I also added this property to the example because this is the case in the real DT file, arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi Also, fix the interrupt type (edge -> level) to align with the real DT. Signed-off-by: Masahiro Yamada --- .../bindings/thermal/socionext,uniphier-thermal.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml b/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml index 553c9dcdaeeb..57ffd0c4c474 100644 --- a/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml +++ b/Documentation/devicetree/bindings/thermal/socionext,uniphier-thermal.yaml @@ -29,6 +29,7 @@ properties: socionext,tmod-calibration: $ref: /schemas/types.yaml#/definitions/uint32-array +minItems: 2 maxItems: 2 description: A pair of calibrated values referred from PVT, in case that the values @@ -52,7 +53,8 @@ examples: pvtctl: thermal { compatible = "socionext,uniphier-ld20-thermal"; -interrupts = <0 3 1>; +interrupts = <0 3 4>; #thermal-sensor-cells = <0>; +socionext,tmod-calibration = <0x0f22 0x68ee>; }; }; -- 2.25.1