]> Pileus Git - ~andy/linux/blobdiff - include/linux/regmap.h
Merge branch 'topic/cache' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[~andy/linux] / include / linux / regmap.h
index 1e4ec2b6c2ea676193d037546bfc815c41fffb35..cfce3a358fbf114036f44af141f7e244034208ad 100644 (file)
@@ -23,7 +23,6 @@ struct spi_device;
 /* An enum of all the supported cache types */
 enum regcache_type {
        REGCACHE_NONE,
-       REGCACHE_INDEXED,
        REGCACHE_RBTREE,
        REGCACHE_COMPRESSED
 };
@@ -83,7 +82,7 @@ struct regmap_config {
        bool (*precious_reg)(struct device *dev, unsigned int reg);
 
        unsigned int max_register;
-       struct reg_default *reg_defaults;
+       const struct reg_default *reg_defaults;
        unsigned int num_reg_defaults;
        enum regcache_type cache_type;
        const void *reg_defaults_raw;
@@ -129,6 +128,8 @@ struct regmap *regmap_init_spi(struct spi_device *dev,
                               const struct regmap_config *config);
 
 void regmap_exit(struct regmap *map);
+int regmap_reinit_cache(struct regmap *map,
+                       const struct regmap_config *config);
 int regmap_write(struct regmap *map, unsigned int reg, unsigned int val);
 int regmap_raw_write(struct regmap *map, unsigned int reg,
                     const void *val, size_t val_len);
@@ -139,6 +140,9 @@ int regmap_bulk_read(struct regmap *map, unsigned int reg, void *val,
                     size_t val_count);
 int regmap_update_bits(struct regmap *map, unsigned int reg,
                       unsigned int mask, unsigned int val);
+int regmap_update_bits_check(struct regmap *map, unsigned int reg,
+                            unsigned int mask, unsigned int val,
+                            bool *change);
 
 int regcache_sync(struct regmap *map);
 void regcache_cache_only(struct regmap *map, bool enable);