diff options
Diffstat (limited to 'include/linux/nvmem-provider.h')
-rw-r--r-- | include/linux/nvmem-provider.h | 49 |
1 files changed, 41 insertions, 8 deletions
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h index 6ef5ea6854..41c636b3a4 100644 --- a/include/linux/nvmem-provider.h +++ b/include/linux/nvmem-provider.h @@ -17,26 +17,38 @@ struct nvmem_device; -struct nvmem_bus { - int (*write)(struct device_d *dev, const int reg, const void *val, - int val_size); - int (*read)(struct device_d *dev, const int reg, void *val, - int 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; +struct cdev; + #if IS_ENABLED(CONFIG_NVMEM) 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 @@ -45,5 +57,26 @@ static inline struct nvmem_device *nvmem_register(const struct nvmem_config *c) return ERR_PTR(-ENOSYS); } +static inline struct nvmem_device *nvmem_regmap_register(struct regmap *regmap, const char *name) +{ + 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 */ |