Subject: Re: [PATCH 4/9] mtd: devices: add AT24 eeprom support

From: Miquel Raynal <[email-masked]>
Date: Mon, 8 Jul 2024 08:44:40 +0200

Hi,

> > >> >> Port the current misc/eeprom/at24.c driver to the MTD framework since
> > >> >> EEPROMs are memory-technology devices and the framework already supports  
> > >> >
> > >> > I was under the impression that MTD devices are tightly coupled by erase
> > >> > blocks. But then we see MTD_NO_ERASE, so what are MTD devices after all?  
> > >> 
> > >> I was curious as well so I did some digging.
> > >>   
> > [...]  
> > >> 
> > >> I also found a thread from 2013 by Maxime Ripard (+Cc) suggesting adding
> > >> EEPROMs to MTD [1]. The main purpose would have been unifying the EEPROM
> > >> drivers under a single interface. I am not sure what came of it though,
> > >> since I can't find any patches that followed up with the proposal.  
> > >
> > > That discussion led to drivers/nvmem after I started to work on
> > > some early prototype, and Srinivas took over that work.  
> > 
> > So would you say it is better for EEPROM drivers to use nvmem instead of
> > moving under MTD?  
> 
> I thought so at the time, but that was more than 10y ago, and I have
> followed neither nvmem nor MTD since so I don't really have an opinion
> there.
> 
> It looks like drivers/misc/eeprom/at24.c has support for nvmem though,
> and MTD can be used as an nvmem provider too, so it's not clear to me
> why we would want to create yet another variant.
> 
> But again, you shouldn't really ask me in the first place :)
> 
> I'm sure Miquel, Srinivas, and surely others, are much more relevant to
> answer that question.

More relevant, I doubt, but just a feeling: EEPROMs have their own
subsystem now, NVMEM, which, as Maxime said, was initially written for
that very specific case. EEPROMs don't have the complexity of MTD
devices, and thus pulling the whole MTD subsystem just for getting
partitions seems counter intuitive to me. You can definitely "split"
EEPROM devices with NVMEM as well anyway.

Overall I think the idea of getting rid of these misc/ drivers is goes
into the right direction, but registering directly into NVMEM makes
more sense IMO.

Thanks,
Miquèl