regmap: Allow users to query the size of register values
Mark Brown [Fri, 17 Feb 2012 22:20:14 +0000 (14:20 -0800)]
Generic infrastructure based on top of regmap may want to operate on
blocks of data and therefore find it useful to find the size of the
register values. Provide an accessor operation for this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cherry-pick from mainline a6539c3

Change-Id: I455ace158eea38f6a92938f6330ec074bc18f0da
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/96481
Reviewed-by: Automatic_Commit_Validation_User

drivers/base/regmap/regmap.c
include/linux/regmap.h

index 67311c2..e5ae786 100644 (file)
@@ -927,6 +927,21 @@ out:
 }
 EXPORT_SYMBOL_GPL(regmap_register_patch);
 
+/**
+ * regmap_get_val_bytes(): Report the size of a register value
+ *
+ * Report the size of a register value, mainly intended to for use by
+ * generic infrastructure built on top of regmap.
+ */
+int regmap_get_val_bytes(struct regmap *map)
+{
+       if (map->format.format_write)
+               return -EINVAL;
+
+       return map->format.val_bytes;
+}
+EXPORT_SYMBOL_GPL(regmap_get_val_bytes);
+
 static int __init regmap_initcall(void)
 {
        regmap_debugfs_initcall();
index 9fce3c8..da27cb1 100644 (file)
@@ -157,6 +157,7 @@ int regmap_update_bits_lazy(struct regmap *map, unsigned int reg,
 int regmap_update_bits_check(struct regmap *map, unsigned int reg,
                             unsigned int mask, unsigned int val,
                             bool *change);
+int regmap_get_val_bytes(struct regmap *map);
 
 int regcache_sync(struct regmap *map);
 void regcache_cache_only(struct regmap *map, bool enable);