diff mbox series

[V3,RESEND,1/2] dt-bindings: spi: tegra: Document IOMMU property for Tegra234 QSPI

Message ID 20250509165409.311912-1-va@nvidia.com
State Superseded
Headers show
Series [V3,RESEND,1/2] dt-bindings: spi: tegra: Document IOMMU property for Tegra234 QSPI | expand

Commit Message

Vishwaroop A May 9, 2025, 4:54 p.m. UTC
Add the 'iommus' property to the Tegra QSPI device tree binding.
The property is needed for Tegra234 when using the internal DMA
controller, and is not supported on other Tegra chips, as DMA is
handled by an external controller.

Signed-off-by: Vishwaroop A <va@nvidia.com>
---
 .../bindings/spi/nvidia,tegra210-quad.yaml    | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

Changes since v2:
- Fixed version number to match the actual version
- Added proper changelog section
- No functional changes from v2

Changes since v1:
- Fixed subject prefix to match subsystem (dt-bindings: spi: tegra)
- Improved commit message formatting to follow Linux coding style
- Clarified that IOMMU is only required for Tegra234 platform
- Added explicit disallow for IOMMU on other platforms
- Removed redundant explanations of what the patch does
- Fixed commit message to use imperative mood

Initial Version:
- Initial implementation of IOMMU property documentation
- Added iommus property to device tree binding
- Added support for Tegra234 platform
- Added explanation of DMA and IOMMU requirements

Comments

Conor Dooley May 12, 2025, 4:49 p.m. UTC | #1
On Fri, May 09, 2025 at 04:54:08PM +0000, Vishwaroop A wrote:
> Add the 'iommus' property to the Tegra QSPI device tree binding.
> The property is needed for Tegra234 when using the internal DMA
> controller, and is not supported on other Tegra chips, as DMA is
> handled by an external controller.
> 
> Signed-off-by: Vishwaroop A <va@nvidia.com>
> ---
>  .../bindings/spi/nvidia,tegra210-quad.yaml    | 19 ++++++++++++++++---
>  1 file changed, 16 insertions(+), 3 deletions(-)
> 
> Changes since v2:
> - Fixed version number to match the actual version
> - Added proper changelog section
> - No functional changes from v2
> 
> Changes since v1:
> - Fixed subject prefix to match subsystem (dt-bindings: spi: tegra)
> - Improved commit message formatting to follow Linux coding style
> - Clarified that IOMMU is only required for Tegra234 platform
> - Added explicit disallow for IOMMU on other platforms
> - Removed redundant explanations of what the patch does
> - Fixed commit message to use imperative mood
> 
> Initial Version:
> - Initial implementation of IOMMU property documentation
> - Added iommus property to device tree binding
> - Added support for Tegra234 platform
> - Added explanation of DMA and IOMMU requirements
> 
> diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml b/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
> index 48e97e240265..04d3b1a47392 100644
> --- a/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
> +++ b/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
> @@ -10,9 +10,6 @@ maintainers:
>    - Thierry Reding <thierry.reding@gmail.com>
>    - Jonathan Hunter <jonathanh@nvidia.com>
>  
> -allOf:
> -  - $ref: spi-controller.yaml#
> -
>  properties:
>    compatible:
>      enum:
> @@ -47,6 +44,9 @@ properties:
>        - const: rx
>        - const: tx
>  
> +  iommus:
> +    maxItems: 1
> +
>  patternProperties:
>    "@[0-9a-f]+$":
>      type: object
> @@ -69,6 +69,19 @@ required:
>  
>  unevaluatedProperties: false
>  
> +allOf:
> +  - $ref: spi-controller.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          const: nvidia,tegra234-qspi

> +    then:
> +      properties:
> +        iommus: true

This is a NOP, no?
Just invert the case above and drop a clause.

> +    else:
> +      properties:
> +        iommus: false
> +
>  examples:
>    - |
>      #include <dt-bindings/clock/tegra210-car.h>
> -- 
> 2.17.1
>
Conor Dooley May 13, 2025, 10:59 a.m. UTC | #2
On Tue, May 13, 2025 at 11:19:05AM +0100, Jon Hunter wrote:

> > > +  - $ref: spi-controller.yaml#
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          const: nvidia,tegra234-qspi
> > 
> > > +    then:
> > > +      properties:
> > > +        iommus: true
> > 
> > This is a NOP, no?
> > Just invert the case above and drop a clause.
> 
> 
> Yes that's true. So just to confirm, your preference is this ...
> 
> diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
> b/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
> index 04d3b1a47392..c45511e9a9ed 100644
> --- a/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
> +++ b/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
> @@ -74,11 +74,13 @@ allOf:
>    - if:
>        properties:
>          compatible:
> -          const: nvidia,tegra234-qspi
> +          contains:
> +            enum:
> +              - nvidia,tegra210-qspi
> +              - nvidia,tegra186-qspi
> +              - nvidia,tegra194-qspi
> +              - nvidia,tegra241-qspi
>      then:
> -      properties:
> -        iommus: true
> -    else:
>        properties:
>          iommus: false

You can just invert the condition directly with a not:,
so "if: properties: compatible: not: contains:" should do the trick.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml b/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
index 48e97e240265..04d3b1a47392 100644
--- a/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
+++ b/Documentation/devicetree/bindings/spi/nvidia,tegra210-quad.yaml
@@ -10,9 +10,6 @@  maintainers:
   - Thierry Reding <thierry.reding@gmail.com>
   - Jonathan Hunter <jonathanh@nvidia.com>
 
-allOf:
-  - $ref: spi-controller.yaml#
-
 properties:
   compatible:
     enum:
@@ -47,6 +44,9 @@  properties:
       - const: rx
       - const: tx
 
+  iommus:
+    maxItems: 1
+
 patternProperties:
   "@[0-9a-f]+$":
     type: object
@@ -69,6 +69,19 @@  required:
 
 unevaluatedProperties: false
 
+allOf:
+  - $ref: spi-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          const: nvidia,tegra234-qspi
+    then:
+      properties:
+        iommus: true
+    else:
+      properties:
+        iommus: false
+
 examples:
   - |
     #include <dt-bindings/clock/tegra210-car.h>