[PATCH V4 0/4] nvmem: add fixed cells layout

From: Rafał Miłecki
Date: Fri Mar 17 2023 - 09:26:31 EST


From: Rafał Miłecki <rafal@xxxxxxxxxx>

NVMEM bindings received a new feature recently: layouts. They allow
defining NVMEM device content in a separated DT node named
"nvmem-layout". That improvement results in cleaner and more generic
bindings.

New bindings & drivers should use layouts design. If possible we should
also try converting existing bindings & drivers to layouts.

This patchset allows defining NVMEM cells in a new way (using NVMEM
layout feature).

This deprecates support for defining NVMEM cells as direct DT device
node subnodes but IT DOESN'T drop support for that.

PLEASE understand what this patchset handles. It adds new & preferred
way of defining NVMEM cells. It is NOT meant to:
1. Convert ALL existing bindings or drivers
2. Add support for new extra features (like multiple layouts)
3. Break any backward compatibility (it WON'T happen)

Note: this is based on top of the:
[PATCH 1/4] nvmem: Add macro to register nvmem layout drivers

Rafał Miłecki (4):
dt-bindings: nvmem: layouts: add fixed-layout
dt-bindings: nvmem: convert base example to use NVMEM fixed cells
layout
nvmem: core: export nvmem_add_cells_from_of()
nvmem: layouts: add fixed cells layout

.../bindings/nvmem/layouts/fixed-cell.yaml | 31 ++++++++++
.../bindings/nvmem/layouts/fixed-layout.yaml | 49 +++++++++++++++
.../bindings/nvmem/layouts/nvmem-layout.yaml | 5 +-
.../devicetree/bindings/nvmem/nvmem.yaml | 61 ++++++++-----------
drivers/nvmem/core.c | 7 ++-
drivers/nvmem/layouts/Kconfig | 8 +++
drivers/nvmem/layouts/Makefile | 1 +
drivers/nvmem/layouts/fixed.c | 41 +++++++++++++
include/linux/nvmem-provider.h | 7 +++
9 files changed, 168 insertions(+), 42 deletions(-)
create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/fixed-cell.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/fixed-layout.yaml
create mode 100644 drivers/nvmem/layouts/fixed.c

--
2.34.1