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