Re: [PATCH 3/5] dt-bindings: nvmem: allow referencing device defined cells by names

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

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";
};



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux