mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srini@kernel.org>
To: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Srinivas Kandagatla <srini@kernel.org>,
	Wolfram Sang <wsa+renesas@sang-engineering.com>,
	Andi Shyti <andi.shyti@kernel.org>,
	Bartosz Golaszewski <brgl@kernel.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] eeprom: move nvmem EEPROM drivers to drivers/nvmem/
Date: Wed, 8 Jul 2026 21:33:54 +0100	[thread overview]
Message-ID: <076a7db6-6974-47cc-af48-512c9296ee19@kernel.org> (raw)
In-Reply-To: <20260702-eeprom-move-to-nvmem-v2-1-327e1e5d1d95@oss.qualcomm.com>



On 7/2/26 10:24 AM, Bartosz Golaszewski wrote:
> 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.
> 
> Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> ---
> Changes in v2:
> - Put the Kconfig entries behind a NVMEM_SYSFS guard
> - Rebase on top of v7.2-rc1
> - Link to v1: https://patch.msgid.link/20260618-eeprom-move-to-nvmem-v1-1-21771f30efcc@oss.qualcomm.com
> ---
>  MAINTAINERS                                    |  4 +-
>  drivers/misc/eeprom/Kconfig                    | 93 --------------------------
>  drivers/misc/eeprom/Makefile                   |  5 --
>  drivers/nvmem/Kconfig                          | 87 ++++++++++++++++++++++++
>  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, 94 insertions(+), 100 deletions(-)
> 
Hi Bart,

This Does not apply to linux-next, can you please rebase and send

--srini
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 15011f5752a994cf1b354f490d6c4e411588df88..ea5bb279a09f890ca2039b01c4f53316ae1438fe 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -4168,11 +4168,11 @@ F:	include/linux/async_tx.h
>  
>  AT24 EEPROM DRIVER
>  M:	Bartosz Golaszewski <brgl@kernel.org>
> -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" <justin@coraid.com>
> 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 74ddbd0f79b0ece5a657c70f90aa04c4fef6fdee..bb8e2952ec7c751e72b260d197ebaecd5ceb0bd3 100644
> --- a/drivers/nvmem/Kconfig
> +++ b/drivers/nvmem/Kconfig
> @@ -28,6 +28,93 @@ source "drivers/nvmem/layouts/Kconfig"
>  
>  # Devices
>  
> +if NVMEM_SYSFS
> +
> +config EEPROM_AT24
> +	tristate "I2C EEPROMs / RAMs / ROMs from most vendors"
> +	depends on I2C && 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 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
> +	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
> +	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
> +	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.
> +
> +endif # NVMEM_SYSFS
> +
>  config NVMEM_AN8855_EFUSE
>  	tristate "Airoha AN8855 eFuse support"
>  	depends on COMPILE_TEST
> diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile
> index 7252b8ec88d46981f0f4e78ec795b5a304bd9dd2..a27791800f8cccaa7391cfafd81944850cbaf6e0 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_AN8855_EFUSE)	+= nvmem-an8855-efuse.o
>  nvmem-an8855-efuse-y 			:= an8855-efuse.o
>  obj-$(CONFIG_NVMEM_APPLE_EFUSES)	+= nvmem-apple-efuses.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: dc59e4fea9d83f03bad6bddf3fa2e52491777482
> change-id: 20260618-eeprom-move-to-nvmem-a1b55796d9a6
> 
> Best regards,


  parent reply	other threads:[~2026-07-08 20:33 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-02  9:24 Bartosz Golaszewski
2026-07-02  9:40 ` Arnd Bergmann
2026-07-02 14:42 ` Greg Kroah-Hartman
2026-07-08 20:33 ` Srinivas Kandagatla [this message]
2026-07-12  7:42 ` Srinivas Kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=076a7db6-6974-47cc-af48-512c9296ee19@kernel.org \
    --to=srini@kernel.org \
    --cc=andi.shyti@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bartosz.golaszewski@oss.qualcomm.com \
    --cc=brgl@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wsa+renesas@sang-engineering.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome