[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240109184323.GA24189@hu-bjorande-lv.qualcomm.com>
Date: Tue, 9 Jan 2024 10:43:23 -0800
From: Bjorn Andersson <quic_bjorande@...cinc.com>
To: Zhenhua Huang <quic_zhenhuah@...cinc.com>
CC: <miquel.raynal@...tlin.com>, <richard@....at>, <vigneshr@...com>,
<robh+dt@...nel.org>, <krzysztof.kozlowski+dt@...aro.org>,
<conor+dt@...nel.org>, <linux-mtd@...ts.infradead.org>,
<devicetree@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<quic_tingweiz@...cinc.com>
Subject: Re: [PATCH] dt-bindings: mtd: Change the schema for nodename which
includes "sram"
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@...cinc.com>
> ---
> 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@...tlin.com>
> - Richard Weinberger <richard@....at>
>
> -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
Regards,
Bjorn
> - 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
>
Powered by blists - more mailing lists