devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Maíra Canal" <mcanal@igalia.com>
To: Melissa Wen <mwen@igalia.com>, Iago Toral <itoral@igalia.com>,
	 Krzysztof Kozlowski <krzk+dt@kernel.org>,
	 Conor Dooley <conor+dt@kernel.org>,
	 Nicolas Saenz Julienne <nsaenz@kernel.org>
Cc: "Phil Elwell" <phil@raspberrypi.com>,
	dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
	kernel-dev@igalia.com, "Maíra Canal" <mcanal@igalia.com>
Subject: [PATCH v4 4/7] dt-bindings: gpu: v3d: Add per-compatible register restrictions
Date: Thu, 13 Mar 2025 11:43:29 -0300	[thread overview]
Message-ID: <20250313-v3d-gpu-reset-fixes-v4-4-c1e780d8e096@igalia.com> (raw)
In-Reply-To: <20250313-v3d-gpu-reset-fixes-v4-0-c1e780d8e096@igalia.com>

In order to enforce per-SoC register rules, add per-compatible
restrictions. V3D 3.3 (represented by brcm,7268-v3d) has a cache
controller (GCA), which is not present in other V3D generations.
Declaring these differences helps ensure the DTB accurately reflect
the hardware design.

While not ideal, this commit keeps the register order flexible for
brcm,7268-v3d with the goal to keep the ABI backwards compatible.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
---
 .../devicetree/bindings/gpu/brcm,bcm-v3d.yaml      | 73 ++++++++++++++++++----
 1 file changed, 61 insertions(+), 12 deletions(-)

diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
index dc078ceeca9ac3447ba54a7c8830821f0b2a7f9f..9867b617c60c6fe34a0f88a3ee2f581a94b69a5c 100644
--- a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
+++ b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
@@ -22,20 +22,10 @@ properties:
       - brcm,7278-v3d
 
   reg:
-    items:
-      - description: hub register (required)
-      - description: core0 register (required)
-      - description: GCA cache controller register (if GCA controller present)
-      - description: bridge register (if no external reset controller)
-    minItems: 2
+    maxItems: 4
 
   reg-names:
-    items:
-      - const: hub
-      - const: core0
-      - enum: [ bridge, gca ]
-      - enum: [ bridge, gca ]
-    minItems: 2
+    maxItems: 4
 
   interrupts:
     items:
@@ -58,6 +48,65 @@ required:
   - reg-names
   - interrupts
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - brcm,2711-v3d
+              - brcm,7278-v3d
+    then:
+      properties:
+        reg:
+          items:
+            - description: hub register
+            - description: core0 register
+            - description: bridge register (if no external reset controller)
+          minItems: 2
+        reg-names:
+          items:
+            - const: hub
+            - const: core0
+            - const: bridge
+          minItems: 2
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,2712-v3d
+    then:
+      properties:
+        reg:
+          items:
+            - description: hub register
+            - description: core0 register
+        reg-names:
+          items:
+            - const: hub
+            - const: core0
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,7268-v3d
+    then:
+      properties:
+        reg:
+          items:
+            - description: hub register
+            - description: core0 register
+            - description: GCA cache controller register
+            - description: bridge register (if no external reset controller)
+          minItems: 3
+        reg-names:
+          items:
+            - const: hub
+            - const: core0
+            - enum: [ bridge, gca ]
+            - enum: [ bridge, gca ]
+          minItems: 3
+
 additionalProperties: false
 
 examples:

-- 
Git-154)


  parent reply	other threads:[~2025-03-13 14:46 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-13 14:43 [PATCH v4 0/7] drm/v3d: Fix GPU reset issues on the Raspberry Pi 5 Maíra Canal
2025-03-13 14:43 ` [PATCH v4 1/7] drm/v3d: Don't run jobs that have errors flagged in its fence Maíra Canal
2025-03-13 20:20   ` Maíra Canal
2025-03-13 14:43 ` [PATCH v4 2/7] drm/v3d: Set job pointer to NULL when the job's fence has an error Maíra Canal
2025-03-13 14:43 ` [PATCH v4 3/7] drm/v3d: Associate a V3D tech revision to all supported devices Maíra Canal
2025-03-13 14:43 ` Maíra Canal [this message]
2025-03-13 15:03   ` [PATCH v4 4/7] dt-bindings: gpu: v3d: Add per-compatible register restrictions Krzysztof Kozlowski
2025-03-13 19:04     ` Maíra Canal
2025-03-15  9:52       ` Stefan Wahren
2025-03-15 12:17         ` Maíra Canal
2025-03-15 14:44           ` Florian Fainelli
2025-03-13 14:43 ` [PATCH v4 5/7] dt-bindings: gpu: v3d: Add SMS register to BCM2712 compatible Maíra Canal
2025-03-13 15:03   ` Krzysztof Kozlowski
2025-03-13 14:43 ` [PATCH v4 6/7] drm/v3d: Use V3D_SMS registers for power on/off and reset on V3D 7.x Maíra Canal
2025-03-13 14:43 ` [PATCH v4 7/7] dt-bindings: gpu: Add V3D driver maintainer as DT maintainer Maíra Canal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250313-v3d-gpu-reset-fixes-v4-4-c1e780d8e096@igalia.com \
    --to=mcanal@igalia.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=itoral@igalia.com \
    --cc=kernel-dev@igalia.com \
    --cc=krzk+dt@kernel.org \
    --cc=mwen@igalia.com \
    --cc=nsaenz@kernel.org \
    --cc=phil@raspberrypi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).