1 /* 2 * nvmem framework provider. 3 * 4 * Copyright (C) 2015 Srinivas Kandagatla <[email protected]> 5 * Copyright (C) 2013 Maxime Ripard <[email protected]> 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 bool root_only; 27 /* To be only used by old driver/misc/eeprom drivers */ 28 bool compat; 29 struct device *base_dev; 30 }; 31 32 #if IS_ENABLED(CONFIG_NVMEM) 33 34 struct nvmem_device *nvmem_register(const struct nvmem_config *cfg); 35 int nvmem_unregister(struct nvmem_device *nvmem); 36 37 #else 38 39 static inline struct nvmem_device *nvmem_register(const struct nvmem_config *c) 40 { 41 return ERR_PTR(-ENOSYS); 42 } 43 44 static inline int nvmem_unregister(struct nvmem_device *nvmem) 45 { 46 return -ENOSYS; 47 } 48 49 #endif /* CONFIG_NVMEM */ 50 #endif /* ifndef _LINUX_NVMEM_PROVIDER_H */ 51