device property: Add SOFTWARE_NODE() macro for defining software nodes
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 6 Nov 2023 16:16:37 +0000 (17:16 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 20 Nov 2023 15:50:48 +0000 (16:50 +0100)
Add SOFTWARE_NODE() macro in order to make defining software nodes look
nicer. This is analogous to different PROPERTY_ENTRY_*() macros for
defining properties.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Tested-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
include/linux/property.h

index 9f2585d705a867ce2f7d35da322a1e9ee6292360..97f901c0914e34e04633046a4486fd8962619c72 100644 (file)
@@ -489,6 +489,13 @@ struct software_node {
        const struct property_entry *properties;
 };
 
+#define SOFTWARE_NODE(_name_, _properties_, _parent_)  \
+       (struct software_node) {                        \
+               .name = _name_,                         \
+               .properties = _properties_,             \
+               .parent = _parent_,                     \
+       }
+
 bool is_software_node(const struct fwnode_handle *fwnode);
 const struct software_node *
 to_software_node(const struct fwnode_handle *fwnode);