All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties
@ 2023-04-04 20:50 Rob Herring
  2023-04-04 20:50 ` [PATCH 2/2] dt-bindings: iio: temperature: ltc2983: Make 'adi,custom-thermocouple' signed Rob Herring
  2023-04-07 17:49 ` [PATCH 1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties Jonathan Cameron
  0 siblings, 2 replies; 3+ messages in thread
From: Rob Herring @ 2023-04-04 20:50 UTC (permalink / raw)
  To: Lars-Peter Clausen, Michael Hennerich, Nuno Sá,
	Jonathan Cameron, Krzysztof Kozlowski
  Cc: linux-iio, devicetree, linux-kernel

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(-)

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:
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] dt-bindings: iio: temperature: ltc2983: Make 'adi,custom-thermocouple' signed
  2023-04-04 20:50 [PATCH 1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties Rob Herring
@ 2023-04-04 20:50 ` Rob Herring
  2023-04-07 17:49 ` [PATCH 1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties Jonathan Cameron
  1 sibling, 0 replies; 3+ messages in thread
From: Rob Herring @ 2023-04-04 20:50 UTC (permalink / raw)
  To: Lars-Peter Clausen, Michael Hennerich, Nuno Sá,
	Jonathan Cameron, Krzysztof Kozlowski
  Cc: linux-iio, devicetree, linux-kernel

The 'adi,custom-thermocouple' property is signed based on the example
and driver, so it's type should be int64-matrix rather than
uint64-matrix.

Signed-off-by: Rob Herring <robh@kernel.org>
---
 .../devicetree/bindings/iio/temperature/adi,ltc2983.yaml        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml b/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml
index e04f961ab92c..dbb85135fd66 100644
--- a/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml
+++ b/Documentation/devicetree/bindings/iio/temperature/adi,ltc2983.yaml
@@ -127,7 +127,7 @@ patternProperties:
         description:
           Used for digitizing custom thermocouples.
           See Page 59 of the datasheet.
-        $ref: /schemas/types.yaml#/definitions/uint64-matrix
+        $ref: /schemas/types.yaml#/definitions/int64-matrix
         minItems: 3
         maxItems: 64
         items:
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties
  2023-04-04 20:50 [PATCH 1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties Rob Herring
  2023-04-04 20:50 ` [PATCH 2/2] dt-bindings: iio: temperature: ltc2983: Make 'adi,custom-thermocouple' signed Rob Herring
@ 2023-04-07 17:49 ` Jonathan Cameron
  1 sibling, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2023-04-07 17:49 UTC (permalink / raw)
  To: Rob Herring
  Cc: Lars-Peter Clausen, Michael Hennerich, Nuno Sá,
	Krzysztof Kozlowski, linux-iio, devicetree, linux-kernel

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:


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-04-07 17:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-04 20:50 [PATCH 1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties Rob Herring
2023-04-04 20:50 ` [PATCH 2/2] dt-bindings: iio: temperature: ltc2983: Make 'adi,custom-thermocouple' signed Rob Herring
2023-04-07 17:49 ` [PATCH 1/2] dt-bindings: iio: temperature: ltc2983: Fix child node unevaluated properties Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.