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. 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: - pattern: "^(flash|.*sram|nand)(@.*)?$" +select: + if: + properties: + $nodename: + pattern: "^.*sram(@.*)?$" + then: + properties: + compatible: + enum: + - arm,vexpress-psram + - cypress,cy7c1019dv33-10zsxi + - microchip,48l640 + - mtd-ram + else: + properties: + $nodename: + pattern: "^(flash|nand)(@.*)?$" + required: + - $nodename + +properties: label: description: User-defined MTD device name. Can be used to assign user friendly -- 2.7.4