dt: Add of_device_compatible_match()
PATCH v2 1/1 dt: Add of_device_compatible_match()
This provides an equivalent of of_fdt_match() for non-flat trees.
This is more practical than matching an array of of_device_id structs when converting a bunch of existing users of of_fdt_match().
---
v2. Fix the score logic
drivers/of/base.c | 22 ++++++++++++++++++++++ include/linux/of.h | 2 ++ 2 files changed, 24 insertions(+)
drivers/of/base.c +22 -0
@@ -493,6 +493,28 @@ int of_device_is_compatible(const struct device_node *device, }EXPORT_SYMBOL (of_device_is_compatible); +/** Checks if the device is compatible with any of the entries in +* a NULL terminated array of strings. Returns the best match +* score or 0. +*/ +int of_device_compatible_match (struct device_node *device, +const char *const *compat) +{ +unsigned int tmp, score =0 ; + +if (!compat) +return 0 ; + +while (*compat) { + tmp =of_device_is_compatible (device, *compat); +if (tmp > score) + score = tmp; + compat++; + } + +return score; +} +/** * of_machine_is_compatible - Test root of device tree for a given compatible value * @compat: compatible string to look for in root node's compatible property.
include/linux/of.h +2 -0
@@ -324,6 +324,8 @@ extern int of_property_read_string_helper(const struct device_node *np, const char **out_strs, size_t sz, int index);extern int of_device_is_compatible (const struct device_node *device,const char *); +extern int of_device_compatible_match (struct device_node *device, +const char *const *compat);extern bool of_device_is_available (const struct device_node *device);extern bool of_device_is_big_endian (const struct device_node *device); extern const void *of_get_property(const struct device_node *node,
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 1467930959.27157.72.camel-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org
Rob Herring
Acked-byQuoted 5 lines · Benjamin Herrenschmidt
This provides an equivalent of
of_fdt_match()for non-flat trees.This is more practical than matching an array of
of_device_idstructs when converting a bunch of existing users ofof_fdt_match().
Quoted 8 lines
Signed-off-by Benjamin Herrenschmidt <[email protected]>---
v2. Fix the score logic
drivers/of/base.c | 22 ++++++++++++++++++++++ include/linux/of.h | 2 ++ 2 files changed, 24 insertions(+)
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html