[PATCH v10 1/4] nvmem: prepare basics for FRAM support
From: Jiri Prchal <hidden>
Date: 2021-06-11 09:46:13
Also in:
lkml
Subsystem:
nvmem framework, the rest · Maintainers:
Srinivas Kandagatla, Linus Torvalds
Added enum and string for FRAM (ferroelectric RAM) to expose it as file named "fram". Added documentation of sysfs file. Signed-off-by: Jiri Prchal <redacted> --- v2: no change here v3: resend and added more recipients v4: resend v5: no change here v6: changed commit subject v7: no change here v8: changed subject v9: no change here v10: moved documentation to here --- Documentation/ABI/testing/sysfs-class-spi-eeprom | 8 ++++++++ drivers/nvmem/core.c | 4 ++++ include/linux/nvmem-provider.h | 1 + 3 files changed, 13 insertions(+) create mode 100644 Documentation/ABI/testing/sysfs-class-spi-eeprom
diff --git a/Documentation/ABI/testing/sysfs-class-spi-eeprom b/Documentation/ABI/testing/sysfs-class-spi-eeprom
new file mode 100644
index 000000000000..7447e242d415
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-class-spi-eeprom@@ -0,0 +1,8 @@ +What: /sys/class/spi_master/spi<bus>/spi<bus>.<dev>/fram +Date: June 2021 +KernelVersion: 5.14 +Contact: Jiri Prchal <jiri.prchal@aksignal.cz> +Description: + Contains the FRAM binary data. Same as EEPROM, just another file + name to indicate that it employs ferroelectric process. + It performs write operations at bus speed - no write delays.
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 177f5bf27c6d..01ef9a934b0a 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c@@ -180,6 +180,7 @@ static const char * const nvmem_type_str[] = { [NVMEM_TYPE_EEPROM] = "EEPROM", [NVMEM_TYPE_OTP] = "OTP", [NVMEM_TYPE_BATTERY_BACKED] = "Battery backed", + [NVMEM_TYPE_FRAM] = "FRAM", }; #ifdef CONFIG_DEBUG_LOCK_ALLOC
@@ -359,6 +360,9 @@ static int nvmem_sysfs_setup_compat(struct nvmem_device *nvmem, if (!config->base_dev) return -EINVAL; + if (config->type == NVMEM_TYPE_FRAM) + bin_attr_nvmem_eeprom_compat.attr.name = "fram"; + nvmem->eeprom = bin_attr_nvmem_eeprom_compat; nvmem->eeprom.attr.mode = nvmem_bin_attr_get_umode(nvmem); nvmem->eeprom.size = nvmem->size;
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index e162b757b6d5..890003565761 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h@@ -25,6 +25,7 @@ enum nvmem_type { NVMEM_TYPE_EEPROM, NVMEM_TYPE_OTP, NVMEM_TYPE_BATTERY_BACKED, + NVMEM_TYPE_FRAM, }; #define NVMEM_DEVID_NONE (-1)
--
2.25.1