diff options
Diffstat (limited to 'drivers/base/regmap/internal.h')
| -rw-r--r-- | drivers/base/regmap/internal.h | 24 | 
1 files changed, 21 insertions, 3 deletions
diff --git a/drivers/base/regmap/internal.h b/drivers/base/regmap/internal.h index 80f9ab9c3aa..401d1919635 100644 --- a/drivers/base/regmap/internal.h +++ b/drivers/base/regmap/internal.h @@ -15,10 +15,18 @@  #include <linux/regmap.h>  #include <linux/fs.h> +#include <linux/list.h>  struct regmap;  struct regcache_ops; +struct regmap_debugfs_off_cache { +	struct list_head list; +	off_t min; +	off_t max; +	unsigned int base_reg; +}; +  struct regmap_format {  	size_t buf_size;  	size_t reg_bytes; @@ -31,14 +39,12 @@ struct regmap_format {  	unsigned int (*parse_val)(void *buf);  }; -typedef void (*regmap_lock)(struct regmap *map); -typedef void (*regmap_unlock)(struct regmap *map); -  struct regmap {  	struct mutex mutex;  	spinlock_t spinlock;  	regmap_lock lock;  	regmap_unlock unlock; +	void *lock_arg; /* This is passed to lock/unlock functions */  	struct device *dev; /* Device we do I/O on */  	void *work_buf;     /* Scratch buffer used to format I/O */ @@ -50,6 +56,12 @@ struct regmap {  #ifdef CONFIG_DEBUG_FS  	struct dentry *debugfs;  	const char *debugfs_name; + +	unsigned int debugfs_reg_len; +	unsigned int debugfs_val_len; +	unsigned int debugfs_tot_len; + +	struct list_head debugfs_off_cache;  #endif  	unsigned int max_register; @@ -57,6 +69,10 @@ struct regmap {  	bool (*readable_reg)(struct device *dev, unsigned int reg);  	bool (*volatile_reg)(struct device *dev, unsigned int reg);  	bool (*precious_reg)(struct device *dev, unsigned int reg); +	const struct regmap_access_table *wr_table; +	const struct regmap_access_table *rd_table; +	const struct regmap_access_table *volatile_table; +	const struct regmap_access_table *precious_table;  	u8 read_flag_mask;  	u8 write_flag_mask; @@ -120,6 +136,8 @@ int _regmap_write(struct regmap *map, unsigned int reg,  struct regmap_range_node {  	struct rb_node node; +	const char *name; +	struct regmap *map;  	unsigned int range_min;  	unsigned int range_max;  |