On Tue, 4 Apr 2023 15:50:13 -0500 Rob Herring <robh@xxxxxxxxxx> 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@xxxxxxxxxx> 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: