From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yx1-f49.google.com (mail-yx1-f49.google.com [74.125.224.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D872333439A for ; Wed, 15 Jul 2026 11:01:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.224.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784113282; cv=none; b=kTsGWQg4shbc2KjtDjJeOY925n7q2keFvJj7zobzABwl1cOCqt1OFhfeff1WMcKAS6iMa5HG/zjdAxydAPkvV37YXnmtmycAuluhE3esjIeLzGcPTf2z0naG5Nxn2fKe31Ag/PhmHhb83DkEVUYWNp9BQQovi3+fpSCg4qVeqfc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784113282; c=relaxed/simple; bh=bFCp9CMHCHsdHnu03audrknBr9ukhd5xWk99ialwlfA=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Ida4IIMXuKmg+wW8XR19BVg0AiUBCGmtZqeEFCRI5D4IguCY9T3hoJlUPR/xLywNs+AacSVbuXVSSugVG4E7aLPnludBaCTfR8XPXsDNMhfhygDgwzBN5XDmOgvzJnZjiHwcpM1rRFHhS22RjFMa/QChYlw0IgDIbc2X4G9y5zU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=KxeTQpPb; arc=none smtp.client-ip=74.125.224.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KxeTQpPb" Received: by mail-yx1-f49.google.com with SMTP id 956f58d0204a3-667f0cfb2bfso813270d50.3 for ; Wed, 15 Jul 2026 04:01:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784113280; x=1784718080; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=Ba8rcUXQdsLarFisL+/pK+7ENc59ySEgz7MRaAReypc=; b=KxeTQpPb6+ZoXDtmcV0TfbO6FLYSLzGxfYShg/9+E6rxyYTeI0ajVejTvzugHcj+eO VzyeTaiAiJC9H4/jv6+dS81zu0rN2HZ6V/1SE4smL6ydnqPimJNJA5jM2PFNo6XP5quC wpYEYRmPm7JMiwddox4/JV8zLGQZ7KmnsBAUmGhZpoA/xao75n7LNN/P9j29FUVfo4ke GMIY/3A3xxPVmux2AY/9cvgVqOE4R/MxWmDvWLAGKTKCqzWwkC3tkEl4QcszL2HRBpSY xx+nQAUdIIa5UWyIbMPSkxkdLY4FycXh7Se0d8ACJYftiIN2psHAEqHwaAG2fjxBehq4 PEFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784113280; x=1784718080; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Ba8rcUXQdsLarFisL+/pK+7ENc59ySEgz7MRaAReypc=; b=lnOT1jg5w67HY6O0y4nUtj3PC4DqzYXVnS0/UbQq520BVM1bsPQnNipmAJWpisuL0q DhP2k8FXNL3DmyhTxNvK1e6pz3jMzpmnX5jBuJEr/hlyCFCY4NscKDhX7GARzo64KAmE rMxEipl0qoq7ohZVhgMA8+dwUqHdPfMqaaMEalJ1TkEuvLGYsLohpKOzrJlcTRwOG24n X30CFgDWRpMzCZlyZBWdjndOPH5OGNj/eP4k0fEv0EUEWcyhpgME56A6JirZkQXjndE5 YQ6y2IHp/1aOFtC1Ys54wMtxJs+iR8Jtm6XtxzZJU69ZPVIouDindXVin9yqriWi41pA ByRw== X-Forwarded-Encrypted: i=1; AHgh+RqZTNl/pUoKYAf/f275BhOyy/JmORqTsEzZkbeFYs7O7iBJyjfuRsKLs2X+imwAyPsCTs2kMXDO/FeV+/U=@vger.kernel.org X-Gm-Message-State: AOJu0YzKYdLvNIvtPTdD5IY3vgTj5O3tmEQyIUFyZ3AH4g2FU4YSgiWC warMpgkgnT2gG6NuoDeCMtCCxdnQBpaYh7GS8A3r8q/OQj7pAQ6V2hZl X-Gm-Gg: AfdE7cl47s2FPejTcpMdjnwQ7jPQX6afBm81/xXpVx5yuAjYsEzYNfZEDMKUCS3c8EF bzz60VbSh+U9Aeu/1nEnFkHbMRadFMzsYylzmU7Yq1OivL448Ep4wuIRA9JYpj8w43hbx6UZAUt o6C+k+kiLw2iR67K4C2JHbMK4maPLDIKsChHClSZLOF9Kaz+3Bnyv6sYUihc/cHnRnENuYGzZsh mECZVli4f36H426gzuJoaYZkRnNGej+MSLVkiWtE4DFgR74kZsiX5elGZTo4M8WlUmVV1maCaic cEXD72OKNphKbJq4o1AKiZwGaWvRg+0wFA/aftlB641TuAscPRCvr//V9CYWsxBmB+gjWR1R51m EQcf7CGWwml84/bbXMzRKAvSMldNpHzCKNGu7Kn80M+MsAQJyJFKrnzjPWjKvl7X6IoqcVS6Vxr 9EZ48oYCGgGpmkrNUTxeBO X-Received: by 2002:a53:b118:0:b0:667:8b90:2e5a with SMTP id 956f58d0204a3-668078c895bmr3427781d50.102.1784113279355; Wed, 15 Jul 2026 04:01:19 -0700 (PDT) Received: from i386.168.1.127 ([2402:a00:163:2ce9:6882:91b7:8e79:7958]) by smtp.gmail.com with ESMTPSA id 956f58d0204a3-6681fbd8c5esm59066d50.3.2026.07.15.04.01.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 04:01:18 -0700 (PDT) From: Hrushiraj Gandhi To: srini@kernel.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heiko@sntech.de, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Hrushiraj Gandhi Subject: [PATCH 0/2] nvmem: rockchip-efuse: add RK3399 OTP write support Date: Wed, 15 Jul 2026 16:31:05 +0530 Message-ID: <20260715110107.409204-1-hrushirajg23@gmail.com> X-Mailer: git-send-email 2.47.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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