diff options
author | Wolfram Sang <w.sang@pengutronix.de> | 2012-01-27 10:10:22 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-01-27 11:26:03 -0500 |
commit | 9aa507505cdcd10b7390398790f013374ee74a26 (patch) | |
tree | 1ed486dd7d9f1a0c54cdc082992150fed1fb635d /drivers/base/regmap | |
parent | a24f64a648376766497fddd8bc24b1ca5b906431 (diff) |
regmap: Add support for 2/6 register formating
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/base/regmap')
-rw-r--r-- | drivers/base/regmap/regmap.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index 2d71aeae310..b4475d87f4a 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c | |||
@@ -76,6 +76,14 @@ static bool regmap_volatile_range(struct regmap *map, unsigned int reg, | |||
76 | return true; | 76 | return true; |
77 | } | 77 | } |
78 | 78 | ||
79 | static void regmap_format_2_6_write(struct regmap *map, | ||
80 | unsigned int reg, unsigned int val) | ||
81 | { | ||
82 | u8 *out = map->work_buf; | ||
83 | |||
84 | *out = (reg << 6) | val; | ||
85 | } | ||
86 | |||
79 | static void regmap_format_4_12_write(struct regmap *map, | 87 | static void regmap_format_4_12_write(struct regmap *map, |
80 | unsigned int reg, unsigned int val) | 88 | unsigned int reg, unsigned int val) |
81 | { | 89 | { |
@@ -180,6 +188,16 @@ struct regmap *regmap_init(struct device *dev, | |||
180 | } | 188 | } |
181 | 189 | ||
182 | switch (config->reg_bits) { | 190 | switch (config->reg_bits) { |
191 | case 2: | ||
192 | switch (config->val_bits) { | ||
193 | case 6: | ||
194 | map->format.format_write = regmap_format_2_6_write; | ||
195 | break; | ||
196 | default: | ||
197 | goto err_map; | ||
198 | } | ||
199 | break; | ||
200 | |||
183 | case 4: | 201 | case 4: |
184 | switch (config->val_bits) { | 202 | switch (config->val_bits) { |
185 | case 12: | 203 | case 12: |