1 /* SPDX-License-Identifier: GPL-2.0 */
3 #ifndef _LINUX_NVMEM_INTERNALS_H
4 #define _LINUX_NVMEM_INTERNALS_H
6 #include <linux/device.h>
7 #include <linux/nvmem-consumer.h>
8 #include <linux/nvmem-provider.h>
13 struct list_head node
;
23 struct bin_attribute eeprom
;
24 struct device
*base_dev
;
25 struct list_head cells
;
26 void (*fixup_dt_cell_info
)(struct nvmem_device
*nvmem
,
27 struct nvmem_cell_info
*cell
);
28 const struct nvmem_keepout
*keepout
;
29 unsigned int nkeepout
;
30 nvmem_reg_read_t reg_read
;
31 nvmem_reg_write_t reg_write
;
32 struct gpio_desc
*wp_gpio
;
33 struct nvmem_layout
*layout
;
35 bool sysfs_cells_populated
;
38 #if IS_ENABLED(CONFIG_OF)
39 int nvmem_layout_bus_register(void);
40 void nvmem_layout_bus_unregister(void);
41 int nvmem_populate_layout(struct nvmem_device
*nvmem
);
42 void nvmem_destroy_layout(struct nvmem_device
*nvmem
);
44 static inline int nvmem_layout_bus_register(void)
49 static inline void nvmem_layout_bus_unregister(void) {}
51 static inline int nvmem_populate_layout(struct nvmem_device
*nvmem
)
56 static inline void nvmem_destroy_layout(struct nvmem_device
*nvmem
) { }
57 #endif /* CONFIG_OF */
59 #endif /* ifndef _LINUX_NVMEM_INTERNALS_H */