From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E62613AB29C for ; Thu, 18 Jun 2026 09:18:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781774332; cv=none; b=bG2Z1A7RDA11obnnnlnhO6Fho3zbiw7IZgKBNso3yGJiZpBadBimlR1x8p/YGNqOtsKv7NutPM3Sx74b4ewnePNbziYC10A5Eg3sm9cP7EOwPuWLjrsNMm6FfLV2scApkNSc+8NnPwwzIwA4t0IVHbaETZ4tp8WmAgwi7wVJwlY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781774332; c=relaxed/simple; bh=mN25vWPrtIpwCl/Uh0+aBpdUBZJJIeMR81cPa9B9vZQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=ZNrYWdeYM7XpjbqxSYwXdxcxXPfAtHmlglmEiTcCeYa/mFlSFaLCPfN8aIs9SRINESw+L57nOqmwS/BHkkBIv7nJ1uuaH3D449BNd4ZLOtFqrZGcNK84mab9bkW4sjh88ygiK1RFAiFd55gNcOmz8pL1jnSV29i9sGYwemn5TMw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=TLeFO9ny; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IrcmatIs; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="TLeFO9ny"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IrcmatIs" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65I8FStF975790 for ; Thu, 18 Jun 2026 09:18:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=970J2C++n27bLif2WFflci vpRhLlhnfJEIrP5asazmg=; b=TLeFO9nyJpBc+D2RoxEWDJiS/Y2qUqS/Vc6B9x 0SPxjPVS7mWUgn05lceAZ/vlPLWfmQWk4iNxKZhkKrB8gxREvY5KsJ099hsVf0D/ eXZMn7qtfrUuybp4Q5CdKnTFVmOBIVdGI/YrP9ZSV0v4wHOMOMvWthSxUI5IXAMz YWdwMKpIloItiIgIjf9xH9iz6E7fXDZ/uX3/eFNnsrWeiHN44TwG7nIwWqVWGAcp BiUD/VlowSZCb61Hh/regRNFuCud9j52mRoJjTxKfaWJ3ODJAd7P9j+ex/BjnhZs Ytstylc/1suqIKWqZZBmByybsIiIyZE1Bmvnh/ULdOCl5LSw== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ev1wc2gss-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 18 Jun 2026 09:18:43 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-8cce1cc8cb2so16541496d6.1 for ; Thu, 18 Jun 2026 02:18:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781774323; x=1782379123; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=970J2C++n27bLif2WFflcivpRhLlhnfJEIrP5asazmg=; b=IrcmatIscW3bCSVTPMHMcS3vHsD8oYPPjS0hYPQ2vYyqnEZPjWJh1jBHMfqXTx9Hbz kty7W5eRi8zg/gAoxVkmc0NGyIwpX8a8gW0C9ptIyfCFjZyOxTaQC+kkeCQ5O+tk+GJM F1P57amB2oQxDKJXqudJLC+g83N2glOw1aJ7G73UjxCt7x7tznFxEUOF9p00m4fj+plL 9RP3XzZBwSrZT3d1SFjszd62FMDuNqyih3lQW00Pu49LhPYGRWlQsmd34IRNgnbVkETv /MMNCel3bNaVOza+m3dTfCLD8dkQT8f/UlLBvpDOdecfSBLaezMPKw5oj4P69yXuTeiO 0NCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781774323; x=1782379123; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=970J2C++n27bLif2WFflcivpRhLlhnfJEIrP5asazmg=; b=ZGHO12quaanZA3oNq13WrsTrC2N2N55rBMzVg2zSgF1Iqpd6GM3DNkU4fELsoHtQgI 9gxsSp9yU6LfJomrtxnHA1gS5w3JGdundT64PyXwkvPm30UFde0aRz363U76SZqBSOeg eyM9swiTg+lccump9ZzionTwU7vRh9ZTePkrAE9xJqluf1tWv5Jx9vJAyYQl7XYAAiyr eWWZmwkAxfmTfbZSEZYJq1C3BBY4vOZYQTpUykCVy4KvCGo9m8+TCz9iMFT1ra/SgLe3 I2rACqKlrick+3135lfMG9+VaDKwJk7Our6jDb83ceJGO2asgnpFP2NQ1TdMoaYR6Wdm 3org== X-Gm-Message-State: AOJu0YwuRAVpNs8+OcpLx81XJu/AHV5I3b5nUnSSujwf6nLLP6Ixo4o5 ujoMk8LH7pr+YdQV5ONKEFk+Wn3HWLwJ0lLftG4EmC2u1rzRDtuB76dyZwg7ZpGalpLsAG5ZhvC wwQS90RfPanFW/g9PuFOgwxVtwInzoBF5sSNWR7VGithKXoPiZOIlZwowRRq8hkQ0vEgCKMWHOG w8yQ== X-Gm-Gg: Acq92OGsmdgk0Un/W7rz7n1T4/mqjpDRRHwdLZsKkFXIQ+IQzytuGmzVNUN0URp9bDv igwcsAHMUhBvP7WQ9UF/9vtIGgckR6FOzv4V6IekXfU7I89EgsXhdB2Rs6+Tbkhqga+jiue98+w VNH10f2xO+oEc60NII2Ef4ZVIKOU4JUb7P45IOTUFUHOzBu4Fkfd3oAb5Cwyrfbqs7szHAYCYBZ GErU8oanS2S2PRVV4VQ4YrH0rRon1fk5dSWrGeC8BS42omM40nInCRKdlrkwRlF1V0LwcVtyqHn BqaB7ZDWUIIfgiABUnOIYTGDZTR23MxvO2B8m/QsPfmFvqh9zW66dA2P7Y9sKYB2e70JaWMgfSi GFVQl67nXLmvgRbZxwzjqTfp+rxRngl9WjIJAL2SK X-Received: by 2002:a05:620a:688b:b0:912:671b:d090 with SMTP id af79cd13be357-91f8cbf77d2mr183356685a.24.1781774322404; Thu, 18 Jun 2026 02:18:42 -0700 (PDT) X-Received: by 2002:a05:620a:688b:b0:912:671b:d090 with SMTP id af79cd13be357-91f8cbf77d2mr183353385a.24.1781774321809; Thu, 18 Jun 2026 02:18:41 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:41b6:7808:5ff9:cd42]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922fa510e7sm272554865e9.7.2026.06.18.02.18.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jun 2026 02:18:41 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 18 Jun 2026 11:18:27 +0200 Subject: [PATCH] eeprom: move nvmem EEPROM drivers to drivers/nvmem/ Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260618-eeprom-move-to-nvmem-v1-1-21771f30efcc@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIAOO3M2oC/x3MOwqAMBBF0a3I1A4YwfjZilhEfeoUSSSRIIh7N 1ie4t6HIoIg0lA8FJAkincZqixoOYzbwbJmU13VutKqY+AM3rL1CXx5dsnCslFz07S9XnujKad nwCb3vx2n9/0A+ruCL2YAAAA= X-Change-ID: 20260618-eeprom-move-to-nvmem-a1b55796d9a6 To: Arnd Bergmann , Greg Kroah-Hartman , Srinivas Kandagatla , Wolfram Sang , Andi Shyti , Bartosz Golaszewski Cc: linux-kernel@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=12126; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=mN25vWPrtIpwCl/Uh0+aBpdUBZJJIeMR81cPa9B9vZQ=; b=owEBbAKT/ZANAwAKAQWdLsv/NoTDAcsmYgBqM7fsGORg/sREfz3AWMBIZojAWPfC9lFNc8Jtg 8JjEOIK3CyJAjIEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCajO37AAKCRAFnS7L/zaE w5teD/dcQGrtzA7oC3f/DdkyLDS/l5iqOd4G9zPrsQvaqGCOeq1LTA4cLkmWNfdqytlY4tyk61h OPXSOGFPX7EArZZ9PhnKGMOwYeysNBaL3b3FvqRcO8j5osrIf7sAJE/uw+XZTgQVAWBmY68xZzo kbCWGneEAX8nU+aTDJYK3dVuifltM7pewkJ9VkrRixu9rREljQ1i4ydDQjpeO2deS399b3OrAHE JRIKkFkKXQ9Mv6+nwdHR9tWpzQGh3Lv2ETQTUMDEah+nFzZKlqGkS/aP10pFCS2HkNQ3RBLEheG CaJvnm4/Te8ySeUm0EgVGEe9CaMnA0uQKoRFoLm9NNziKc2RhR8iOiQ/MGpTI9/+KJ6uQPU5Fvg C38wRGpePU6u3m7ptpwFDjXkgf/mGs5rLfbfZN5sqArl/hzyZYlnbcFAky+mTJM5PRJsYoc3A6B Z7Fk2mq39CLjtBffCqr352o/oYqDsfIybSj9I7vW2SEfMaQ+9N+zSMFQ9indfxWLLqrGqOO68nd COpEBCv1QFVnProe+kq8m4XP7dQ6K5ILyHLnwCZoJ+HXGcqA+oK4gn0pI2CnFkcZK+8B7oMVFmj yq5ESkU33fVfeTLhjGw0cZQ1B1vUrM/XnoQa/YgvWzxtA2B6vEishmecLJA2L0N4s8woK473xYQ xDMvek4M39mh1 X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=TMt1jVla c=1 sm=1 tr=0 ts=6a33b7f3 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=PR3zTk3bAAAA:8 a=plwctnQuW9lBRpVR33YA:9 a=U1gQHrb3iPukwh4H:21 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 a=1jtpwFi0vrez8byj1-UO:22 X-Proofpoint-GUID: -QKJDYj8mUvyng92O_bWahZWO_H0bu6W X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE4MDA4NiBTYWx0ZWRfX/e117JKHU2sV hrQULEVFAvF2dRmn/VO9lcOTWTxv7lTyD/dWTbuHmmmOfF7RjoN7djhc5r/2ZT9/FdoV5COukRS dog75pY1Xmqtb7BuOrdpTM2H/IS7AtY= X-Proofpoint-ORIG-GUID: -QKJDYj8mUvyng92O_bWahZWO_H0bu6W X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE4MDA4NiBTYWx0ZWRfXw6azjcngUn+j LAXtPA2JWBS543sDKkZazue/rSBDenk+g66F1lwl7FH7JmKQvzMGKxCP/e6aDLvR4zWsz3BgKOb +J+dF5+G7qMM5L+S4+NKqkFRDqIBrijqfBqYkaFcJn9oOcgPQutpNExRxrLyFGQkPST1OOQkt4D 4kxWNz4iX04fBkzHZeeWV9534qm+oWiKfiQ1NU5V/bz93292PCC8eGJNRjlwnKxxRZjWZZAJVjU dDQ8x6mg7a//TIk6MmSw/1SIYRG1VXJMqcPz2IkEJSxEgQuMjx8koINhgjq6t568la3mTRY9fUu sMNnZgqsgSgSrb4BHqbF5X7LndMMu4NLtHjGKj2YQ8P5r5Fa8QrzWcZC5nCiKqS2W9/S7xwWEoS 3c0keB7+hJ9M4hl9prv89D46EZ2DH21pvP+SsE+nAH1niQSFHGFDiv8KLB25k6a2kq6LqOvTu8k 8Dpp4/nVwJkjlW89psQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-18_01,2026-06-17_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 adultscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606180086 For historical reasons EEPROM drivers have lived under drivers/misc/eeprom/. Also for historical reasons changes to most of them would go through the char-misc tree while some would be queued through the I2C tree. Over the years some of them have also been converted to using nvmem - the dedicated subsystem for non-volatile memory - while get_maintainer.pl does not Cc the maintainer of nvmem on patches changing them. Move the EEPROM drivers using nvmem under drivers/nvmem/ for consistency of the review process and path upstream. Signed-off-by: Bartosz Golaszewski --- MAINTAINERS | 4 +- drivers/misc/eeprom/Kconfig | 93 -------------------------- drivers/misc/eeprom/Makefile | 5 -- drivers/nvmem/Kconfig | 88 ++++++++++++++++++++++++ drivers/nvmem/Makefile | 5 ++ drivers/{misc/eeprom => nvmem}/at24.c | 0 drivers/{misc/eeprom => nvmem}/at25.c | 0 drivers/{misc/eeprom => nvmem}/ee1004.c | 0 drivers/{misc/eeprom => nvmem}/eeprom_93xx46.c | 0 drivers/{misc/eeprom => nvmem}/m24lr.c | 0 10 files changed, 95 insertions(+), 100 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 069b4aa6b523c72b661418d8f37cd214a061f9af..4e53607da2eafea23b3d85b1c7fb73ddb41f348b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4169,11 +4169,11 @@ F: include/linux/async_tx.h AT24 EEPROM DRIVER M: Bartosz Golaszewski -L: linux-i2c@vger.kernel.org +L: linux-kernel@vger.kernel.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git F: Documentation/devicetree/bindings/eeprom/at24.yaml -F: drivers/misc/eeprom/at24.c +F: drivers/nvmem/at24.c ATA OVER ETHERNET (AOE) DRIVER M: "Justin Sanders" diff --git a/drivers/misc/eeprom/Kconfig b/drivers/misc/eeprom/Kconfig index 4d0ce47aa282c12dc277661cae552cca1923ec0d..d6af02588c6677997b34ceb175553480cd76d685 100644 --- a/drivers/misc/eeprom/Kconfig +++ b/drivers/misc/eeprom/Kconfig @@ -1,52 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only menu "EEPROM support" -config EEPROM_AT24 - tristate "I2C EEPROMs / RAMs / ROMs from most vendors" - depends on I2C && SYSFS - select NVMEM - select NVMEM_SYSFS - select REGMAP - select REGMAP_I2C - help - Enable this driver to get read/write support to most I2C EEPROMs - and compatible devices like FRAMs, SRAMs, ROMs etc. After you - configure the driver to know about each chip on your target - board. Use these generic chip names, instead of vendor-specific - ones like at24c64, 24lc02 or fm24c04: - - 24c00, 24c01, 24c02, spd (readonly 24c02), 24c04, 24c08, - 24c16, 24c32, 24c64, 24c128, 24c256, 24c512, 24c1024, 24c2048 - - Unless you like data loss puzzles, always be sure that any chip - you configure as a 24c32 (32 kbit) or larger is NOT really a - 24c16 (16 kbit) or smaller, and vice versa. Marking the chip - as read-only won't help recover from this. Also, if your chip - has any software write-protect mechanism you may want to review the - code to make sure this driver won't turn it on by accident. - - If you use this with an SMBus adapter instead of an I2C adapter, - full functionality is not available. Only smaller devices are - supported (24c16 and below, max 4 kByte). - - This driver can also be built as a module. If so, the module - will be called at24. - -config EEPROM_AT25 - tristate "SPI EEPROMs (FRAMs) from most vendors" - depends on SPI && SYSFS - select NVMEM - select NVMEM_SYSFS - select SPI_MEM - help - Enable this driver to get read/write support to most SPI EEPROMs - and Cypress FRAMs, - after you configure the board init code to know about each eeprom - on your target board. - - This driver can also be built as a module. If so, the module - will be called at25. - config EEPROM_MAX6875 tristate "Maxim MAX6874/5 power supply supervisor" depends on I2C @@ -69,22 +23,6 @@ config EEPROM_93CX6 If unsure, say N. -config EEPROM_93XX46 - tristate "Microwire EEPROM 93XX46 support" - depends on SPI && SYSFS - select REGMAP - select NVMEM - select NVMEM_SYSFS - help - Driver for the microwire EEPROM chipsets 93xx46x. The driver - supports both read and write commands and also the command to - erase the whole EEPROM. - - This driver can also be built as a module. If so, the module - will be called eeprom_93xx46. - - If unsure, say N. - config EEPROM_DIGSY_MTC_CFG bool "DigsyMTC display configuration EEPROMs device" depends on GPIO_MPC5200 && SPI_GPIO @@ -107,35 +45,4 @@ config EEPROM_IDT_89HPESX This driver can also be built as a module. If so, the module will be called idt_89hpesx. -config EEPROM_EE1004 - tristate "SPD EEPROMs on DDR4 memory modules" - depends on I2C && SYSFS - select NVMEM - select NVMEM_SYSFS - help - Enable this driver to get read support to SPD EEPROMs following - the JEDEC EE1004 standard. These are typically found on DDR4 - SDRAM memory modules. - - This driver can also be built as a module. If so, the module - will be called ee1004. - -config EEPROM_M24LR - tristate "STMicroelectronics M24LR RFID/NFC EEPROM support" - depends on I2C && SYSFS - select REGMAP_I2C - select NVMEM - select NVMEM_SYSFS - help - This enables support for STMicroelectronics M24LR RFID/NFC EEPROM - chips. These dual-interface devices expose two I2C addresses: - one for EEPROM memory access and another for control and system - configuration (e.g. UID, password handling). - - This driver provides a sysfs interface for control functions and - integrates with the nvmem subsystem for EEPROM access. - - To compile this driver as a module, choose M here: the - module will be called m24lr. - endmenu diff --git a/drivers/misc/eeprom/Makefile b/drivers/misc/eeprom/Makefile index 8f311fd6a4ce18bd621995811fcf3e971b0988cb..44a20cf025a1b4cb244b5c50d5542e3470b5e977 100644 --- a/drivers/misc/eeprom/Makefile +++ b/drivers/misc/eeprom/Makefile @@ -1,10 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 -obj-$(CONFIG_EEPROM_AT24) += at24.o -obj-$(CONFIG_EEPROM_AT25) += at25.o obj-$(CONFIG_EEPROM_MAX6875) += max6875.o obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o -obj-$(CONFIG_EEPROM_93XX46) += eeprom_93xx46.o obj-$(CONFIG_EEPROM_DIGSY_MTC_CFG) += digsy_mtc_eeprom.o obj-$(CONFIG_EEPROM_IDT_89HPESX) += idt_89hpesx.o -obj-$(CONFIG_EEPROM_EE1004) += ee1004.o -obj-$(CONFIG_EEPROM_M24LR) += m24lr.o diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig index e10f7ff725ff91b482efba4013442b8bcc8dd9da..ec9e78541742b76cfd893333c512eea35596a1cb 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -28,6 +28,94 @@ source "drivers/nvmem/layouts/Kconfig" # Devices +config EEPROM_AT24 + tristate "I2C EEPROMs / RAMs / ROMs from most vendors" + depends on I2C && SYSFS + select NVMEM_SYSFS + select REGMAP + select REGMAP_I2C + help + Enable this driver to get read/write support to most I2C EEPROMs + and compatible devices like FRAMs, SRAMs, ROMs etc. After you + configure the driver to know about each chip on your target + board. Use these generic chip names, instead of vendor-specific + ones like at24c64, 24lc02 or fm24c04: + + 24c00, 24c01, 24c02, spd (readonly 24c02), 24c04, 24c08, + 24c16, 24c32, 24c64, 24c128, 24c256, 24c512, 24c1024, 24c2048 + + Unless you like data loss puzzles, always be sure that any chip + you configure as a 24c32 (32 kbit) or larger is NOT really a + 24c16 (16 kbit) or smaller, and vice versa. Marking the chip + as read-only won't help recover from this. Also, if your chip + has any software write-protect mechanism you may want to review the + code to make sure this driver won't turn it on by accident. + + If you use this with an SMBus adapter instead of an I2C adapter, + full functionality is not available. Only smaller devices are + supported (24c16 and below, max 4 kByte). + + This driver can also be built as a module. If so, the module + will be called at24. + +config EEPROM_AT25 + tristate "SPI EEPROMs (FRAMs) from most vendors" + depends on SPI && SYSFS + select NVMEM_SYSFS + select SPI_MEM + help + Enable this driver to get read/write support to most SPI EEPROMs + and Cypress FRAMs, + after you configure the board init code to know about each eeprom + on your target board. + + This driver can also be built as a module. If so, the module + will be called at25. + +config EEPROM_93XX46 + tristate "Microwire EEPROM 93XX46 support" + depends on SPI && SYSFS + select REGMAP + select NVMEM_SYSFS + help + Driver for the microwire EEPROM chipsets 93xx46x. The driver + supports both read and write commands and also the command to + erase the whole EEPROM. + + This driver can also be built as a module. If so, the module + will be called eeprom_93xx46. + + If unsure, say N. + +config EEPROM_EE1004 + tristate "SPD EEPROMs on DDR4 memory modules" + depends on I2C && SYSFS + select NVMEM_SYSFS + help + Enable this driver to get read support to SPD EEPROMs following + the JEDEC EE1004 standard. These are typically found on DDR4 + SDRAM memory modules. + + This driver can also be built as a module. If so, the module + will be called ee1004. + +config EEPROM_M24LR + tristate "STMicroelectronics M24LR RFID/NFC EEPROM support" + depends on I2C && SYSFS + select REGMAP_I2C + select NVMEM_SYSFS + help + This enables support for STMicroelectronics M24LR RFID/NFC EEPROM + chips. These dual-interface devices expose two I2C addresses: + one for EEPROM memory access and another for control and system + configuration (e.g. UID, password handling). + + This driver provides a sysfs interface for control functions and + integrates with the nvmem subsystem for EEPROM access. + + To compile this driver as a module, choose M here: the + module will be called m24lr. + config NVMEM_AIROHA_SMC_EFUSES tristate "Airoha SMC eFuse support" depends on ARCH_AIROHA || COMPILE_TEST diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile index f6f2bc51dee19e223364de7d1e1fe4e778c75079..2bbfb9ff1885905a9e94aa3780b9c62b9871e05d 100644 --- a/drivers/nvmem/Makefile +++ b/drivers/nvmem/Makefile @@ -10,6 +10,11 @@ nvmem_layouts-y := layouts.o obj-y += layouts/ # Devices +obj-$(CONFIG_EEPROM_AT24) += at24.o +obj-$(CONFIG_EEPROM_AT25) += at25.o +obj-$(CONFIG_EEPROM_93XX46) += eeprom_93xx46.o +obj-$(CONFIG_EEPROM_EE1004) += ee1004.o +obj-$(CONFIG_EEPROM_M24LR) += m24lr.o obj-$(CONFIG_NVMEM_AIROHA_SMC_EFUSES) += nvmem-airoha-smc-efuses.o nvmem-airoha-smc-efuses-y := airoha-smc-efuses.o obj-$(CONFIG_NVMEM_AN8855_EFUSE) += nvmem-an8855-efuse.o diff --git a/drivers/misc/eeprom/at24.c b/drivers/nvmem/at24.c similarity index 100% rename from drivers/misc/eeprom/at24.c rename to drivers/nvmem/at24.c diff --git a/drivers/misc/eeprom/at25.c b/drivers/nvmem/at25.c similarity index 100% rename from drivers/misc/eeprom/at25.c rename to drivers/nvmem/at25.c diff --git a/drivers/misc/eeprom/ee1004.c b/drivers/nvmem/ee1004.c similarity index 100% rename from drivers/misc/eeprom/ee1004.c rename to drivers/nvmem/ee1004.c diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/nvmem/eeprom_93xx46.c similarity index 100% rename from drivers/misc/eeprom/eeprom_93xx46.c rename to drivers/nvmem/eeprom_93xx46.c diff --git a/drivers/misc/eeprom/m24lr.c b/drivers/nvmem/m24lr.c similarity index 100% rename from drivers/misc/eeprom/m24lr.c rename to drivers/nvmem/m24lr.c --- base-commit: 4fa3f5fabb30bf00d7475d5a33459ea83d639bf9 change-id: 20260618-eeprom-move-to-nvmem-a1b55796d9a6 Best regards, -- Bartosz Golaszewski