[PATCH 06/11] dt-bindings: dma: stm32-dma3: introduce st,axi-max-burst-len property

Amelie Delaunay posted 11 patches 1 month, 2 weeks ago
There is a newer version of this series
[PATCH 06/11] dt-bindings: dma: stm32-dma3: introduce st,axi-max-burst-len property
Posted by Amelie Delaunay 1 month, 2 weeks ago
DMA3 maximum burst length (in unit of beat) may be restricted depending
on bus interconnect.

As mentionned in STM32MP2 reference manual [1], "the maximum allowed AXI
burst length is 16. The user must set [S|D]BL_1 lower or equal to 15
if the Source/Destination allocated port is AXI (if [S|D]AP=0)".

Introduce st,axi-max-burst-len. If used, it will clamp the burst length
to that value if AXI port is used, if not, the maximum burst length value
supported by DMA3 is used.

[1] https://www.st.com/resource/en/reference_manual/rm0457-stm32mp2325xx-advanced-armbased-3264bit-mpus-stmicroelectronics.pdf

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
---
 .../devicetree/bindings/dma/stm32/st,stm32-dma3.yaml          | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml b/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
index 38c30271f732e0c8da48199a224a88bb647eeca7..90ad70bb24eb790afe72bf2085478fa4cec60b94 100644
--- a/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
+++ b/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
@@ -51,6 +51,16 @@ properties:
   power-domains:
     maxItems: 1
 
+  st,axi-max-burst-len:
+    description: |
+      Restrict AXI burst length in unit of beat by value specified in this property.
+      The value specified in this property is clamped to the maximum burst length supported by DMA3.
+      If this property is missing, the maximum burst length supported by DMA3 is used.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+    maximum: 256
+    default: 64
+
   "#dma-cells":
     const: 3
     description: |
@@ -137,5 +147,6 @@ examples:
                    <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
       clocks = <&rcc CK_BUS_HPDMA1>;
       #dma-cells = <3>;
+      st,axi-max-burst-len = <16>;
     };
 ...

-- 
2.25.1
Re: [PATCH 06/11] dt-bindings: dma: stm32-dma3: introduce st,axi-max-burst-len property
Posted by Rob Herring 1 month, 2 weeks ago
On Thu, Oct 10, 2024 at 04:27:56PM +0200, Amelie Delaunay wrote:
> DMA3 maximum burst length (in unit of beat) may be restricted depending
> on bus interconnect.
> 
> As mentionned in STM32MP2 reference manual [1], "the maximum allowed AXI
> burst length is 16. The user must set [S|D]BL_1 lower or equal to 15
> if the Source/Destination allocated port is AXI (if [S|D]AP=0)".

This should be implied by the SoC specific compatible.

> 
> Introduce st,axi-max-burst-len. If used, it will clamp the burst length
> to that value if AXI port is used, if not, the maximum burst length value
> supported by DMA3 is used.
> 
> [1] https://www.st.com/resource/en/reference_manual/rm0457-stm32mp2325xx-advanced-armbased-3264bit-mpus-stmicroelectronics.pdf
> 
> Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
> ---
>  .../devicetree/bindings/dma/stm32/st,stm32-dma3.yaml          | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml b/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
> index 38c30271f732e0c8da48199a224a88bb647eeca7..90ad70bb24eb790afe72bf2085478fa4cec60b94 100644
> --- a/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
> +++ b/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
> @@ -51,6 +51,16 @@ properties:
>    power-domains:
>      maxItems: 1
>  
> +  st,axi-max-burst-len:
> +    description: |
> +      Restrict AXI burst length in unit of beat by value specified in this property.
> +      The value specified in this property is clamped to the maximum burst length supported by DMA3.
> +      If this property is missing, the maximum burst length supported by DMA3 is used.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    minimum: 1
> +    maximum: 256
> +    default: 64
> +
>    "#dma-cells":
>      const: 3
>      description: |
> @@ -137,5 +147,6 @@ examples:
>                     <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
>        clocks = <&rcc CK_BUS_HPDMA1>;
>        #dma-cells = <3>;
> +      st,axi-max-burst-len = <16>;
>      };
>  ...
> 
> -- 
> 2.25.1
>
Re: [PATCH 06/11] dt-bindings: dma: stm32-dma3: introduce st,axi-max-burst-len property
Posted by Amelie Delaunay 1 month, 2 weeks ago

On 10/10/24 20:16, Rob Herring wrote:
> On Thu, Oct 10, 2024 at 04:27:56PM +0200, Amelie Delaunay wrote:
>> DMA3 maximum burst length (in unit of beat) may be restricted depending
>> on bus interconnect.
>>
>> As mentionned in STM32MP2 reference manual [1], "the maximum allowed AXI
>> burst length is 16. The user must set [S|D]BL_1 lower or equal to 15
>> if the Source/Destination allocated port is AXI (if [S|D]AP=0)".
> 
> This should be implied by the SoC specific compatible.
> 

I took an example from snps,dw-axi-dmac.yaml (snps,axi-max-burst-len). 
But I agree, it will be implied by st,stm32mp25-dma3 compatible in V2.
Patch 8/11 will then be dropped.

Regards,
Amelie

>>
>> Introduce st,axi-max-burst-len. If used, it will clamp the burst length
>> to that value if AXI port is used, if not, the maximum burst length value
>> supported by DMA3 is used.
>>
>> [1] https://www.st.com/resource/en/reference_manual/rm0457-stm32mp2325xx-advanced-armbased-3264bit-mpus-stmicroelectronics.pdf
>>
>> Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
>> ---
>>   .../devicetree/bindings/dma/stm32/st,stm32-dma3.yaml          | 11 +++++++++++
>>   1 file changed, 11 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml b/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
>> index 38c30271f732e0c8da48199a224a88bb647eeca7..90ad70bb24eb790afe72bf2085478fa4cec60b94 100644
>> --- a/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
>> +++ b/Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
>> @@ -51,6 +51,16 @@ properties:
>>     power-domains:
>>       maxItems: 1
>>   
>> +  st,axi-max-burst-len:
>> +    description: |
>> +      Restrict AXI burst length in unit of beat by value specified in this property.
>> +      The value specified in this property is clamped to the maximum burst length supported by DMA3.
>> +      If this property is missing, the maximum burst length supported by DMA3 is used.
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    minimum: 1
>> +    maximum: 256
>> +    default: 64
>> +
>>     "#dma-cells":
>>       const: 3
>>       description: |
>> @@ -137,5 +147,6 @@ examples:
>>                      <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
>>         clocks = <&rcc CK_BUS_HPDMA1>;
>>         #dma-cells = <3>;
>> +      st,axi-max-burst-len = <16>;
>>       };
>>   ...
>>
>> -- 
>> 2.25.1
>>