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 >