regmap: Add endianness support
Add support for switching the endianness of regmap accesses via the
"little-endian", "big-endian", and "native-endian" boolean properties in
the device tree.
The default endianness is native endianness.
Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
diff --git a/include/regmap.h b/include/regmap.h
index 3b7eea5..98860c2 100644
--- a/include/regmap.h
+++ b/include/regmap.h
@@ -23,6 +23,19 @@
};
/**
+ * enum regmap_endianness_t - Endianness for regmap reads and writes
+ *
+ * @REGMAP_NATIVE_ENDIAN: Native endian read/write accesses
+ * @REGMAP_LITTLE_ENDIAN: Little endian read/write accesses
+ * @REGMAP_BIG_ENDIAN: Big endian read/write accesses
+ */
+enum regmap_endianness_t {
+ REGMAP_NATIVE_ENDIAN,
+ REGMAP_LITTLE_ENDIAN,
+ REGMAP_BIG_ENDIAN,
+};
+
+/**
* struct regmap_range - a register map range
*
* @start: Start address
@@ -40,6 +53,7 @@
* @ranges: Array of ranges
*/
struct regmap {
+ enum regmap_endianness_t endianness;
int range_count;
struct regmap_range ranges[0];
};