Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
 1/* SPDX-License-Identifier: GPL-2.0 */
 2
 3#ifndef _DRIVERS_NVMEM_H
 4#define _DRIVERS_NVMEM_H
 5
 6#include <linux/device.h>
 7#include <linux/fs.h>
 8#include <linux/kref.h>
 9#include <linux/list.h>
10#include <linux/nvmem-consumer.h>
11#include <linux/nvmem-provider.h>
12
13struct nvmem_device {
14	struct module		*owner;
15	struct device		dev;
16	int			stride;
17	int			word_size;
18	int			id;
19	struct kref		refcnt;
20	size_t			size;
21	bool			read_only;
22	int			flags;
23	enum nvmem_type		type;
24	struct bin_attribute	eeprom;
25	struct device		*base_dev;
26	struct list_head	cells;
27	nvmem_reg_read_t	reg_read;
28	nvmem_reg_write_t	reg_write;
29	void *priv;
30};
31
32#define to_nvmem_device(d) container_of(d, struct nvmem_device, dev)
33#define FLAG_COMPAT		BIT(0)
34
35#ifdef CONFIG_NVMEM_SYSFS
36const struct attribute_group **nvmem_sysfs_get_groups(
37					struct nvmem_device *nvmem,
38					const struct nvmem_config *config);
39int nvmem_sysfs_setup_compat(struct nvmem_device *nvmem,
40			      const struct nvmem_config *config);
41void nvmem_sysfs_remove_compat(struct nvmem_device *nvmem,
42			      const struct nvmem_config *config);
43#else
44static inline const struct attribute_group **nvmem_sysfs_get_groups(
45					struct nvmem_device *nvmem,
46					const struct nvmem_config *config)
47{
48	return NULL;
49}
50
51static inline int nvmem_sysfs_setup_compat(struct nvmem_device *nvmem,
52				      const struct nvmem_config *config)
53{
54	return -ENOSYS;
55}
56static inline void nvmem_sysfs_remove_compat(struct nvmem_device *nvmem,
57			      const struct nvmem_config *config)
58{
59}
60#endif /* CONFIG_NVMEM_SYSFS */
61
62#endif /* _DRIVERS_NVMEM_H */