Add a new registration function that allows to fill the cell_post_process
function pointer.

Signed-off-by: Lucas Stach <[email protected]>
---
 drivers/nvmem/regmap.c         | 10 +++++++++-
 include/linux/nvmem-provider.h |  9 +++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/nvmem/regmap.c b/drivers/nvmem/regmap.c
index 56611819a2b4..58b3fe647b28 100644
--- a/drivers/nvmem/regmap.c
+++ b/drivers/nvmem/regmap.c
@@ -58,7 +58,9 @@ static struct nvmem_bus nvmem_regmap_bus = {
        .write = nvmem_regmap_write,
 };
 
-struct nvmem_device *nvmem_regmap_register(struct regmap *map, const char 
*name)
+struct nvmem_device *
+nvmem_regmap_register_with_pp(struct regmap *map, const char *name,
+                             nvmem_cell_post_process_t cell_post_process)
 {
        struct nvmem_config config = {};
 
@@ -73,6 +75,12 @@ struct nvmem_device *nvmem_regmap_register(struct regmap 
*map, const char *name)
        config.word_size = 1;
        config.size = regmap_get_max_register(map) * regmap_get_reg_stride(map);
        config.bus = &nvmem_regmap_bus;
+       config.cell_post_process = cell_post_process;
 
        return nvmem_register(&config);
 }
+
+struct nvmem_device *nvmem_regmap_register(struct regmap *map, const char 
*name)
+{
+       return nvmem_regmap_register_with_pp(map, name, NULL);
+}
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 2f130e51791c..43fe49648e66 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -47,6 +47,8 @@ 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);
 
 #else
@@ -61,6 +63,13 @@ 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);
-- 
2.39.1


Reply via email to