devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] dt-bindings: nvmem: support describing cells
@ 2022-01-25 18:01 Rafał Miłecki
  2022-01-25 18:01 ` [PATCH 1/2] dt-bindings: nvmem: extract NVMEM cell to separated file Rafał Miłecki
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Rafał Miłecki @ 2022-01-25 18:01 UTC (permalink / raw)
  To: Rob Herring, Srinivas Kandagatla, Michael Walle
  Cc: linux-mtd, devicetree, linux-kernel, linux-arm-kernel, netdev,
	Miquel Raynal, Richard Weinberger, Vignesh Raghavendra, Shawn Guo,
	Li Yang, Frank Rowand, David S . Miller, Jakub Kicinski,
	Ansuel Smith, Andrew Lunn, Florian Fainelli, Hauke Mehrtens,
	Rafał Miłecki

From: Rafał Miłecki <rafal@milecki.pl>

Michael has recently posted a cleaned up patchset for NVMEM
transformations support:
[PATCH 0/8] nvmem: add ethernet address offset support
https://lore.kernel.org/lkml/20211228142549.1275412-1-michael@walle.cc/T/
https://patchwork.ozlabs.org/project/linux-mtd/list/?series=278644&state=*

I find it very important & fully support it. In home routers we very
often deal with just one MAC address that:
1. Is a base for calculating multiple Ethernet addresses
2. Can be stored in binary as well as ASCII format

I'd like to suggest just a slightly different solution though. I think
that using something like:

otp-1 {
        compatible = "kontron,sl28-vpd", "user-otp";
        #address-cells = <1>;
        #size-cells = <1>;

        base_mac_address: base-mac-address@17 {
                #nvmem-cell-cells = <1>;
                reg = <17 6>;
        };
};

isn't clear enough and requires too much conditional code in Linux /
whatever implementation. DT doesn't make it clear which NVMEM cells
are used for what and how should be handled. That has to be hardcoded in
a Linux / whatever driver.

My idea is to add "compatible" & additional flags to NVMEM cells.
Example:

otp-1 {
        compatible = "user-otp";
        #address-cells = <1>;
        #size-cells = <1>;

        base_mac_address: base-mac-address@17 {
                compatible = "mac-address";
                reg = <17 6>;
                #nvmem-cell-cells = <1>;
        };
};

(for more examples see PATCH 2/2 and its mac-address.yaml .

Rafał Miłecki (2):
  dt-bindings: nvmem: extract NVMEM cell to separated file
  dt-bindings: nvmem: cells: add MAC address cell

 .../devicetree/bindings/nvmem/cells/cell.yaml | 35 +++++++
 .../bindings/nvmem/cells/mac-address.yaml     | 94 +++++++++++++++++++
 .../devicetree/bindings/nvmem/nvmem.yaml      | 25 +----
 3 files changed, 131 insertions(+), 23 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/nvmem/cells/cell.yaml
 create mode 100644 Documentation/devicetree/bindings/nvmem/cells/mac-address.yaml

-- 
2.31.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-02-25  9:09 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-25 18:01 [PATCH 0/2] dt-bindings: nvmem: support describing cells Rafał Miłecki
2022-01-25 18:01 ` [PATCH 1/2] dt-bindings: nvmem: extract NVMEM cell to separated file Rafał Miłecki
2022-01-25 18:01 ` [PATCH 2/2] dt-bindings: nvmem: cells: add MAC address cell Rafał Miłecki
2022-01-26  3:29   ` Rob Herring
2022-01-26  7:07 ` [PATCH REBASED 1/2] dt-bindings: nvmem: extract NVMEM cell to separated file Rafał Miłecki
2022-01-26  7:07   ` [PATCH REBASED 2/2] dt-bindings: nvmem: cells: add MAC address cell Rafał Miłecki
2022-02-01 15:55     ` Rob Herring
2022-02-01 16:49       ` Rafał Miłecki
2022-02-25  9:09         ` Rafał Miłecki
2022-02-01 17:01       ` Michael Walle
2022-02-25  9:07         ` Rafał Miłecki
2022-02-11 12:50   ` [PATCH REBASED 1/2] dt-bindings: nvmem: extract NVMEM cell to separated file Rob Herring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).