On Tue, Jan 04, 2022 at 09:56:01PM +0100, Rafał Miłecki wrote: > On 4.01.2022 21:50, Rafał Miłecki wrote: > > On 4.01.2022 21:16, Rob Herring wrote: > > > On Thu, Dec 23, 2021 at 10:58:56PM +0100, Rafał Miłecki wrote: > > > > On 23.12.2021 22:18, Rob Herring wrote: > > > > > On Thu, Dec 23, 2021 at 7:08 AM Rafał Miłecki <zajec5@xxxxxxxxx> wrote: > > > > > > > > > > > > From: Rafał Miłecki <rafal@xxxxxxxxxx> > > > > > > > > > > > > Not every NVMEM has predefined cells at hardcoded addresses. Some > > > > > > devices store cells in internal structs and custom formats. Referencing > > > > > > such cells is still required to let other bindings use them. > > > > > > > > > > > > Modify binding to require "reg" xor "label". The later one can be used > > > > > > to match "dynamic" NVMEM cells by their names. > > > > > > > > > > 'label' is supposed to correspond to a sticker on a port or something > > > > > human identifiable. It generally should be something optional to > > > > > making the OS functional. Yes, there are already some abuses of that, > > > > > but this case is too far for me. > > > > > > > > Good to learn that! > > > > > > > > "name" is special & not allowed I think. > > > > > > It's the node name essentially. Why is using node names not sufficient? > > > Do you have some specific examples? > > > > I tried to explain in > > [PATCH 1/5] dt-bindings: nvmem: add "label" property to allow more flexible cells names > > that some vendors come with fancy names that can't fit node names. I still don't see the issue. Why do you need 'more flexible cells names'? What problem does that solve? > > Broadcom's NVRAM examples: > > 0:macaddr > > 1:macaddr > > 2:macaddr > > 0:ccode > > 1:ccode > > 2:ccode > > 0:regrev > > In other words I'd like to have something like: > > nvram@1eff0000 { > compatible = "brcm,nvram"; > reg = <0x1eff0000 0x10000>; > > mac: cell-0 { > label = "1:macaddr"; > }; > }; > > ethernet@1000 { > compatible = "brcm,ethernet"; > reg = <0x1000 0x1000>; > nvmem-cells = <&mac>; > nvmem-cell-names = "mac-address"; > }; How does 'label' help here? Note there's some other efforts around multiple mac addresses and how to interpret the nvmem data. Maybe that helps solve your problem. Rob