Re: [PATCHv4 0/7] Convert exiting EEPROM drivers to NVMEM

From: Srinivas Kandagatla
Date: Wed Feb 17 2016 - 05:17:36 EST



Hi Andrew,

Thanks for the patches, they look good.

Do we have any reason why we should not move these drivers from drivers/misc/eeprom to drivers/nvmem?


--srini

On 16/02/16 23:41, Andrew Lunn wrote:
This patch set converts the old EEPROM drivers in driver/misc/eeprom to
use the NVMEM framework. These drivers export there content in /sys as
read only to root, since the EEPROM may contain sensitive information.
So the first patch adds a flag so the NVMEM framework will create its
file in /sys as root read only.

To keep backwards compatibility with these older drivers, the contents
of the EEPROM must be exports in sysfs in a file called eeprom in the
devices node in sys, where as the NVMEM places them under class/nvmem.
So add this optional backwards compatible to the framework, again
using a flag.

Then convert the at24, at25 and 93xx46 by adding regmap support,
removing each drivers own /sys code and registering with the NVMEM
framework.

AT24 and 93xx46 has been boot tested, at25 compile tested only.

v2:

nvmem_register() now supports a backwards compatible flag, and the
Kconfig option has been removed.

v3:

Rebase on v4.5-rc1.
Add a patch to replace memory_accessor in the setup() callbacks with
nvmem API calls

v4:

Rebase on v4.5-rc3
Fix lockdep key in patch #2

Andrew Lunn (7):
nvmem: Add flag to export NVMEM to root only
nvmem: Add backwards compatibility support for older EEPROM drivers.
eeprom: at24: extend driver to plug into the NVMEM framework
eeprom: at25: Remove in kernel API for accessing the EEPROM
eeprom: at25: extend driver to plug into the NVMEM framework
eeprom: 93xx46: extend driver to plug into the NVMEM framework
misc: at24: replace memory_accessor with nvmem_device_read

arch/arm/mach-davinci/board-mityomapl138.c | 5 +-
arch/arm/mach-davinci/common.c | 4 +-
drivers/misc/eeprom/Kconfig | 6 ++
drivers/misc/eeprom/at24.c | 130 +++++++++++++------------
drivers/misc/eeprom/at25.c | 148 +++++++++++++----------------
drivers/misc/eeprom/eeprom_93xx46.c | 122 +++++++++++++++++++-----
drivers/nvmem/core.c | 141 +++++++++++++++++++++++++--
include/linux/davinci_emac.h | 4 +-
include/linux/memory.h | 11 ---
include/linux/nvmem-provider.h | 5 +-
include/linux/platform_data/at24.h | 10 +-
include/linux/spi/eeprom.h | 2 -
12 files changed, 387 insertions(+), 201 deletions(-)