Re: [EXT] Re: [PATCH v4 1/4] dt-bindings: soc: imx8m: add DT Binding doc for soc unique ID

From: Krzysztof Kozlowski
Date: Mon Nov 23 2020 - 04:04:45 EST


On Mon, Nov 23, 2020 at 04:45:13AM +0000, Alice Guo wrote:
>
>
> > -----Original Message-----
> > From: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> > Sent: 2020年11月20日 18:51
> > To: Alice Guo <alice.guo@xxxxxxx>
> > Cc: robh+dt@xxxxxxxxxx; shawnguo@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx;
> > dl-linux-imx <linux-imx@xxxxxxx>; Peng Fan <peng.fan@xxxxxxx>;
> > devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> > Subject: [EXT] Re: [PATCH v4 1/4] dt-bindings: soc: imx8m: add DT Binding doc
> > for soc unique ID
> >
> > Caution: EXT Email
> >
> > On Fri, Nov 20, 2020 at 06:11:09PM +0800, Alice Guo wrote:
> > > Add DT Binding doc for the Unique ID of i.MX 8M series.
> > >
> > > v2: remove the subject prefix "LF-2571-1"
> > > v3: put it into Documentation/devicetree/bindings/arm/fsl.yaml
> > > modify the description of nvmem-cells
> > > use "make ARCH=arm64 dtbs_check" to test it and fix errors
> > > v4: use allOf to limit new version DTS files for i.MX8M to include
> > > "fsl,imx8mm/n/p/q-soc", nvmem-cells and nvmem-cells-names
> > >
> > > Signed-off-by: Alice Guo <alice.guo@xxxxxxx>
> > > ---
> > > .../devicetree/bindings/arm/fsl.yaml | 51
> > +++++++++++++++++++
> > > 1 file changed, 51 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml
> > > b/Documentation/devicetree/bindings/arm/fsl.yaml
> > > index 67980dcef66d..d8048323a290 100644
> > > --- a/Documentation/devicetree/bindings/arm/fsl.yaml
> > > +++ b/Documentation/devicetree/bindings/arm/fsl.yaml
> > > @@ -918,6 +918,57 @@ properties:
> > > - fsl,s32v234-evb # S32V234-EVB2 Customer
> > Evaluation Board
> > > - const: fsl,s32v234
> > >
> > > + soc:
> > > + type: object
> > > + properties:
> > > + compatible:
> > > + oneOf:
> > > + - description: new version compatible for i.MX8M SoCs
> > > + items:
> > > + - enum:
> > > + - fsl,imx8mm-soc
> > > + - fsl,imx8mn-soc
> > > + - fsl,imx8mp-soc
> > > + - fsl,imx8mq-soc
> > > + - const: simple-bus
> > > +
> > > + - description: old version compatible for i.MX8M SoCs
> > > + items:
> > > + - const: simple-bus
> > > +
> > > + nvmem-cells:
> > > + maxItems: 1
> > > + description: Phandle to the SOC Unique ID provided by a nvmem
> > > + node
> > > +
> > > + nvmem-cells-names:
> > > + const: soc_unique_id
> > > +
> > > + allOf:
> >
> > Nothing changed here comparing to previous version. Still does not work.
> >
> > The allOf should not be part of soc node because the "if" below won't match.
> > Instead, it should be against root node.
> >
> > Best regards,
> > Krzysztof
>
> I'm sorry to disturb you. I don't very clear about the grammar rules of yaml, so don't know how to make allOf be part of root node.
> If allof is part of root node, how does it specify the soc node? The following is my change which is definitely wrong.
> soc:
> properties:
> compatible:
> - description: new version compatible for i.MX8M SoCs
> items:
> - enum:
> - fsl,imx8mm-soc
> - fsl,imx8mn-soc
> - fsl,imx8mp-soc
> - fsl,imx8mq-soc
> - const: simple-bus
>
> nvmem-cells:
> maxItems: 1
> description: Phandle to the SOC Unique ID provided by a nvmem node
>
> nvmem-cells-names:
> const: soc_unique_id
>
> allOf:
> - if:
> properties:
> compatible:
> contains:
> enum:
> - fsl,imx8mm
> - fsl,imx8mn
> - fsl,imx8mp
> - fsl,imx8mq
>
> then:
> required:
> - soc
>
> Please give me suggestion. Thank you.

This should work:

940 allOf:
941 - if:
942 properties:
943 compatible:
944 contains:
945 enum:
946 - fsl,imx8mm
947 - fsl,imx8mn
948 - fsl,imx8mp
949 - fsl,imx8mq
950
951 then:
952 patternProperties:
953 "^soc@[0-9a-f]+$":
954 properties:
955 compatible:
956 items:
957 - enum:
958 - fsl,imx8mm-soc
959 - fsl,imx8mn-soc
960 - fsl,imx8mp-soc
961 - fsl,imx8mq-soc
962 - const: simple-bus
963
964 required:
965 - nvmem-cells
966 - nvmem-cells-names

And probablt "soc" should also be added to required, just below the
"then:".

You need to test it and find the proper solution.

Best regards,
Krzysztof