[Linux-stm32] [PATCH v4 2/3] dt-bindings: arm: stm32: allow TAMP nvram child node for syscon

Patrice CHOTARD patrice.chotard at foss.st.com
Fri Nov 6 11:46:32 CET 2026



On 11/6/26 11:21, Krzysztof Kozlowski wrote:
> 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.
> 

I send this series too quickly, before you made your reply on v3 [1]
[1] https://lore.kernel.org/linux-arm-kernel/b81b8404-572b-4ea4-91ab-6e201f0352b9@kernel.org/

Sorry for that, the v5 is already available on mailing list.

Patrice

>> +    else:
>> +      properties:
>> +        ranges: false
>> +      patternProperties:
>> +        "^nvram@[0-9a-f]+$": false
> 
> Best regards,
> Krzysztof
> 



More information about the Linux-stm32 mailing list