[PATCH v2 4/6] dt-bindings: gpu: v3d: Add SMS to the registers' list

Maíra Canal mcanal at igalia.com
Mon Mar 10 13:15:13 UTC 2025


Hi Krzysztof,

On 3/10/25 09:55, Krzysztof Kozlowski wrote:
> On 10/03/2025 12:57, Maíra Canal wrote:
>>>
>>>> Signed-off-by: Maíra Canal <mcanal at igalia.com>
>>>> ---
>>>>    .../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.
> 
> And how many items do you have here?
> 
>>
>>>
>>>>        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.
> 
> I don't think you answer the comments. I said you listed earlier 5 items
> and then you answered with saying devices have 4 items. Here I said
> these properties must be synced and you said why you added maxItems...
> Not related, read again the feedback.

I'm sorry, I don't usually write DTBs. I believe what I need is to
specify the reg items for each compatible, right?

> 
> 
>>
>>>
>>>>    
>>>>      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?
> 
> xxx and xxx-names must have the same constraints. They do not have here.
> You have two different constraints and you can test your DTS to see that.
 >

I used `make dt_binding_check` to test it and it didn't catch any
errors.

>>
>>>
>>>> +  - 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.
> 
> Hm? You must guarantee the order and I do not understand why this needs
> some sort of exception from all other bindings that only here you cannot
> guarantee the order.

I'm trying to keep backwards compatibility. This binding exists for many
years and it always used "enum: [ bridge, gca ]".

Best Regards,
- Maíra

> 
> 
> Best regards,
> Krzysztof



More information about the dri-devel mailing list