Merge remote-tracking branch 'moduleh/module.h-split'
[linux-2.6/next.git] / drivers / base / regmap / internal.h
blob5ab3fefa4b05dbf0eac29c8b006ee1496017e88e
1 /*
2 * Register map access API internal header
4 * Copyright 2011 Wolfson Microelectronics plc
6 * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
13 #ifndef _REGMAP_INTERNAL_H
14 #define _REGMAP_INTERNAL_H
16 #include <linux/regmap.h>
17 #include <linux/fs.h>
19 struct regmap;
21 struct regmap_format {
22 size_t buf_size;
23 size_t reg_bytes;
24 size_t val_bytes;
25 void (*format_write)(struct regmap *map,
26 unsigned int reg, unsigned int val);
27 void (*format_reg)(void *buf, unsigned int reg);
28 void (*format_val)(void *buf, unsigned int val);
29 unsigned int (*parse_val)(void *buf);
32 struct regmap {
33 struct mutex lock;
35 struct device *dev; /* Device we do I/O on */
36 void *work_buf; /* Scratch buffer used to format I/O */
37 struct regmap_format format; /* Buffer format */
38 const struct regmap_bus *bus;
40 #ifdef CONFIG_DEBUG_FS
41 struct dentry *debugfs;
42 #endif
44 unsigned int max_register;
45 bool (*writeable_reg)(struct device *dev, unsigned int reg);
46 bool (*readable_reg)(struct device *dev, unsigned int reg);
47 bool (*volatile_reg)(struct device *dev, unsigned int reg);
48 bool (*precious_reg)(struct device *dev, unsigned int reg);
51 bool regmap_writeable(struct regmap *map, unsigned int reg);
52 bool regmap_readable(struct regmap *map, unsigned int reg);
53 bool regmap_volatile(struct regmap *map, unsigned int reg);
54 bool regmap_precious(struct regmap *map, unsigned int reg);
56 #ifdef CONFIG_DEBUG_FS
57 extern void regmap_debugfs_initcall(void);
58 extern void regmap_debugfs_init(struct regmap *map);
59 extern void regmap_debugfs_exit(struct regmap *map);
60 #else
61 void regmap_debugfs_initcall(void) { }
62 void regmap_debugfs_init(struct regmap *map) { }
63 void regmap_debugfs_exit(struct regmap *map) { }
64 #endif
66 #endif