summaryrefslogtreecommitdiff
path: root/include/linux/regmap.h
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-10-29 00:01:33 +0400
committerMark Brown <broonie@linaro.org>2013-10-29 00:01:33 +0400
commitf2783f0e9cac215df5b7ee0a903adfeabde90b24 (patch)
tree5635cba8b9e97467326531caf0d3a4ba46abe038 /include/linux/regmap.h
parentbee54e310e579c8760bc4e8215853c625d8c7895 (diff)
parenta0102375ee82db1e08324b1a21484854cf2c1677 (diff)
downloadlinux-f2783f0e9cac215df5b7ee0a903adfeabde90b24.tar.xz
Merge remote-tracking branch 'regmap/topic/field' into regmap-next
Diffstat (limited to 'include/linux/regmap.h')
-rw-r--r--include/linux/regmap.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/regmap.h b/include/linux/regmap.h
index 114565befbd2..dc90b8c134a1 100644
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -431,11 +431,15 @@ bool regmap_reg_in_ranges(unsigned int reg,
* @reg: Offset of the register within the regmap bank
* @lsb: lsb of the register field.
* @reg: msb of the register field.
+ * @id_size: port size if it has some ports
+ * @id_offset: address offset for each ports
*/
struct reg_field {
unsigned int reg;
unsigned int lsb;
unsigned int msb;
+ unsigned int id_size;
+ unsigned int id_offset;
};
#define REG_FIELD(_reg, _lsb, _msb) { \
@@ -454,6 +458,15 @@ void devm_regmap_field_free(struct device *dev, struct regmap_field *field);
int regmap_field_read(struct regmap_field *field, unsigned int *val);
int regmap_field_write(struct regmap_field *field, unsigned int val);
+int regmap_field_update_bits(struct regmap_field *field,
+ unsigned int mask, unsigned int val);
+
+int regmap_fields_write(struct regmap_field *field, unsigned int id,
+ unsigned int val);
+int regmap_fields_read(struct regmap_field *field, unsigned int id,
+ unsigned int *val);
+int regmap_fields_update_bits(struct regmap_field *field, unsigned int id,
+ unsigned int mask, unsigned int val);
/**
* Description of an IRQ for the generic regmap irq_chip.