diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-10 04:14:41 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-14 06:51:11 -0400 |
commit | 8de2f081ef8ee716663f916df9f2a7d015fa0dad (patch) | |
tree | 74319c3c14525f063754faab80406416b4a9f1dc /drivers/base/regmap/regmap.c | |
parent | 13c54137f7896928ced8e97708d409fa39c09e00 (diff) |
regmap: Add functions to check for access on registers
We're going to be using these in quite a few places so factor out the
readable/writable/volatile/precious checks.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/base/regmap/regmap.c')
-rw-r--r-- | drivers/base/regmap/regmap.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index d74d306a938b..fa2bd896eb20 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c | |||
@@ -20,6 +20,50 @@ | |||
20 | 20 | ||
21 | #include "internal.h" | 21 | #include "internal.h" |
22 | 22 | ||
23 | bool regmap_writeable(struct regmap *map, unsigned int reg) | ||
24 | { | ||
25 | if (map->max_register && reg > map->max_register) | ||
26 | return false; | ||
27 | |||
28 | if (map->writeable_reg) | ||
29 | return map->writeable_reg(map->dev, reg); | ||
30 | |||
31 | return true; | ||
32 | } | ||
33 | |||
34 | bool regmap_readable(struct regmap *map, unsigned int reg) | ||
35 | { | ||
36 | if (map->max_register && reg > map->max_register) | ||
37 | return false; | ||
38 | |||
39 | if (map->readable_reg) | ||
40 | return map->readable_reg(map->dev, reg); | ||
41 | |||
42 | return true; | ||
43 | } | ||
44 | |||
45 | bool regmap_volatile(struct regmap *map, unsigned int reg) | ||
46 | { | ||
47 | if (map->max_register && reg > map->max_register) | ||
48 | return false; | ||
49 | |||
50 | if (map->volatile_reg) | ||
51 | return map->volatile_reg(map->dev, reg); | ||
52 | |||
53 | return true; | ||
54 | } | ||
55 | |||
56 | bool regmap_precious(struct regmap *map, unsigned int reg) | ||
57 | { | ||
58 | if (map->max_register && reg > map->max_register) | ||
59 | return false; | ||
60 | |||
61 | if (map->precious_reg) | ||
62 | return map->precious_reg(map->dev, reg); | ||
63 | |||
64 | return false; | ||
65 | } | ||
66 | |||
23 | static void regmap_format_4_12_write(struct regmap *map, | 67 | static void regmap_format_4_12_write(struct regmap *map, |
24 | unsigned int reg, unsigned int val) | 68 | unsigned int reg, unsigned int val) |
25 | { | 69 | { |