]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
docs: dt: writing-schema: Describe defining properties in top-level
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Thu, 4 Sep 2025 14:24:01 +0000 (16:24 +0200)
committerRob Herring (Arm) <robh@kernel.org>
Wed, 10 Sep 2025 01:38:31 +0000 (20:38 -0500)
Document established Devicetree bindings maintainers review practice:
Properties having differences per each device in the binding, e.g.
different constraints for lists or different allowed values, should
still be defined in top-level 'properties' section and only customized
in 'if:then:'.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20250904142400.179955-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Documentation/devicetree/bindings/writing-schema.rst

index fcd4726f8df4cac8b405a347e1fcc36b5c4f7939..05c34248e5447d47ea90002f1e007a776b9e2514 100644 (file)
@@ -165,6 +165,14 @@ The YAML Devicetree format also makes all string values an array and scalar
 values a matrix (in order to define groupings) even when only a single value
 is present. Single entries in schemas are fixed up to match this encoding.
 
+When bindings cover multiple similar devices that differ in some properties,
+those properties should be constrained for each device. This usually means:
+
+ * In top level 'properties' define the property with the broadest constraints.
+ * In 'if:then:' blocks, further narrow the constraints for those properties.
+ * Do not define the properties within an 'if:then:' block (note that
+   'additionalItems' also won't allow that).
+
 Coding style
 ------------