[PATCH v2 2/9] dt-bindings: dma: nvidia,tegra186-gpc-dma: Make reset optional

Akhil R posted 9 patches 1 month, 1 week ago
There is a newer version of this series
[PATCH v2 2/9] dt-bindings: dma: nvidia,tegra186-gpc-dma: Make reset optional
Posted by Akhil R 1 month, 1 week ago
In Tegra264, GPCDMA reset control is not exposed to Linux and is handled
by the boot firmware.

Although reset was not exposed in Tegra234 as well, the firmware supported
a dummy reset which just returns success on reset without doing an actual
reset. This is also not supported in Tegra264 BPMP. Therefore mark 'reset'
and 'reset-names' properties as required only for devices prior to
Tegra264.

This also necessitates that the Tegra264 compatible to be standalone and
cannot have the fallback compatible of Tegra186. Since there is no
functional impact, we keep reset as required for Tegra234 to avoid
breaking the ABI.

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
 .../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 22 ++++++++++++++-----
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
index 1e7b5ddd4658..34c9b41aecfc 100644
--- a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
+++ b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
@@ -16,16 +16,13 @@ maintainers:
   - Rajesh Gumasta <rgumasta@nvidia.com>
   - Akhil R <akhilrajeev@nvidia.com>
 
-allOf:
-  - $ref: dma-controller.yaml#
-
 properties:
   compatible:
     oneOf:
+      - const: nvidia,tegra264-gpcdma
       - const: nvidia,tegra186-gpcdma
       - items:
           - enum:
-              - nvidia,tegra264-gpcdma
               - nvidia,tegra234-gpcdma
               - nvidia,tegra194-gpcdma
           - const: nvidia,tegra186-gpcdma
@@ -65,12 +62,25 @@ required:
   - compatible
   - reg
   - interrupts
-  - resets
-  - reset-names
   - "#dma-cells"
   - iommus
   - dma-channel-mask
 
+allOf:
+  - $ref: dma-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - nvidia,tegra186-gpcdma
+              - nvidia,tegra194-gpcdma
+              - nvidia,tegra234-gpcdma
+    then:
+      required:
+        - resets
+        - reset-names
+
 additionalProperties: false
 
 examples:
-- 
2.50.1
Re: [PATCH v2 2/9] dt-bindings: dma: nvidia,tegra186-gpc-dma: Make reset optional
Posted by Frank Li 1 month, 1 week ago
On Mon, Mar 02, 2026 at 06:02:32PM +0530, Akhil R wrote:
> In Tegra264, GPCDMA reset control is not exposed to Linux and is handled
> by the boot firmware.
>
> Although reset was not exposed in Tegra234 as well, the firmware supported
> a dummy reset which just returns success on reset without doing an actual
> reset. This is also not supported in Tegra264 BPMP. Therefore mark 'reset'
> and 'reset-names' properties as required only for devices prior to
> Tegra264.
>
> This also necessitates that the Tegra264 compatible to be standalone and
> cannot have the fallback compatible of Tegra186. Since there is no
> functional impact, we keep reset as required for Tegra234 to avoid
> breaking the ABI.
>
> Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
> ---
>  .../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 22 ++++++++++++++-----
>  1 file changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
> index 1e7b5ddd4658..34c9b41aecfc 100644
> --- a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
> +++ b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
> @@ -16,16 +16,13 @@ maintainers:
>    - Rajesh Gumasta <rgumasta@nvidia.com>
>    - Akhil R <akhilrajeev@nvidia.com>
>
> -allOf:
> -  - $ref: dma-controller.yaml#
> -
>  properties:
>    compatible:
>      oneOf:
> +      - const: nvidia,tegra264-gpcdma
>        - const: nvidia,tegra186-gpcdma

use enum

         - enum:
             - nvidia,tegra186-gpcdma
             - nvidia,tegra264-gpcdma

>        - items:
>            - enum:
> -              - nvidia,tegra264-gpcdma
>                - nvidia,tegra234-gpcdma
>                - nvidia,tegra194-gpcdma
>            - const: nvidia,tegra186-gpcdma
> @@ -65,12 +62,25 @@ required:
>    - compatible
>    - reg
>    - interrupts
> -  - resets
> -  - reset-names
>    - "#dma-cells"
>    - iommus
>    - dma-channel-mask
>
> +allOf:
> +  - $ref: dma-controller.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - nvidia,tegra186-gpcdma
> +              - nvidia,tegra194-gpcdma
> +              - nvidia,tegra234-gpcdma

nvidia,tegra234-gpcdma must have fallback nvidia,tegra186-gpcdma, so
needn't nvidia,tegra234-gpcdma here.

Frank

> +    then:
> +      required:
> +        - resets
> +        - reset-names
> +
>  additionalProperties: false
>
>  examples:
> --
> 2.50.1
>
Re: [PATCH v2 2/9] dt-bindings: dma: nvidia,tegra186-gpc-dma: Make reset optional
Posted by Jon Hunter 1 month ago
On 02/03/2026 20:31, Frank Li wrote:
> On Mon, Mar 02, 2026 at 06:02:32PM +0530, Akhil R wrote:
>> In Tegra264, GPCDMA reset control is not exposed to Linux and is handled
>> by the boot firmware.
>>
>> Although reset was not exposed in Tegra234 as well, the firmware supported
>> a dummy reset which just returns success on reset without doing an actual
>> reset. This is also not supported in Tegra264 BPMP. Therefore mark 'reset'
>> and 'reset-names' properties as required only for devices prior to
>> Tegra264.
>>
>> This also necessitates that the Tegra264 compatible to be standalone and
>> cannot have the fallback compatible of Tegra186. Since there is no
>> functional impact, we keep reset as required for Tegra234 to avoid
>> breaking the ABI.
>>
>> Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
>> ---
>>   .../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 22 ++++++++++++++-----
>>   1 file changed, 16 insertions(+), 6 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
>> index 1e7b5ddd4658..34c9b41aecfc 100644
>> --- a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
>> +++ b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
>> @@ -16,16 +16,13 @@ maintainers:
>>     - Rajesh Gumasta <rgumasta@nvidia.com>
>>     - Akhil R <akhilrajeev@nvidia.com>
>>
>> -allOf:
>> -  - $ref: dma-controller.yaml#
>> -
>>   properties:
>>     compatible:
>>       oneOf:
>> +      - const: nvidia,tegra264-gpcdma
>>         - const: nvidia,tegra186-gpcdma
> 
> use enum
> 
>           - enum:
>               - nvidia,tegra186-gpcdma
>               - nvidia,tegra264-gpcdma
> 
>>         - items:
>>             - enum:
>> -              - nvidia,tegra264-gpcdma
>>                 - nvidia,tegra234-gpcdma
>>                 - nvidia,tegra194-gpcdma
>>             - const: nvidia,tegra186-gpcdma
>> @@ -65,12 +62,25 @@ required:
>>     - compatible
>>     - reg
>>     - interrupts
>> -  - resets
>> -  - reset-names
>>     - "#dma-cells"
>>     - iommus
>>     - dma-channel-mask
>>
>> +allOf:
>> +  - $ref: dma-controller.yaml#
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - nvidia,tegra186-gpcdma
>> +              - nvidia,tegra194-gpcdma
>> +              - nvidia,tegra234-gpcdma
> 
> nvidia,tegra234-gpcdma must have fallback nvidia,tegra186-gpcdma, so
> needn't nvidia,tegra234-gpcdma here.

I guess the same is true for tegra194 as well.

Jon

-- 
nvpublic