123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*
- * Register map access API internal header
- *
- * Copyright 2011 Wolfson Microelectronics plc
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
- #ifndef _REGMAP_INTERNAL_H
- #define _REGMAP_INTERNAL_H
- #include <linux/regmap.h>
- #include <linux/fs.h>
- struct regmap;
- struct regmap_format {
- size_t buf_size;
- size_t reg_bytes;
- size_t val_bytes;
- void (*format_write)(struct regmap *map,
- unsigned int reg, unsigned int val);
- void (*format_reg)(void *buf, unsigned int reg);
- void (*format_val)(void *buf, unsigned int val);
- unsigned int (*parse_val)(void *buf);
- };
- struct regmap {
- struct mutex lock;
- struct device *dev; /* Device we do I/O on */
- void *work_buf; /* Scratch buffer used to format I/O */
- struct regmap_format format; /* Buffer format */
- const struct regmap_bus *bus;
- #ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs;
- #endif
- unsigned int max_register;
- bool (*writeable_reg)(struct device *dev, unsigned int reg);
- 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);
- };
- bool regmap_writeable(struct regmap *map, unsigned int reg);
- bool regmap_readable(struct regmap *map, unsigned int reg);
- bool regmap_volatile(struct regmap *map, unsigned int reg);
- bool regmap_precious(struct regmap *map, unsigned int reg);
- #ifdef CONFIG_DEBUG_FS
- extern void regmap_debugfs_initcall(void);
- extern void regmap_debugfs_init(struct regmap *map);
- extern void regmap_debugfs_exit(struct regmap *map);
- #else
- void regmap_debugfs_initcall(void) { }
- void regmap_debugfs_init(struct regmap *map) { }
- void regmap_debugfs_exit(struct regmap *map) { }
- #endif
- #endif
|