diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0395-nvmem-add-type-attribute.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0395-nvmem-add-type-attribute.patch | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0395-nvmem-add-type-attribute.patch b/target/linux/brcm2708/patches-4.19/950-0395-nvmem-add-type-attribute.patch deleted file mode 100644 index cb88272cce..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0395-nvmem-add-type-attribute.patch +++ /dev/null @@ -1,131 +0,0 @@ -From b3acb96a394db9adcc13aae8321e3d18bbd7d30d Mon Sep 17 00:00:00 2001 -From: Alexandre Belloni <alexandre.belloni@bootlin.com> -Date: Fri, 30 Nov 2018 11:53:20 +0000 -Subject: [PATCH 395/725] nvmem: add type attribute - -commit 16688453661b6d5159be558a1f8c1f54463a420f upstream. - -Add a type attribute so userspace is able to know how the data is stored as -this can help taking the correct decision when selecting which device to -use. This will also help program display the proper warnings when burning -fuses for example. - -Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> -Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/nvmem/core.c | 21 +++++++++++++++++++++ - include/linux/nvmem-provider.h | 16 ++++++++++++++++ - 2 files changed, 37 insertions(+) - ---- a/drivers/nvmem/core.c -+++ b/drivers/nvmem/core.c -@@ -36,6 +36,7 @@ struct nvmem_device { - size_t size; - bool read_only; - int flags; -+ enum nvmem_type type; - struct bin_attribute eeprom; - struct device *base_dev; - nvmem_reg_read_t reg_read; -@@ -84,6 +85,21 @@ static int nvmem_reg_write(struct nvmem_ - return -EINVAL; - } - -+static ssize_t type_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct nvmem_device *nvmem = to_nvmem_device(dev); -+ -+ return sprintf(buf, "%s\n", nvmem_type_str[nvmem->type]); -+} -+ -+static DEVICE_ATTR_RO(type); -+ -+static struct attribute *nvmem_attrs[] = { -+ &dev_attr_type.attr, -+ NULL, -+}; -+ - static ssize_t bin_attr_nvmem_read(struct file *filp, struct kobject *kobj, - struct bin_attribute *attr, - char *buf, loff_t pos, size_t count) -@@ -169,6 +185,7 @@ static struct bin_attribute *nvmem_bin_r - - static const struct attribute_group nvmem_bin_rw_group = { - .bin_attrs = nvmem_bin_rw_attributes, -+ .attrs = nvmem_attrs, - }; - - static const struct attribute_group *nvmem_rw_dev_groups[] = { -@@ -192,6 +209,7 @@ static struct bin_attribute *nvmem_bin_r - - static const struct attribute_group nvmem_bin_ro_group = { - .bin_attrs = nvmem_bin_ro_attributes, -+ .attrs = nvmem_attrs, - }; - - static const struct attribute_group *nvmem_ro_dev_groups[] = { -@@ -216,6 +234,7 @@ static struct bin_attribute *nvmem_bin_r - - static const struct attribute_group nvmem_bin_rw_root_group = { - .bin_attrs = nvmem_bin_rw_root_attributes, -+ .attrs = nvmem_attrs, - }; - - static const struct attribute_group *nvmem_rw_root_dev_groups[] = { -@@ -239,6 +258,7 @@ static struct bin_attribute *nvmem_bin_r - - static const struct attribute_group nvmem_bin_ro_root_group = { - .bin_attrs = nvmem_bin_ro_root_attributes, -+ .attrs = nvmem_attrs, - }; - - static const struct attribute_group *nvmem_ro_root_dev_groups[] = { -@@ -478,6 +498,7 @@ struct nvmem_device *nvmem_register(cons - nvmem->dev.bus = &nvmem_bus_type; - nvmem->dev.parent = config->dev; - nvmem->priv = config->priv; -+ nvmem->type = config->type; - nvmem->reg_read = config->reg_read; - nvmem->reg_write = config->reg_write; - nvmem->dev.of_node = config->dev->of_node; ---- a/include/linux/nvmem-provider.h -+++ b/include/linux/nvmem-provider.h -@@ -22,6 +22,20 @@ typedef int (*nvmem_reg_read_t)(void *pr - typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset, - void *val, size_t bytes); - -+enum nvmem_type { -+ NVMEM_TYPE_UNKNOWN = 0, -+ NVMEM_TYPE_EEPROM, -+ NVMEM_TYPE_OTP, -+ NVMEM_TYPE_BATTERY_BACKED, -+}; -+ -+static const char * const nvmem_type_str[] = { -+ [NVMEM_TYPE_UNKNOWN] = "Unknown", -+ [NVMEM_TYPE_EEPROM] = "EEPROM", -+ [NVMEM_TYPE_OTP] = "OTP", -+ [NVMEM_TYPE_BATTERY_BACKED] = "Battery backed", -+}; -+ - /** - * struct nvmem_config - NVMEM device configuration - * -@@ -31,6 +45,7 @@ typedef int (*nvmem_reg_write_t)(void *p - * @owner: Pointer to exporter module. Used for refcounting. - * @cells: Optional array of pre-defined NVMEM cells. - * @ncells: Number of elements in cells. -+ * @type: Type of the nvmem storage - * @read_only: Device is read-only. - * @root_only: Device is accessibly to root only. - * @reg_read: Callback to read data. -@@ -54,6 +69,7 @@ struct nvmem_config { - struct module *owner; - const struct nvmem_cell_info *cells; - int ncells; -+ enum nvmem_type type; - bool read_only; - bool root_only; - nvmem_reg_read_t reg_read; |