[PATCH 3/9] fwnode: define the property_get_names() operation

From: Bartosz Golaszewski

Date: Wed Nov 04 2026 - 09:11:27 EST


Define a new fwnode operation allowing to retrieve the list of all
properties of given firmware node in a dynamically allocated array of
strings.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxxxxxxxx>
---
include/linux/fwnode.h | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index a9dcaf7e70765637a0c33af2ae0ac541e15752ad..2d7e0b9245d445d473c7317bd27058abe5750b40 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -125,6 +125,13 @@ struct fwnode_reference_args {
* success, a negative error code otherwise.
* @property_read_string_array: Read an array of string properties. Return zero
* on success, a negative error code otherwise.
+ * @property_get_names: Retrieve the list of all properties of this firmware
+ * node. On success: returns the number of properties and
+ * sets *props to an array of NULL-terminated strings that
+ * must be freed by the user with kfree_strarray(). If
+ * there are no properties, 0 is returned and the props
+ * pointer is not changed. Returns negative error number on
+ * failure.
* @get_name: Return the name of an fwnode.
* @get_name_prefix: Get a prefix for a node (for printing purposes).
* @get_parent: Return the parent of an fwnode.
@@ -162,6 +169,8 @@ struct fwnode_operations {
(*property_read_string_array)(const struct fwnode_handle *fwnode_handle,
const char *propname, const char **val,
size_t nval);
+ int (*property_get_names)(const struct fwnode_handle *fwnode,
+ char ***props);
const char *(*get_name)(const struct fwnode_handle *fwnode);
const char *(*get_name_prefix)(const struct fwnode_handle *fwnode);
struct fwnode_handle *(*get_parent)(const struct fwnode_handle *fwnode);

--
2.47.3