Message ID | 20230404205014.644336-1-robh@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties | expand |
On Tue, 4 Apr 2023 15:50:13 -0500 Rob Herring <robh@kernel.org> wrote: > The child node schemas are missing 'unevaluatedProperties' constraints, > so any unknown properties are allowed. The current structure with > multiple patternProperties schemas doesn't work for > unevaluatedProperties as each sub-schema is evaluated independently. To > fix this, move the sub-schema for all child nodes to a $defs entry and > reference it from each named child node. > > Signed-off-by: Rob Herring <robh@kernel.org> Nice. Series applied to the togreg branch of iio.git and pushed out as testing so 0-day can poke at it. Thanks, Jonathan > --- > .../bindings/iio/temperature/adi,ltc2983.yaml | 65 +++++++++++-------- > 1 file changed, 38 insertions(+), 27 deletions(-) > > diff --git a/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml b/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml > index f44fc32ce87e..e04f961ab92c 100644 > --- a/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml > +++ b/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml > @@ -18,6 +18,28 @@ description: | > https://www.analog.com/media/en/technical-documentation/data-sheets/29861fa.pdf > https://www.analog.com/media/en/technical-documentation/data-sheets/ltm2985.pdf > > +$defs: > + sensor-node: > + type: object > + description: Sensor node common constraints > + > + properties: > + reg: > + description: > + Channel number. Connects the sensor to the channel with this number > + of the device. > + minimum: 1 > + maximum: 20 > + > + adi,sensor-type: > + description: Type of sensor connected to the device. > + $ref: /schemas/types.yaml#/definitions/uint32 > + > + required: > + - reg > + - adi,sensor-type > + > + > properties: > compatible: > oneOf: > @@ -64,28 +86,10 @@ properties: > const: 0 > > patternProperties: > - "@([0-9a-f]+)$": > - type: object > - description: Sensor. > - > - properties: > - reg: > - description: > - Channel number. Connects the sensor to the channel with this number > - of the device. > - minimum: 1 > - maximum: 20 > - > - adi,sensor-type: > - description: Type of sensor connected to the device. > - $ref: /schemas/types.yaml#/definitions/uint32 > - > - required: > - - reg > - - adi,sensor-type > - > "^thermocouple@": > - type: object > + $ref: '#/$defs/sensor-node' > + unevaluatedProperties: false > + > description: Thermocouple sensor. > > properties: > @@ -141,7 +145,9 @@ patternProperties: > - adi,custom-thermocouple > > "^diode@": > - type: object > + $ref: '#/$defs/sensor-node' > + unevaluatedProperties: false > + > description: Diode sensor. > > properties: > @@ -184,7 +190,8 @@ patternProperties: > default: 0 > > "^rtd@": > - type: object > + $ref: '#/$defs/sensor-node' > + unevaluatedProperties: false > description: RTD sensor. > > properties: > @@ -282,7 +289,8 @@ patternProperties: > - adi,custom-rtd > > "^thermistor@": > - type: object > + $ref: '#/$defs/sensor-node' > + unevaluatedProperties: false > description: Thermistor sensor. > > properties: > @@ -383,7 +391,8 @@ patternProperties: > - adi,custom-thermistor > > "^adc@": > - type: object > + $ref: '#/$defs/sensor-node' > + unevaluatedProperties: false > description: Direct ADC sensor. > > properties: > @@ -397,7 +406,8 @@ patternProperties: > type: boolean > > "^temp@": > - type: object > + $ref: '#/$defs/sensor-node' > + unevaluatedProperties: false > description: Active analog temperature sensor. > > properties: > @@ -426,7 +436,8 @@ patternProperties: > - adi,custom-temp > > "^rsense@": > - type: object > + $ref: '#/$defs/sensor-node' > + unevaluatedProperties: false > description: Sense resistor sensor. > > properties:
diff --git a/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml b/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml index f44fc32ce87e..e04f961ab92c 100644 --- a/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml +++ b/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml @@ -18,6 +18,28 @@ description: | https://www.analog.com/media/en/technical-documentation/data-sheets/29861fa.pdf https://www.analog.com/media/en/technical-documentation/data-sheets/ltm2985.pdf +$defs: + sensor-node: + type: object + description: Sensor node common constraints + + properties: + reg: + description: + Channel number. Connects the sensor to the channel with this number + of the device. + minimum: 1 + maximum: 20 + + adi,sensor-type: + description: Type of sensor connected to the device. + $ref: /schemas/types.yaml#/definitions/uint32 + + required: + - reg + - adi,sensor-type + + properties: compatible: oneOf: @@ -64,28 +86,10 @@ properties: const: 0 patternProperties: - "@([0-9a-f]+)$": - type: object - description: Sensor. - - properties: - reg: - description: - Channel number. Connects the sensor to the channel with this number - of the device. - minimum: 1 - maximum: 20 - - adi,sensor-type: - description: Type of sensor connected to the device. - $ref: /schemas/types.yaml#/definitions/uint32 - - required: - - reg - - adi,sensor-type - "^thermocouple@": - type: object + $ref: '#/$defs/sensor-node' + unevaluatedProperties: false + description: Thermocouple sensor. properties: @@ -141,7 +145,9 @@ patternProperties: - adi,custom-thermocouple "^diode@": - type: object + $ref: '#/$defs/sensor-node' + unevaluatedProperties: false + description: Diode sensor. properties: @@ -184,7 +190,8 @@ patternProperties: default: 0 "^rtd@": - type: object + $ref: '#/$defs/sensor-node' + unevaluatedProperties: false description: RTD sensor. properties: @@ -282,7 +289,8 @@ patternProperties: - adi,custom-rtd "^thermistor@": - type: object + $ref: '#/$defs/sensor-node' + unevaluatedProperties: false description: Thermistor sensor. properties: @@ -383,7 +391,8 @@ patternProperties: - adi,custom-thermistor "^adc@": - type: object + $ref: '#/$defs/sensor-node' + unevaluatedProperties: false description: Direct ADC sensor. properties: @@ -397,7 +406,8 @@ patternProperties: type: boolean "^temp@": - type: object + $ref: '#/$defs/sensor-node' + unevaluatedProperties: false description: Active analog temperature sensor. properties: @@ -426,7 +436,8 @@ patternProperties: - adi,custom-temp "^rsense@": - type: object + $ref: '#/$defs/sensor-node' + unevaluatedProperties: false description: Sense resistor sensor. properties:
The child node schemas are missing 'unevaluatedProperties' constraints, so any unknown properties are allowed. The current structure with multiple patternProperties schemas doesn't work for unevaluatedProperties as each sub-schema is evaluated independently. To fix this, move the sub-schema for all child nodes to a $defs entry and reference it from each named child node. Signed-off-by: Rob Herring <robh@kernel.org> --- .../bindings/iio/temperature/adi,ltc2983.yaml | 65 +++++++++++-------- 1 file changed, 38 insertions(+), 27 deletions(-)