dm: core: Add a way to find an ofnode by compatible string

Add an ofnode_by_compatible() to allow iterating through ofnodes with a
given compatible string.

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index b2b02e4..2937539 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -729,3 +729,15 @@
 						  ofnode_to_offset(node),
 						  compat);
 }
+
+ofnode ofnode_by_compatible(ofnode from, const char *compat)
+{
+	if (of_live_active()) {
+		return np_to_ofnode(of_find_compatible_node(
+			(struct device_node *)ofnode_to_np(from), NULL,
+			compat));
+	} else {
+		return offset_to_ofnode(fdt_node_offset_by_compatible(
+				gd->fdt_blob, ofnode_to_offset(from), compat));
+	}
+}