diff options
author | Simon Glass <sjg@chromium.org> | 2022-09-07 05:27:02 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-09-29 23:07:58 +0300 |
commit | ffe90392497898ccd8000e695901853e192a9007 (patch) | |
tree | 0331cda0c368be1cf676f0ea4e8c99e28125b8d0 /include | |
parent | 5ecba3ba40cebd5e4340f6fd422683bde773689c (diff) | |
download | u-boot-ffe90392497898ccd8000e695901853e192a9007.tar.xz |
dm: core: Allow adding ofnode subnodes
Add this feature to the ofnode interface, supporting both livetree and
flattree. If the node exists it is returned, along with a -EEXIST error.
Update the functions it calls to handle this too.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/dm/of_access.h | 15 | ||||
-rw-r--r-- | include/dm/ofnode.h | 13 |
2 files changed, 28 insertions, 0 deletions
diff --git a/include/dm/of_access.h b/include/dm/of_access.h index d8c6d11643..dd70b44344 100644 --- a/include/dm/of_access.h +++ b/include/dm/of_access.h @@ -565,4 +565,19 @@ struct device_node *of_get_stdout(void); int of_write_prop(struct device_node *np, const char *propname, int len, const void *value); +/** + * of_add_subnode() - add a new subnode to a node + * + * @node: parent node to add to + * @name: name of subnode + * @len: length of name (so the caller does not need to nul-terminate a + * partial string), or -1 for strlen(@name) + * @subnodep: returns pointer to new subnode (valid if the function returns 0 + * or -EEXIST) + * Returns 0 if OK, -EEXIST if already exists, -ENOMEM if out of memory, other + * -ve on other error + */ +int of_add_subnode(struct device_node *node, const char *name, int len, + struct device_node **subnodep); + #endif diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h index 6414b4648f..ec1ab0ce15 100644 --- a/include/dm/ofnode.h +++ b/include/dm/ofnode.h @@ -1300,6 +1300,19 @@ static inline const char *ofnode_conf_read_str(const char *prop_name) { return NULL; } + #endif /* CONFIG_DM */ +/** + * of_add_subnode() - add a new subnode to a node + * + * @parent: parent node to add to + * @name: name of subnode + * @nodep: returns pointer to new subnode (valid if the function returns 0 + * or -EEXIST) + * Returns 0 if OK, -EEXIST if already exists, -ENOMEM if out of memory, other + * -ve on other error + */ +int ofnode_add_subnode(ofnode parent, const char *name, ofnode *nodep); + #endif |