This patchset implements the MTD OTP functions to allow access to the SPI OTP data. Specific support is added for Winbond flash chips.
In the past there was already an attempt by Rahul Bedarkar to add this, but there was no response. These patches are slightly based on his work. https://lore.kernel.org/linux-mtd/1489754636-21461-1-git-send-email-rahul.bedar...@imgtec.com/ Changes since v3: - remapped the OTP regions to a contiguous area starting at 0. The chips/cfi_cmdset_000[12].c remap the regions, too. - with that in place, read/write/lock/erase spanning multiple OTP regions are possible - picked up Tudors review remarks - added new erase support as RFC because MTD API/ABI is still missing. Feel free to review, but don't apply it. Changes since v2: - improved commit messages - add buffer size check in spi_nor_mtd_otp_info(). just to be sure, the buffer is hardcoded to 4k by the mtd subsys - moved all code to otp.c - dropped the patches introduced in v2 Changes since v1: - added methods for Macronix and similar flashes - added patch to cleanup/consolidate code in core.c Michael Walle (4): mtd: spi-nor: add OTP support mtd: spi-nor: implement OTP support for Winbond and similar flashes mtd: spi-nor: winbond: add OTP support to w25q32fw/jw mtd: spi-nor: implement OTP erase for Winbond and similar flashes drivers/mtd/spi-nor/Makefile | 1 + drivers/mtd/spi-nor/core.c | 11 +- drivers/mtd/spi-nor/core.h | 64 +++++ drivers/mtd/spi-nor/otp.c | 453 ++++++++++++++++++++++++++++++++++ drivers/mtd/spi-nor/winbond.c | 18 +- include/linux/mtd/spi-nor.h | 9 + 6 files changed, 551 insertions(+), 5 deletions(-) create mode 100644 drivers/mtd/spi-nor/otp.c -- 2.20.1