[Linux-stm32] [PATCH v4 2/3] dt-bindings: arm: stm32: allow TAMP nvram child node for syscon
Krzysztof Kozlowski
krzk at kernel.org
Fri Nov 6 11:21:36 CET 2026
On Wed, Nov 04, 2026 at 04:20:09PM +0100, Patrice Chotard wrote:
> The STM32 TAMP node (compatible "st,stm32-tamp", "syscon", "simple-mfd")
> exposes its backup registers through an nvram child node described by
> nvmem/st,stm32-tamp-nvram.yaml. That requires the TAMP node to carry
> "#address-cells", "#size-cells", "ranges" and an "nvram at ..." child.
>
> st,stm32-syscon.yaml uses "additionalProperties: false" and only allowed
> into the DTSI made "make dtbs_check" fail on every STM32MP TAMP node:
>
> tamp at 5c00a000 (st,stm32-tamp): 'nvram at 5c00a100', 'ranges' do not match
> any of the regexes: '^pinctrl-[0-9]+$'
>
> Allow the addressing properties and the nvram child, gated on the
> st,stm32-tamp compatible so the other syscon variants stay strict.
> "#size-cells" may be 1 or 2: the STM32MP21 soc bus uses two size cells
> (an empty "ranges" requires the node to match its parent) while the
> other STM32MP SoCs use one.
>
> Signed-off-by: Patrice Chotard <patrice.chotard at foss.st.com>
> ---
> .../bindings/arm/stm32/st,stm32-syscon.yaml | 38 ++++++++++++++++++++--
> 1 file changed, 35 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
> index a559f8b03b84..51cb565e05ed 100644
> --- a/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
> +++ b/Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
> @@ -43,13 +43,19 @@ properties:
> const: 1
>
> "#size-cells":
> - const: 1
> + enum: [1, 2]
> +
> + ranges: true
Addition of ranges should be separate commit, because you are fixing
existing device which can have phy child.
>
> patternProperties:
> "^phy at 2[48]00$":
> type: object
> $ref: /schemas/phy/st,stm32-usb2phy.yaml
>
> + "^nvram@[0-9a-f]+$":
> + type: object
> + $ref: /schemas/nvmem/st,stm32-tamp-nvram.yaml
> +
> required:
> - compatible
> - reg
> @@ -84,11 +90,37 @@ allOf:
> - phy at 2800
> else:
> properties:
> - '#address-cells': false
> '#clock-cells': false
> - '#size-cells': false
> phy at 2400: false
> phy at 2800: false
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: st,stm32-tamp
> + then:
> + required:
> + - "#address-cells"
> + - "#size-cells"
> + - ranges
This has ABI impact and is not really necessary, as the child node is
not required either. Drop these three.
> + else:
> + properties:
> + ranges: false
> + patternProperties:
> + "^nvram@[0-9a-f]+$": false
Best regards,
Krzysztof
More information about the Linux-stm32
mailing list