Devicetree
 help / color / mirror / Atom feed
* [PATCH v5 0/8] Add STM32 TAMP nvram driver support
@ 2026-11-05 12:02 Patrice Chotard
  2026-11-05 12:02 ` [PATCH v5 1/8] dt-bindings: nvmem: add STM32MPX TAMP backup registers Patrice Chotard
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Patrice Chotard @ 2026-11-05 12:02 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Maxime Coquelin,
	Alexandre Torgue, Christophe Roullier, Srinivas Kandagatla
  Cc: Simeon Marijon, linux-stm32, devicetree, linux-arm-kernel,
	linux-kernel, Patrice Chotard, Gatien Chevallier,
	Clément Le Goffic

Propose bindings and driver to enable TAMP nvram driver
support for STM32MP SoC's family.
It allows to expose TAMP backup registers as nvmem cells.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
---
Changes in v5:
- include DTS patches previously submitted separately in https://patchwork.kernel.org/series/1176665/
- Link to v4: https://patch.msgid.link/20261104-upstream_nvram_reworked-v4-0-144024496a44@foss.st.com

Changes in v4:
- Make usage of of_device_get_match_data() wrapper.
- Rework ioremap of syscon's memory region to avoid overlapping 
  between parent and child node. This allows to remove 
  bkpregs_regmap_cfg declaration for both STM32MP1 and STM32MP2.
_ Add select MFD_SYSCON in Kconfig.
- Link to v3: https://patch.msgid.link/20261016-upstream_nvram_reworked-v3-0-f65908490cf7@foss.st.com

Changes in v3:
- Fix issue found by sashiko-bot:
  - rely on the already resolved priv->data->nb_zones instead of 
    of_device_is_compatible() to set priv->bkpreg_access
  - Fix max_register of stm32mp1_tamp_nvram_regmap_cfg and 
    stm32mp2_tamp_nvram_regmap_cfg
  - Update zones_end type to int*
  - Replace both memcpy by put_unaligned_le32 and get_unaligned_le32
  - Link to v2: https://patch.msgid.link/20260930-upstream_nvram_reworked-v2-0-cfda749ee0b7@foss.st.com

Changes in v2:
- Update commit title of nvmem dt-bindings's patch.
- Add required compatible for patternProperties in stm32/st,stm32-syscon.yaml.
- Fix issue found by sashiko-bot:
  - Add freeing compartment_owner.
  - Replace regmap_read/regmap_write by regmap_update_bits in stm32_tamp_nvram_write_byte().
  - Update error return in stm32_tamp_nvram_read_byte(), stm32_tamp_nvram_write_byte(),
    stm32_tamp_nvram_read() and stm32_tamp_nvram_write() to return the actual regmap_read() /
    regmap_write() error instead of -EIO.
 - Add freeing field and update error return values for stm32_tamp_nvram_get_backup_zones().
 - Update error return for stm32_tamp_nvram_probe().
- Link to v1: https://patch.msgid.link/20260910-upstream_nvram_reworked-v1-0-521c16175cef@foss.st.com

To: Simeon Marijon <simeon.marijon@foss.st.com>
To: Patrice Chotard <patrice.chotard@foss.st.com>
To: Srinivas Kandagatla <srini@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Maxime Coquelin <mcoquelin.stm32@gmail.com>
To: Alexandre Torgue <alexandre.torgue@foss.st.com>
To: Christophe Roullier <christophe.roullier@foss.st.com>
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org

---
Patrice Chotard (3):
      dt-bindings: arm: stm32: allow TAMP nvram child node for syscon
      arm64: dts: st: add TAMP backup register in stm32mp211.dtsi
      arm64: dts: st: add TAMP backup register in stm32mp231.dtsi

Simeon Marijon (5):
      dt-bindings: nvmem: add STM32MPX TAMP backup registers
      nvmem: stm32: add TAMP nvmem driver
      ARM: dts: stm32: add TAMP backup register in stm32mp131.dtsi
      ARM: dts: stm32: add TAMP backup register in stm32mp151.dtsi
      arm64: dts: st: add TAMP backup register in stm32mp251.dtsi

 .../bindings/arm/stm32/st,stm32-syscon.yaml        |  38 +-
 .../bindings/nvmem/st,stm32-tamp-nvram.yaml        |  57 ++
 MAINTAINERS                                        |   8 +
 arch/arm/boot/dts/st/stm32mp131.dtsi               |  34 ++
 arch/arm/boot/dts/st/stm32mp151.dtsi               |  83 +++
 arch/arm64/boot/dts/st/stm32mp211.dtsi             |  31 +
 arch/arm64/boot/dts/st/stm32mp231.dtsi             |  31 +
 arch/arm64/boot/dts/st/stm32mp251.dtsi             |  31 +
 drivers/nvmem/Kconfig                              |  11 +
 drivers/nvmem/Makefile                             |   2 +
 drivers/nvmem/stm32-tamp-nvram.c                   | 680 +++++++++++++++++++++
 11 files changed, 1003 insertions(+), 3 deletions(-)
---
base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
change-id: 20260909-upstream_nvram_reworked-f84a4b37817c

Best regards,
--  
Patrice Chotard <patrice.chotard@foss.st.com>


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

end of thread, other threads:[~2026-11-05 12:16 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-05 12:02 [PATCH v5 0/8] Add STM32 TAMP nvram driver support Patrice Chotard
2026-11-05 12:02 ` [PATCH v5 1/8] dt-bindings: nvmem: add STM32MPX TAMP backup registers Patrice Chotard
2026-11-05 12:03 ` [PATCH v5 2/8] dt-bindings: arm: stm32: allow TAMP nvram child node for syscon Patrice Chotard
2026-11-05 12:10   ` sashiko-bot
2026-11-05 12:03 ` [PATCH v5 3/8] nvmem: stm32: add TAMP nvmem driver Patrice Chotard
2026-11-05 12:16   ` sashiko-bot
2026-11-05 12:03 ` [PATCH v5 4/8] ARM: dts: stm32: add TAMP backup register in stm32mp131.dtsi Patrice Chotard
2026-11-05 12:03 ` [PATCH v5 5/8] ARM: dts: stm32: add TAMP backup register in stm32mp151.dtsi Patrice Chotard
2026-11-05 12:03 ` [PATCH v5 6/8] arm64: dts: st: add TAMP backup register in stm32mp211.dtsi Patrice Chotard
2026-11-05 12:03 ` [PATCH v5 7/8] arm64: dts: st: add TAMP backup register in stm32mp231.dtsi Patrice Chotard
2026-11-05 12:03 ` [PATCH v5 8/8] arm64: dts: st: add TAMP backup register in stm32mp251.dtsi Patrice Chotard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox