All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] regmap: Add support for device with 24 data bits.
@ 2012-03-16  1:11 Marc Reilly
  2012-03-16  1:11 ` [PATCH 2/2] regmap: Use pad_bits and reg_bits when determining register format Marc Reilly
  2012-03-17 22:06 ` [PATCH 1/2] regmap: Add support for device with 24 data bits Mark Brown
  0 siblings, 2 replies; 3+ messages in thread
From: Marc Reilly @ 2012-03-16  1:11 UTC (permalink / raw)
  To: broonie; +Cc: linux-kernel, Marc Reilly

Add support for devices with 24 data bits.

Signed-off-by: Marc Reilly <marc@cpdesign.com.au>
---
 drivers/base/regmap/regmap.c |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 253882d..9cfe203 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -126,6 +126,15 @@ static void regmap_format_16(void *buf, unsigned int val)
 	b[0] = cpu_to_be16(val);
 }
 
+static void regmap_format_24(void *buf, unsigned int val)
+{
+	u8 *b = buf;
+
+	b[0] = val >> 16;
+	b[1] = val >> 8;
+	b[2] = val;
+}
+
 static void regmap_format_32(void *buf, unsigned int val)
 {
 	__be32 *b = buf;
@@ -149,6 +158,16 @@ static unsigned int regmap_parse_16(void *buf)
 	return b[0];
 }
 
+static unsigned int regmap_parse_24(void *buf)
+{
+	u8 *b = buf;
+	unsigned int ret = b[2];
+	ret |= ((unsigned int)b[1]) << 8;
+	ret |= ((unsigned int)b[0]) << 16;
+
+	return ret;
+}
+
 static unsigned int regmap_parse_32(void *buf)
 {
 	__be32 *b = buf;
@@ -273,6 +292,10 @@ struct regmap *regmap_init(struct device *dev,
 		map->format.format_val = regmap_format_16;
 		map->format.parse_val = regmap_parse_16;
 		break;
+	case 24:
+		map->format.format_val = regmap_format_24;
+		map->format.parse_val = regmap_parse_24;
+		break;
 	case 32:
 		map->format.format_val = regmap_format_32;
 		map->format.parse_val = regmap_parse_32;
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-03-17 22:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-16  1:11 [PATCH 1/2] regmap: Add support for device with 24 data bits Marc Reilly
2012-03-16  1:11 ` [PATCH 2/2] regmap: Use pad_bits and reg_bits when determining register format Marc Reilly
2012-03-17 22:06 ` [PATCH 1/2] regmap: Add support for device with 24 data bits Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.