dm: core: Add an ofnode function to get the devicetree root

This is needed in at least one place. Avoid the conditional code in root.c
by adding this inline function.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2020-11-28 17:50:07 -07:00
parent e80be74934
commit d0c20ce6bc
2 changed files with 14 additions and 6 deletions

View file

@ -147,12 +147,8 @@ int dm_init(bool of_live)
ret = device_bind_by_name(NULL, false, &root_info, &DM_ROOT_NON_CONST);
if (ret)
return ret;
#if CONFIG_IS_ENABLED(OF_CONTROL)
if (CONFIG_IS_ENABLED(OF_LIVE) && of_live)
DM_ROOT_NON_CONST->node = np_to_ofnode(gd_of_root());
else
DM_ROOT_NON_CONST->node = offset_to_ofnode(0);
#endif
if (CONFIG_IS_ENABLED(OF_CONTROL))
DM_ROOT_NON_CONST->node = ofnode_root();
ret = device_probe(DM_ROOT_NON_CONST);
if (ret)
return ret;

View file

@ -218,6 +218,18 @@ static inline ofnode ofnode_null(void)
return node;
}
static inline ofnode ofnode_root(void)
{
ofnode node;
if (of_live_active())
node.np = gd_of_root();
else
node.of_offset = 0;
return node;
}
/**
* ofnode_read_u32() - Read a 32-bit integer from a property
*