Hi Krzysztof,
On 3/10/25 06:49, Krzysztof Kozlowski wrote:
On Sat, Mar 08, 2025 at 11:33:43AM -0300, Maíra Canal wrote:
V3D 7.1 exposes a new register block, called V3D_SMS. As BCM2712 has a
Where is the comaptible for this new block? Or was it already documented
but with missing register?
The compatible is brcm,2712-v3d, which was already documented, but with
a missing register.
V3D 7.1 core, add a new register item to the list. Similar to the GCA
and bridge register, SMS is optional and should only be added for V3D
7.1 variants.
In order to enforce per-SoC register rules, add per-compatible
restrictions. The restrictions will assure that GCA will only be added
in BCM7268 (V3D 3.3) and SMS will only be added in BCM2712 (V3D 7.1).
Cc: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
Cc: Conor Dooley <conor+dt@xxxxxxxxxx>
Cc: Nicolas Saenz Julienne <nsaenz@xxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Please drop the autogenerated scripts/get_maintainer.pl CC-entries from
commit msg. There is no single need to store automated output of
get_maintainers.pl in the git log. It can be easily re-created at any
given time, thus its presence in the git history is redundant and
obfuscates the log.
If you need it for your own patch management purposes, keep it under the
--- separator.
Sorry, I'll change it for v3.
Signed-off-by: Maíra Canal <mcanal@xxxxxxxxxx>
---
.../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 60 ++++++++++++++++++++--
1 file changed, 55 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
index dc078ceeca9ac3447ba54a7c8830821f0b2a7f9f..c0caee055e8c18dbcac0e51aa192951996545695 100644
--- a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
+++ b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml
@@ -27,15 +27,12 @@ properties:
- description: core0 register (required)
- description: GCA cache controller register (if GCA controller present)
- description: bridge register (if no external reset controller)
+ - description: SMS register (if SMS controller present)
This lists five items, but you say you have max 4?
V3D 3.1 uses hub, core0, gca, and bridge (optional)
V3D 4.1 and 4.2 uses hub, core, and bridge (optional)
V3D 7.1 uses hub, core0, sms, and bridge (optional)
Therefore, for a given DT, you will have 4 items max.
minItems: 2
reg-names:
- items:
- - const: hub
- - const: core0
- - enum: [ bridge, gca ]
- - enum: [ bridge, gca ]
minItems: 2
+ maxItems: 4
So here 4, but earlier 5? These must come in sync.
I added maxItems for reg in the allOf section.
interrupts:
items:
@@ -60,6 +57,59 @@ required:
additionalProperties: false
+allOf:
This goes above additionalProperties.
Got it.
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - brcm,2711-v3d
+ - brcm,7278-v3d
+ then:
+ properties:
+ reg:
+ minItems: 2
+ maxItems: 3
+ reg-names:
+ items:
+ - const: hub
+ - const: core0
+ - const: bridge
Again un-synced lists.
Sorry, what do you mean by un-synced lists?
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: brcm,2712-v3d
+ then:
+ properties:
+ reg:
+ minItems: 3
+ maxItems: 4
+ reg-names:
+ items:
+ - const: hub
+ - const: core0
+ - enum: [ bridge, sms ]
+ - enum: [ bridge, sms ]
+ minItems: 3
Why is this flexible?
I cannot guarantee the order and bridge is optional.
Best Regards,
- Maíra
Best regards,
Krzysztof