diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-02-17 18:58:25 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-02-17 19:26:50 -0500 |
commit | 7d5e525b9ceda0e3b85da0acdaa2de19fea51edc (patch) | |
tree | 22291170c9f95d3decce9eebfc8f2df5ce674014 /drivers/base/regmap/regcache.c | |
parent | 9cde5fcd435fd929db7b0b486efb435cdb1ddca4 (diff) |
regmap: Implement support for 32 bit registers and values
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/base/regmap/regcache.c')
-rw-r--r-- | drivers/base/regmap/regcache.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index 7e18d1e70f12..69d4c9c5a4a8 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c | |||
@@ -372,6 +372,13 @@ bool regcache_set_val(void *base, unsigned int idx, | |||
372 | cache[idx] = val; | 372 | cache[idx] = val; |
373 | break; | 373 | break; |
374 | } | 374 | } |
375 | case 4: { | ||
376 | u32 *cache = base; | ||
377 | if (cache[idx] == val) | ||
378 | return true; | ||
379 | cache[idx] = val; | ||
380 | break; | ||
381 | } | ||
375 | default: | 382 | default: |
376 | BUG(); | 383 | BUG(); |
377 | } | 384 | } |
@@ -393,6 +400,10 @@ unsigned int regcache_get_val(const void *base, unsigned int idx, | |||
393 | const u16 *cache = base; | 400 | const u16 *cache = base; |
394 | return cache[idx]; | 401 | return cache[idx]; |
395 | } | 402 | } |
403 | case 4: { | ||
404 | const u32 *cache = base; | ||
405 | return cache[idx]; | ||
406 | } | ||
396 | default: | 407 | default: |
397 | BUG(); | 408 | BUG(); |
398 | } | 409 | } |