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? > 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. > 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? > 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. > > interrupts: > items: > @@ -60,6 +57,59 @@ required: > > additionalProperties: false > > +allOf: This goes above additionalProperties. > + - 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. > + - 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? Best regards, Krzysztof