[U-Boot] [PATCH 2/4] dm: ofnode: add ofnode_device_is_compatible() helper
Masahiro Yamada
yamada.masahiro at socionext.com
Wed Apr 18 02:38:43 UTC 2018
device_is_compatible() takes udevice, but there is no such a helper
that takes ofnode.
Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
---
drivers/core/device.c | 8 +-------
drivers/core/ofnode.c | 11 +++++++++++
include/dm/ofnode.h | 11 +++++++++++
3 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 940a153..8d95787 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -709,13 +709,7 @@ int device_set_name(struct udevice *dev, const char *name)
bool device_is_compatible(struct udevice *dev, const char *compat)
{
- const void *fdt = gd->fdt_blob;
- ofnode node = dev_ofnode(dev);
-
- if (ofnode_is_np(node))
- return of_device_is_compatible(ofnode_to_np(node), compat, NULL, NULL);
- else
- return !fdt_node_check_compatible(fdt, ofnode_to_offset(node), compat);
+ return ofnode_device_is_compatible(dev_ofnode(dev), compat);
}
bool of_machine_is_compatible(const char *compat)
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index 5909a25..ee2109b 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -687,3 +687,14 @@ u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr)
else
return fdt_translate_address(gd->fdt_blob, ofnode_to_offset(node), in_addr);
}
+
+int ofnode_device_is_compatible(ofnode node, const char *compat)
+{
+ if (ofnode_is_np(node))
+ return of_device_is_compatible(ofnode_to_np(node), compat,
+ NULL, NULL);
+ else
+ return !fdt_node_check_compatible(gd->fdt_blob,
+ ofnode_to_offset(node),
+ compat);
+}
diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h
index 0d00840..a2c6a50 100644
--- a/include/dm/ofnode.h
+++ b/include/dm/ofnode.h
@@ -681,4 +681,15 @@ int ofnode_read_resource_byname(ofnode node, const char *name,
* @return the translated address; OF_BAD_ADDR on error
*/
u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr);
+
+/**
+ * ofnode_device_is_compatible() - check if the node is compatible with compat
+ *
+ * This allows to check whether the node is comaptible with the compat.
+ *
+ * @node: Device tree node for which compatible needs to be verified.
+ * @compat: Compatible string which needs to verified in the given node.
+ * @return true if OK, false if the compatible is not found
+ */
+int ofnode_device_is_compatible(ofnode node, const char *compat);
#endif
--
2.7.4
More information about the U-Boot
mailing list