From 5ccc2c21307e186722ca9966bad0e03189c237c5 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Thu, 19 Apr 2018 12:14:02 +0900 Subject: [PATCH] dm: ofnode: add ofnode_device_is_compatible() helper device_is_compatible() takes udevice, but there is no such a helper that takes ofnode. Signed-off-by: Masahiro Yamada Reviewed-by: Simon Glass --- 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 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); +} diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index be3f25d46d..5af6b7e616 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -680,4 +680,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.30.2