summaryrefslogtreecommitdiffstats
path: root/include/linux/nvmem-provider.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nvmem-provider.h')
-rw-r--r--include/linux/nvmem-provider.h30
1 files changed, 24 insertions, 6 deletions
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index a293f60c1e..41c636b3a4 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -17,21 +17,25 @@
struct nvmem_device;
-struct nvmem_bus {
- int (*write)(void *ctx, unsigned int reg, const void *val, size_t val_size);
- int (*read)(void *ctx, unsigned int reg, void *val, size_t val_size);
-};
+/* used for vendor specific post processing of cell data */
+typedef int (*nvmem_cell_post_process_t)(void *priv, const char *id,
+ unsigned int offset, void *buf,
+ size_t bytes);
struct nvmem_config {
- struct device_d *dev;
+ struct device *dev;
const char *name;
bool read_only;
struct cdev *cdev;
int stride;
int word_size;
int size;
- const struct nvmem_bus *bus;
+ int (*reg_write)(void *ctx, unsigned int reg,
+ const void *val, size_t val_size);
+ int (*reg_read)(void *ctx, unsigned int reg,
+ void *val, size_t val_size);
void *priv;
+ nvmem_cell_post_process_t cell_post_process;
};
struct regmap;
@@ -41,7 +45,10 @@ struct cdev;
struct nvmem_device *nvmem_register(const struct nvmem_config *cfg);
struct nvmem_device *nvmem_regmap_register(struct regmap *regmap, const char *name);
+struct nvmem_device *nvmem_regmap_register_with_pp(struct regmap *regmap,
+ const char *name, nvmem_cell_post_process_t cell_post_process);
struct nvmem_device *nvmem_partition_register(struct cdev *cdev);
+struct device *nvmem_device_get_device(struct nvmem_device *nvmem);
#else
@@ -55,10 +62,21 @@ static inline struct nvmem_device *nvmem_regmap_register(struct regmap *regmap,
return ERR_PTR(-ENOSYS);
}
+static inline struct nvmem_device *
+nvmem_regmap_register_with_pp(struct regmap *regmap, const char *name,
+ nvmem_cell_post_process_t cell_post_process)
+{
+ return ERR_PTR(-ENOSYS);
+}
+
static inline struct nvmem_device *nvmem_partition_register(struct cdev *cdev)
{
return ERR_PTR(-ENOSYS);
}
+static inline struct device *nvmem_device_get_device(struct nvmem_device *nvmem)
+{
+ return ERR_PTR(-ENOSYS);
+}
#endif /* CONFIG_NVMEM */
#endif /* ifndef _LINUX_NVMEM_PROVIDER_H */