device property: Introduce fwnode_device_is_compatible() helper
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 5 Oct 2022 15:29:46 +0000 (18:29 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 2 Nov 2022 11:09:04 +0000 (13:09 +0200)
The fwnode_device_is_compatible() helper searches for the
given string in the "compatible" string array property and,
if found, returns true.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
include/linux/property.h

index 117cc20..67371c9 100644 (file)
@@ -50,7 +50,6 @@ int device_property_read_string(struct device *dev, const char *propname,
 int device_property_match_string(struct device *dev,
                                 const char *propname, const char *string);
 
-bool fwnode_device_is_available(const struct fwnode_handle *fwnode);
 bool fwnode_property_present(const struct fwnode_handle *fwnode,
                             const char *propname);
 int fwnode_property_read_u8_array(const struct fwnode_handle *fwnode,
@@ -72,6 +71,15 @@ int fwnode_property_read_string(const struct fwnode_handle *fwnode,
                                const char *propname, const char **val);
 int fwnode_property_match_string(const struct fwnode_handle *fwnode,
                                 const char *propname, const char *string);
+
+bool fwnode_device_is_available(const struct fwnode_handle *fwnode);
+
+static inline
+bool fwnode_device_is_compatible(const struct fwnode_handle *fwnode, const char *compat)
+{
+       return fwnode_property_match_string(fwnode, "compatible", compat) >= 0;
+}
+
 int fwnode_property_get_reference_args(const struct fwnode_handle *fwnode,
                                       const char *prop, const char *nargs_prop,
                                       unsigned int nargs, unsigned int index,