Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] nvmem: rockchip-efuse: add RK3399 OTP write support
@ 2026-07-15 11:01 Hrushiraj Gandhi
  2026-07-15 11:01 ` [PATCH 1/2] dt-bindings: nvmem: rockchip-efuse: add rockchip,efuse-write-enable property Hrushiraj Gandhi
  2026-07-15 11:01 ` [PATCH 2/2] nvmem: rockchip-efuse: add write support for RK3399 Hrushiraj Gandhi
  0 siblings, 2 replies; 4+ messages in thread
From: Hrushiraj Gandhi @ 2026-07-15 11:01 UTC (permalink / raw)
  To: srini
  Cc: robh, krzk+dt, conor+dt, heiko, devicetree, linux-arm-kernel,
	linux-rockchip, linux-kernel, Hrushiraj Gandhi

This series adds write (OTP programming) support for the RK3399 eFuse
controller, gated behind an explicit devicetree opt-in property.

eFuse bits are one-time-programmable (OTP): once set, they cannot be
cleared. Enabling write access unconditionally for any board using the
rockchip,rk3399-efuse compatible would be a significant safety risk.
This series therefore:

  1. Adds a new boolean DT property, rockchip,efuse-write-enable, which
     must be explicitly declared in the board's device tree to enable
     OTP programming from userspace.

  2. Implements rockchip_rk3399_efuse_write() using the Array Program
     Mode (A_PGM) as described in the RK3399 TRM section 21. Each bit
     is programmed individually using a software-controlled STROBE
     pulse of 15 us. The SoC-specific callbacks are managed via a new
     struct rockchip_efuse_soc_data, and nvmem_config is moved to the
     probe stack so read_only can be set per-device.

Hardware precondition: The VQPS programming supply (1.8V to 1.98V per
RK3399 TRM) must be present and correctly sequenced during writes. The
driver assumes the board power design guarantees this when the DT
property is present. Future work may add an optional regulator reference
to enforce this in software.

Tested on RK3399 board with rockchip,efuse-write-enable set
in the device tree. Read-back after programming confirmed correct bit
patterns.

Hrushiraj Gandhi (2):
  dt-bindings: nvmem: rockchip-efuse: add rockchip,efuse-write-enable
    property
  nvmem: rockchip-efuse: add write support for RK3399

 .../bindings/nvmem/rockchip-efuse.yaml        |  11 ++
 drivers/nvmem/rockchip-efuse.c                | 152 +++++++++++++++---
 2 files changed, 138 insertions(+), 25 deletions(-)


-- 
2.47.3



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

end of thread, other threads:[~2026-07-15 11:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-15 11:01 [PATCH 0/2] nvmem: rockchip-efuse: add RK3399 OTP write support Hrushiraj Gandhi
2026-07-15 11:01 ` [PATCH 1/2] dt-bindings: nvmem: rockchip-efuse: add rockchip,efuse-write-enable property Hrushiraj Gandhi
2026-07-15 11:42   ` Heiko Stübner
2026-07-15 11:01 ` [PATCH 2/2] nvmem: rockchip-efuse: add write support for RK3399 Hrushiraj Gandhi

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