]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - include/linux/nvmem-provider.h
Merge remote-tracking branch 'file-locks/linux-next'
[karo-tx-linux.git] / include / linux / nvmem-provider.h
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
35 static inline struct nvmem_device *nvmem_register(const struct nvmem_config *c)
36 {
37         return ERR_PTR(-ENOSYS);
38 }
39
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 */