* fix a compiler warning/error (reported by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) * remove clock-names from properties (suggested by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) PATCH V7 2020-02-28 14:58:30: * use devm_add_action_or_reset to unprepare clock in case of error (suggested by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) * use already existing constants to check for overflow of rd_adj and rd_strobe * remove clock-names from bindings example and DTS (suggested by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) * addition for nemc driver to handle this correctly (contributed by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) * make efuse a child node of nemc to avoid problems with overlapping reg address ranges (suggested by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) PATCH V6 2020-02-26 12:16:07: * add dependency on CONFIG_OF and select REGMAP_MMIO (suggested by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) * add clk_prepare_enable() (suggested by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) * inline jz4780_efuse_read_32bytes() since it is only used once * remove read optimization for full block (suggested by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) * simplify calculations for rd_adj and rd_strobe (suggested by Paul Cercueil <paul@xxxxxxxxxxxxxxx>) * do calculations for rd_adj and rd_strobe in local variables * fix overflow check (did allow for 5 bit values although register is 4 bit wide) * fixes for yaml (sugested by Andreas Kemnade <andreas@xxxxxxxxxxxx>) PATCH V5 2020-02-22 11:25:35: * no longer RFC but PATCH * add yaml bindings (by Andreas Kemnade <andreas@xxxxxxxxxxxx>) * fixes to yaml (suggested by Rob Herring <robh@xxxxxxxxxx>) RFC V4 2020-02-17 17:55:35: * removed read_only for nvmem config because there is no write method * Kconfig: replaced depends MACH_JZ4780 with MACH_INGENIC * run through checkpatch and fixed issues * made use of devm_nvram_register() and get rid of jz4780_efuse_remove() (suggested by Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>) * squashed previous patch 1/9 and 2/9 into single (regmap based) driver RFC V3 2020-02-16 20:20:59: This series is based on and a follow up for https://lore.kernel.org/patchwork/cover/868157/ ("[v2,0/2] Add efuse driver for Ingenic JZ4780 SoC") Original authors were PrasannaKumar Muralidharan <prasannatsmkumar@xxxxxxxxx> Mathieu Malaterre <malat@xxxxxxxxxx> and there are additions / code improvements by H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> Paul Cercueil <paul@xxxxxxxxxxxxxxx> This setup works, if the dm9000 driver is compiled as a module. Therefore it is all RFC level. It is also not completely checkpatched. H. Nikolaus Schaller (1): MIPS: DTS: CI20: make DM9000 Ethernet controller use NVMEM to find the default MAC address Paul Cercueil (1): memory: jz4780_nemc: Only request IO memory the driver will use PrasannaKumar Muralidharan (5): nvmem: add driver for JZ4780 efuse Bindings: nvmem: add bindings for JZ4780 efuse Documentation: ABI: nvmem: add documentation for JZ4780 efuse ABI nvmem: MAINTAINERS: add maintainer for JZ4780 efuse driver MIPS: DTS: JZ4780: define node for JZ4780 efuse .../ABI/testing/sysfs-driver-jz4780-efuse | 16 ++ .../bindings/nvmem/ingenic,jz4780-efuse.yaml | 45 ++++ MAINTAINERS | 5 + arch/mips/boot/dts/ingenic/ci20.dts | 3 + arch/mips/boot/dts/ingenic/jz4780.dtsi | 19 +- drivers/memory/jz4780-nemc.c | 15 +- drivers/nvmem/Kconfig | 12 + drivers/nvmem/Makefile | 2 + drivers/nvmem/jz4780-efuse.c | 239 ++++++++++++++++++ 9 files changed, 353 insertions(+), 3 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-driver-jz4780-efuse create mode 100644 Documentation/devicetree/bindings/nvmem/ingenic,jz4780-efuse.yaml create mode 100644 drivers/nvmem/jz4780-efuse.c -- 2.23.0