dm: core: Provide ofnode_find_subnode_unit()

The ofnode_find_subnode() function currently processes things two
different ways, so the treatment of unit addresses differs depending on
whether OF_LIVE is enabled or not.

Add a new version which uses the ofnode API and add a test to check that
unit addresses can be matched correctly. Leave the old function in place
for the !OF_LIVE case, to avoid a code-size increase, e.g. on
firefly-rk3288

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-01-10 17:00:29 -07:00
committed by Tom Rini
parent aacc05b07d
commit 8985ff56b1
3 changed files with 53 additions and 7 deletions

View File

@@ -607,6 +607,18 @@ bool ofnode_read_bool(ofnode node, const char *propname);
*/
ofnode ofnode_find_subnode(ofnode node, const char *subnode_name);
/**
* ofnode_find_subnode_unit() - find a named subnode of a parent node
*
* @node: valid reference to parent node
* @subnode_name: name of subnode to find, including any unit address. If the
* unit address is omitted, any subnode which matches the name (excluding
* any unit address) is returned
* Return: reference to subnode (which can be invalid if there is no such
* subnode)
*/
ofnode ofnode_find_subnode_unit(ofnode node, const char *subnode_name);
#if CONFIG_IS_ENABLED(DM_INLINE_OFNODE)
#include <asm/global_data.h>