Unverified Commit c916d6ef authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Mark Brown
Browse files

regmap: Switch to use fwnode instead of OF one



Make regmap firmware node type agnostic by switching it to use fwnode.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20200708161232.17914-1-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 31cf2c3b
Loading
Loading
Loading
Loading
+13 −18
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
#include <linux/export.h>
#include <linux/mutex.h>
#include <linux/err.h>
#include <linux/of.h>
#include <linux/property.h>
#include <linux/rbtree.h>
#include <linux/sched.h>
#include <linux/delay.h>
@@ -631,7 +631,7 @@ enum regmap_endian regmap_get_val_endian(struct device *dev,
					 const struct regmap_bus *bus,
					 const struct regmap_config *config)
{
	struct device_node *np;
	struct fwnode_handle *fwnode = dev ? dev_fwnode(dev) : NULL;
	enum regmap_endian endian;

	/* Retrieve the endianness specification from the regmap config */
@@ -641,22 +641,17 @@ enum regmap_endian regmap_get_val_endian(struct device *dev,
	if (endian != REGMAP_ENDIAN_DEFAULT)
		return endian;

	/* If the dev and dev->of_node exist try to get endianness from DT */
	if (dev && dev->of_node) {
		np = dev->of_node;

		/* Parse the device's DT node for an endianness specification */
		if (of_property_read_bool(np, "big-endian"))
	/* If the firmware node exist try to get endianness from it */
	if (fwnode_property_read_bool(fwnode, "big-endian"))
		endian = REGMAP_ENDIAN_BIG;
		else if (of_property_read_bool(np, "little-endian"))
	else if (fwnode_property_read_bool(fwnode, "little-endian"))
		endian = REGMAP_ENDIAN_LITTLE;
		else if (of_property_read_bool(np, "native-endian"))
	else if (fwnode_property_read_bool(fwnode, "native-endian"))
		endian = REGMAP_ENDIAN_NATIVE;

		/* If the endianness was specified in DT, use that */
	/* If the endianness was specified in fwnode, use that */
	if (endian != REGMAP_ENDIAN_DEFAULT)
		return endian;
	}

	/* Retrieve the endianness specification from the bus config */
	if (bus && bus->val_format_endian_default)