Re: [PATCH v2 06/29] mtd: Add support for reading MTD devices via the nvmem API

From: Srinivas Kandagatla
Date: Tue Aug 21 2018 - 06:12:08 EST




On 21/08/18 10:56, Boris Brezillon wrote:
On Tue, 21 Aug 2018 10:50:07 +0100
Srinivas Kandagatla<srinivas.kandagatla@xxxxxxxxxx> wrote:

On 20/08/18 19:20, Boris Brezillon wrote:
On Mon, 20 Aug 2018 11:43:34 +0100
Srinivas Kandagatla<srinivas.kandagatla@xxxxxxxxxx> wrote:
Overall am still not able to clear visualize on how MTD bindings with
nvmem cells would look in both partition and un-partition usecases?
An example DT would be nice here!!
Something along those lines:
This looks good to me.
mtdnode {
nvmem-cells {
#address-cells = <1>;
#size-cells = <1>;

cell@0 {
reg = <0x0 0x14>;
};
};

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
reg = <0x0 0x20000>;

nvmem-cells {
#address-cells = <1>;
#size-cells = <1>;

cell@0 {
reg = <0x0 0x10>;
};
};
};
};
}; >
Just curious...Is there a reason why we can't do it like this?:
Is this because of issue of #address-cells and #size-cells Or mtd
bindings always prefer subnodes?

mtdnode {
reg = <0x0123000 0x40000>;
#address-cells = <1>;
#size-cells = <1>;
cell@0 {
compatible = "nvmem-cell";
reg = <0x0 0x14>;
};

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
reg = <0x0 0x20000>;
cell@0 {
compatible = "nvmem-cell";
reg = <0x0 0x10>;
};
};
};
};
It's because partitions were initially directly defined under the mtd
node, so, if you have an old DT you might have something like:

mtdnode {
reg = <0x0123000 0x40000>;
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
reg = <0x0 0x20000>;
...
};
...
};

If we use such a DT with this patch applied, the NVMEM framework will
consider MTD partitions as nvmem cells, which is not what we want.
Yep, I agree.
TBH, I wanted to add compatible string to nvmem-cell at some point in time and it seems more natural update too. One of the reason we discussed this in the past was parsers. Looks like mtd can make use of this.

We should be able to add this as an optional flag in nvmem_config to enforce this check in case providers wanted to.

Do you think that would help mtd nvmem case?
Also I felt like nvmem-cells subnode seems to be a bit heavy!

thanks,
srini