[PATCH 0/7] New eFuse subsystem

Ezequiel Garcia
2015-02-25T11:47:54Z

This patchset introduces a new driver subsystem, meant to support eFuse
(alias OTP, one-time-programmable) devices.

The motivation behind this work is to have a common place for drivers
that are currently more or less scattered: the tegra efuses are in
drivers/soc/ and the sunxi efuses in drivers/misc/eeprom.

For now, there's no proposal for a generic efuse API. Instead, we simply
group the drivers together.

This patchset is the result of the initial submission for IMG Pistachio
eFuse support [1]. Our first proposal was to follow the Tegra efuse, and
put the Pistachio efuse in drivers/soc. After some discussion we finally
agreed [2] to first create an efuse directoy, and then put all efuse drivers
in it.

As always, all comments are welcome!

[1] http://www.spinics.net/lists/devicetree/msg59246.html
[2] http://www.spinics.net/lists/arm-kernel/msg389325.html

Ezequiel Garcia (7):
soc: tegra: Add missing include linux/types.h
soc: tegra: Move the fuse header to a separate directory
drivers: Introduce new eFuse subsystem stub
efuse: Move Tegra efuse driver
ARM: tegra: Make sure efuse is always selected
efuse: Move Sunxi fuse driver
ARM: sunxi: Rename EFUSE_SUNXI option in defconfigs

arch/arm/configs/multi_v7_defconfig | 2 +-
arch/arm/configs/sunxi_defconfig | 2 +-
arch/arm/mach-tegra/Kconfig | 1 +
arch/arm/mach-tegra/cpuidle.c | 3 +--
arch/arm/mach-tegra/flowctrl.c | 3 +--
arch/arm/mach-tegra/hotplug.c | 2 +-
arch/arm/mach-tegra/platsmp.c | 2 +-
arch/arm/mach-tegra/pm.c | 2 +-
arch/arm/mach-tegra/reset-handler.S | 3 +--
arch/arm/mach-tegra/reset.c | 3 +--
arch/arm/mach-tegra/sleep-tegra30.S | 3 +--
arch/arm/mach-tegra/tegra.c | 2 +-
drivers/Kconfig | 2 ++
drivers/Makefile | 1 +
drivers/ata/ahci_tegra.c | 2 +-
drivers/clk/tegra/clk-periph-gate.c | 3 +--
drivers/clk/tegra/clk.c | 3 +--
drivers/efuse/Kconfig | 22 ++++++++++++++++++++++
drivers/efuse/Makefile | 2 ++
drivers/{misc/eeprom => efuse}/sunxi_sid.c | 0
drivers/{soc/tegra/fuse => efuse/tegra}/Makefile | 0
.../{soc/tegra/fuse => efuse/tegra}/fuse-tegra.c | 2 +-
.../{soc/tegra/fuse => efuse/tegra}/fuse-tegra20.c | 3 +--
.../{soc/tegra/fuse => efuse/tegra}/fuse-tegra30.c | 3 +--
drivers/{soc/tegra/fuse => efuse/tegra}/fuse.h | 0
.../tegra/fuse => efuse/tegra}/speedo-tegra114.c | 3 +--
.../tegra/fuse => efuse/tegra}/speedo-tegra124.c | 3 +--
.../tegra/fuse => efuse/tegra}/speedo-tegra20.c | 3 +--
.../tegra/fuse => efuse/tegra}/speedo-tegra30.c | 3 +--
.../tegra/fuse => efuse/tegra}/tegra-apbmisc.c | 3 +--
drivers/gpu/drm/nouveau/nouveau_platform.c | 2 +-
drivers/misc/eeprom/Kconfig | 13 -------------
drivers/misc/eeprom/Makefile | 1 -
drivers/soc/tegra/Makefile | 2 --
drivers/soc/tegra/pmc.c | 2 +-
drivers/thermal/tegra_soctherm.c | 3 +--
include/{soc/tegra/fuse.h => linux/efuse/tegra.h} | 2 ++
37 files changed, 55 insertions(+), 56 deletions(-)
create mode 100644 drivers/efuse/Kconfig
create mode 100644 drivers/efuse/Makefile
rename drivers/{misc/eeprom => efuse}/sunxi_sid.c (100%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/Makefile (100%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/fuse-tegra.c (99%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/fuse-tegra20.c (99%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/fuse-tegra30.c (99%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/fuse.h (100%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/speedo-tegra114.c (98%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/speedo-tegra124.c (99%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/speedo-tegra20.c (99%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/speedo-tegra30.c (99%)
rename drivers/{soc/tegra/fuse => efuse/tegra}/tegra-apbmisc.c (98%)
rename include/{soc/tegra/fuse.h => linux/efuse/tegra.h} (98%)

--
2.3.0