1 /*
2  * nvmem framework provider.
3  *
4  * Copyright (C) 2015 Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
5  * Copyright (C) 2013 Maxime Ripard <maxime.ripard@free-electrons.com>
6  *
7  * This file is licensed under the terms of the GNU General Public
8  * License version 2.  This program is licensed "as is" without any
9  * warranty of any kind, whether express or implied.
10  */
11 
12 #ifndef _LINUX_NVMEM_PROVIDER_H
13 #define _LINUX_NVMEM_PROVIDER_H
14 
15 struct nvmem_device;
16 struct nvmem_cell_info;
17 
18 struct nvmem_config {
19 	struct device		*dev;
20 	const char		*name;
21 	int			id;
22 	struct module		*owner;
23 	const struct nvmem_cell_info	*cells;
24 	int			ncells;
25 	bool			read_only;
26 };
27 
28 #if IS_ENABLED(CONFIG_NVMEM)
29 
30 struct nvmem_device *nvmem_register(const struct nvmem_config *cfg);
31 int nvmem_unregister(struct nvmem_device *nvmem);
32 
33 #else
34 
nvmem_register(const struct nvmem_config * c)35 static inline struct nvmem_device *nvmem_register(const struct nvmem_config *c)
36 {
37 	return ERR_PTR(-ENOSYS);
38 }
39 
nvmem_unregister(struct nvmem_device * nvmem)40 static inline int nvmem_unregister(struct nvmem_device *nvmem)
41 {
42 	return -ENOSYS;
43 }
44 
45 #endif /* CONFIG_NVMEM */
46 
47 #endif  /* ifndef _LINUX_NVMEM_PROVIDER_H */
48