Re: [PATCH v4 01/11] dt-bindings: net: add STM32MP13 compatible in documentation for stm32

From: Rob Herring
Date: Wed Jun 05 2024 - 20:21:42 EST


On Wed, Jun 05, 2024 at 01:46:33PM +0200, Krzysztof Kozlowski wrote:
> On 05/06/2024 11:55, Christophe ROULLIER wrote:
> >
> > On 6/5/24 10:14, Krzysztof Kozlowski wrote:
> >> On 04/06/2024 16:34, Christophe Roullier wrote:
> >>> New STM32 SOC have 2 GMACs instances.
> >>> GMAC IP version is SNPS 4.20.
> >>>
> >>> Signed-off-by: Christophe Roullier <christophe.roullier@xxxxxxxxxxx>
> >>> ---
> >>> .../devicetree/bindings/net/stm32-dwmac.yaml | 41 +++++++++++++++----
> >>> 1 file changed, 34 insertions(+), 7 deletions(-)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
> >>> index 7ccf75676b6d5..ecbed9a7aaf6d 100644
> >>> --- a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
> >>> +++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
> >>> @@ -22,18 +22,17 @@ select:
> >>> enum:
> >>> - st,stm32-dwmac
> >>> - st,stm32mp1-dwmac
> >>> + - st,stm32mp13-dwmac
> >>> required:
> >>> - compatible
> >>>
> >>> -allOf:
> >>> - - $ref: snps,dwmac.yaml#
> >>> -
> >>> properties:
> >>> compatible:
> >>> oneOf:
> >>> - items:
> >>> - enum:
> >>> - st,stm32mp1-dwmac
> >>> + - st,stm32mp13-dwmac
> >>> - const: snps,dwmac-4.20a
> >>> - items:
> >>> - enum:
> >>> @@ -75,12 +74,15 @@ properties:
> >>> st,syscon:
> >>> $ref: /schemas/types.yaml#/definitions/phandle-array
> >>> items:
> >>> - - items:
> >>> + - minItems: 2
> >>> + items:
> >>> - description: phandle to the syscon node which encompases the glue register
> >>> - description: offset of the control register
> >>> + - description: field to set mask in register
> >>> description:
> >>> Should be phandle/offset pair. The phandle to the syscon node which
> >>> - encompases the glue register, and the offset of the control register
> >>> + encompases the glue register, the offset of the control register and
> >>> + the mask to set bitfield in control register
> >>>
> >>> st,ext-phyclk:
> >>> description:
> >>> @@ -112,12 +114,37 @@ required:
> >>>
> >>> unevaluatedProperties: false
> >>>
> >>> +allOf:
> >>> + - $ref: snps,dwmac.yaml#
> >>> + - if:
> >>> + properties:
> >>> + compatible:
> >>> + contains:
> >>> + enum:
> >>> + - st,stm32mp1-dwmac
> >>> + - st,stm32-dwmac
> >>> + then:
> >>> + properties:
> >>> + st,syscon:
> >>> + items:
> >>> + maxItems: 2
> >>> +
> >>> + - if:
> >>> + properties:
> >>> + compatible:
> >>> + contains:
> >>> + enum:
> >>> + - st,stm32mp13-dwmac
> >>> + then:
> >>> + properties:
> >>> + st,syscon:
> >>> + items:
> >>> + minItems: 3
> >> I don't think this works. You now constrain the first dimension which
> >> had only one item before.
> >>
> >> Make your example complete and test it.
> >>
> >> Best regards,
> >> Krzysztof
> >
> > Hi Krzysztof,
> >
> > "Official" bindings for MP15: st,syscon = <&syscfg 0x4>;
> > "Official" bindings for MP13: st,syscon = <&syscfg 0x4 0xff0000>; or
> > st,syscon = <&syscfg 0x4 0xff000000>;
> >
> > If I execute make dt_binding_check
> > DT_SCHEMA_FILES=Documentation/devicetree/bindings/net/stm32-dwmac.yaml with:
> >
> >    For MP15: st,syscon = <&syscfg>;
> > =>bindings/net/stm32-dwmac.example.dtb: ethernet@40027000: st,syscon:0:
> > [4294967295] is too short
> >
> >    For MP15: st,syscon = <&syscfg 0x4 0xff0000>;
> > =>devicetree/bindings/net/stm32-dwmac.example.dtb: ethernet@40027000:
> > st,syscon:0: [4294967295, 4, 16711680] is too long
> >
> >    For MP13: st,syscon = <&syscfg 0x4>; =>
> > devicetree/bindings/net/stm32-dwmac.example.dtb: ethernet@5800a000:
> > st,syscon:0: [4294967295, 4] is too short
> >
> >    For MP13: st,syscon = <&syscfg 0x4 0xff0000 0xff>; =>
> > devicetree/bindings/net/stm32-dwmac.example.dtb: ethernet@5800a000:
> > st,syscon:0: [4294967295, 4, 16711680, 255] is too long
> >
> > So it is seems good :-)
>
> Code is still incorrect, although will work because of how schema parses
> matrix. But even by looking it is not symmetrical between allOf:if:then
> and properties:. Make it symmetric - apply the number of items on the
> second dimension.

It looks correct to me. But it could also be like this:

st,syscon:
items:
- minItems: 3

Either way works. Is that what you are asking for? I'm just happy when
folks can write a working schema.

Rob