summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/core/device.c8
-rw-r--r--drivers/core/ofnode.c11
2 files changed, 12 insertions, 7 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 1a32956568..e048e1a659 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -708,13 +708,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 4cd10032dd..3cf3205a2f 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -686,3 +686,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);
+}