Re: [PATCH] dt-bindings: mtd: Change the schema for nodename which includes "sram"

From: Rob Herring
Date: Tue Jan 09 2024 - 16:22:11 EST


On Tue, Jan 09, 2024 at 10:43:23AM -0800, Bjorn Andersson wrote:
> On Thu, Jan 04, 2024 at 07:23:02PM +0800, Zhenhua Huang wrote:
> > Node name which includes "sram" not only represents MTD devices, but also
> > lots of sram devices(eg, qcom,imem.yaml, rules in folder sram/*).
> >
> > To avoid the conflicts, change the schema as:
> > - if node name includes "sram", must select "compatible" to match
> > (I have listed all "comptible" string in mtd.yaml by searching
> > drivers/mtd/* to find applicable drivers)
> > - if node name is nand/flash, use "nodename" to select.
> >
>
> You're right, it doesn't seem appropriate for the mtd binding to be
> selected for nodes intended to match e.g. the qcom,imem binding.
>
> > Fixes: 7bdc671822e9 ("dt-bindings: mtd: physmap: Reuse the generic definitions")
> > Signed-off-by: Zhenhua Huang <quic_zhenhuah@xxxxxxxxxxx>
> > ---
> > Hello,
> >
> > Tested a few devicetree nodes, which confirms:
> > "qcom,imem.yaml" which in sram/ not matches with mtd.yaml anymore.
> > All nodes include string "sram" must have "compatible" which listed in
> > mtd.yaml to be matched.
> >
> > Current I just modify the rule for "sram" as it is definitely conflicting with
> > rules in sram/*. I have not much backgrounds on nand/flash whether they may have
> > similar conflicts.
> >
> > Documentation/devicetree/bindings/mtd/mtd.yaml | 24 +++++++++++++++++++++---
> > 1 file changed, 21 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/mtd/mtd.yaml b/Documentation/devicetree/bindings/mtd/mtd.yaml
> > index f322290..1704437 100644
> > --- a/Documentation/devicetree/bindings/mtd/mtd.yaml
> > +++ b/Documentation/devicetree/bindings/mtd/mtd.yaml
> > @@ -10,10 +10,28 @@ maintainers:
> > - Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
> > - Richard Weinberger <richard@xxxxxx>
> >
> > -properties:
> > - $nodename:
>
> The mtd binding is $ref'ed by other bindings, similar to how we do with
> other bindings of common properties.
>
> So, I think the problem with mtd is that this ($nodename) turns into a
> "select" automatically, which causes this binding to match nodes by
> name, rather than just those $ref'ing it.
>
>
> We should be able to avoid the automatically created select from the
> $nodename, and rely on $ref, by just adding:
>
> select: false

Yes.

Rob