mbox series

[0/5] nvmem: support more NVMEM cells variants

Message ID 20211223110755.22722-1-zajec5@gmail.com
Headers show
Series nvmem: support more NVMEM cells variants | expand

Message

Rafał Miłecki Dec. 23, 2021, 11:07 a.m. UTC
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(-)

Comments

Rafał Miłecki Dec. 23, 2021, 9:58 p.m. UTC | #1
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"?