diff options
author | Mark Brown <broonie@kernel.org> | 2023-03-26 17:11:12 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-03-30 14:25:42 +0300 |
commit | f6352424e37e7bf72291ceab87dc620172be0999 (patch) | |
tree | cba005c1817e797fbf88034fd306c065a329130b /drivers/base/regmap/internal.h | |
parent | 1e2bae6ae8f6b404b295edd5ba11a0bb1566544c (diff) | |
download | linux-f6352424e37e7bf72291ceab87dc620172be0999.tar.xz |
regmap: Add RAM backed register map
Add a register map that is a simple array of memory, for use in
KUnit testing of the framework. This is not exposed in regmap.h
since I can't think of a non-test use case, it is purely for use
internally. To facilitate testing we track if registers have been
read or written to.
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230324-regmap-kunit-v2-1-b208801dc2c8@kernel.org
Diffstat (limited to 'drivers/base/regmap/internal.h')
-rw-r--r-- | drivers/base/regmap/internal.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/base/regmap/internal.h b/drivers/base/regmap/internal.h index 919d790a01b7..10aca7119d33 100644 --- a/drivers/base/regmap/internal.h +++ b/drivers/base/regmap/internal.h @@ -306,4 +306,23 @@ static inline unsigned int regcache_get_index_by_order(const struct regmap *map, return reg >> map->reg_stride_order; } +struct regmap_ram_data { + unsigned int *vals; /* Allocatd by caller */ + bool *read; + bool *written; +}; + +/* + * Create a test register map with data stored in RAM, not intended + * for practical use. + */ +struct regmap *__regmap_init_ram(const struct regmap_config *config, + struct regmap_ram_data *data, + struct lock_class_key *lock_key, + const char *lock_name); + +#define regmap_init_ram(config, data) \ + __regmap_lockdep_wrapper(__regmap_init_ram, #config, config, data) + + #endif |