Message ID | 20211223110755.22722-1-zajec5@gmail.com |
---|---|
Headers | show |
Series | nvmem: support more NVMEM cells variants | expand |
On 23.12.2021 22:18, Rob Herring wrote: > On Thu, Dec 23, 2021 at 7:08 AM Rafał Miłecki <zajec5@gmail.com> wrote: >> >> From: Rafał Miłecki <rafal@milecki.pl> >> >> 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. Any suggestion what to use? I'm not native. What about "title"? Or maybe "term", "entity", "tag"?
From: Rafał Miłecki <rafal@milecki.pl> Some NVMEM devices don't have NVMEM cells at hardcoded offsets and they can't be strictly specified in a binding. Those devices usually store NVMEM cells in some internal format. We still need a way of referencing such hidden / dynamic NVMEM cells. This patchset adds support for bindings like: nvram@1eff0000 { compatible = "brcm,nvram"; reg = <0x1eff0000 0x10000>; mac_addr: cell-0 { label = "et0macaddr"; }; }; ethernet@18024000 { compatible = "brcm,amac"; reg = <0x18024000 0x800>; nvmem-cells = <&mac_addr>; nvmem-cell-names = "mac-address"; }; Rafał Miłecki (5): dt-bindings: nvmem: add "label" property to allow more flexible cells names nvmem: core: read OF defined NVMEM cell name from "label" property dt-bindings: nvmem: allow referencing device defined cells by names dt-bindings: nvmem: brcm,nvram: add NVMEM cell to example nvmem: core: add cell name based matching of DT cell nodes .../devicetree/bindings/nvmem/brcm,nvram.yaml | 8 +++-- .../devicetree/bindings/nvmem/nvmem.yaml | 16 +++++++-- drivers/nvmem/core.c | 36 ++++++++++++++++++- 3 files changed, 55 insertions(+), 5 deletions(-)