No, the root cause is because of passing wrong device instance to nvmem core. And trying to workaround is the actual issue.I was also suggesting you to use nvmem-cell subnode, but make it aBut the root cause is in the nvmem binding, this conflict could exists
proper nvmem provider device, rather than reusing its parent device.
You would end up some thing like this in dt.
flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "s25sl064a";
reg = <0>;
nvmem-cells {
compatible = "mtd-nvmem";
#address-cells = <1>;
#size-cells = <1>;
calibration: calib@404 {
reg = <0x404 0x10>;
};
};
};
with any device type, not just MTD. I don't understand why we would wantAFAIU, This is not a workaround, this is how nvmem provider bindings are and all providers should try to follow it.
such workarounds instead of just fixing the problem once and for all.