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
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
>
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
© 2016 - 2026 Red Hat, Inc.