Re: [PATCH v2 2/9] dt-bindings: net: snps,dwmac: Update the maxitems number of resets and reset-names

From: yanhong wang
Date: Tue Dec 27 2022 - 02:48:49 EST




On 2022/12/20 17:21, Krzysztof Kozlowski wrote:
> On 20/12/2022 07:48, yanhong wang wrote:
>
>>>> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>>>> index e26c3e76ebb7..7870228b4cd3 100644
>>>> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>>>> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>>>> @@ -133,12 +133,19 @@ properties:
>>>> - ptp_ref
>>>>
>>>> resets:
>>>> - maxItems: 1
>>>> - description:
>>>> - MAC Reset signal.
>>>> + minItems: 1
>>>> + maxItems: 3
>>>> + additionalItems: true
>>>> + items:
>>>> + - description: MAC Reset signal
>>>>
>>>> reset-names:
>>>> - const: stmmaceth
>>>> + minItems: 1
>>>> + maxItems: 3
>>>> + additionalItems: true
>>>> + contains:
>>>> + enum:
>>>> + - stmmaceth
>>>
>>> No, this is highly unspecific and you know affect all the schemas using
>>> snps,dwmac.yaml. Both lists must be specific - for your device and for
>>> others.
>>>
>>
>> I have tried to define the resets in "starfive,jh71x0-dwmac.yaml", but it can not over-write the maxItems limit in "snps,dwmac.yaml",therefore, it will report error "reset-names: ['stmmaceth', 'ahb'] is too long" running "make dt_binding_check". Do you have any suggestions to deal with this situation?
>
> The solution is not to affect all schemas with allowing anything as reset.
>
> If you need more items for your case, you can change snps,dwmac.yaml and
> add constraints in allOf:if:then: allowing it only for your compatible.
> There are plenty of examples how this is done, e.g.:
>
> https://elixir.bootlin.com/linux/v5.19-rc6/source/Documentation/devicetree/bindings/clock/samsung,exynos7-clock.yaml#L57
>

Thanks. Refer to the definition in the example and update the definition as follows:

snps,dwmac.yaml[Partial Content]:

properties:
resets:
maxItems: 1
description:
MAC Reset signal.

reset-names:
const: stmmaceth

allOf:
- if:
properties:
compatible:
contains:
const: starfive,jh7110-dwmac

then:
properties:
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: stmmaceth
- const: ahb
required:
- resets
- reset-names


starfive,jh7110-dwmac.yaml[Partial Content]:

properties:
resets:
items:
- description: MAC Reset signal.
- description: AHB Reset signal.

reset-names:
items:
- const: stmmaceth
- const: ahb

allOf:
- $ref: snps,dwmac.yaml#

It will also report error "reset-names: ['stmmaceth', 'ahb'] is too long" running "make dt_binding_check" with 'starfive,jh7110-dwmac.yaml'. Do you have any better suggestions to solve this problem?

>>
>>> Best regards,
>>> Krzysztof
>>>
>
> Best regards,
> Krzysztof
>