docs: dt: writing-schema: Describe defining properties in top-level

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>
This commit is contained in:
Krzysztof Kozlowski 2025-09-04 16:24:01 +02:00 committed by Rob Herring (Arm)
parent bc3f7d0340
commit 3ef9c995fa
1 changed files with 8 additions and 0 deletions

View 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
------------