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 <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Masahiro Yamada 2018-04-19 12:14:02 +09:00 committed by Tom Rini
parent 8c1de5e08b
commit 5ccc2c2130
3 changed files with 23 additions and 7 deletions

View File

@ -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)

View File

@ -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);
}

View File

@ -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