mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
dm: core: Add a livetree function to check node status
Add a way to find out if a node is enabled or not, based on its 'status' property. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
734206dda1
commit
0de1b07406
3 changed files with 33 additions and 0 deletions
|
@ -226,6 +226,16 @@ int ofnode_read_u32_array(ofnode node, const char *propname,
|
|||
}
|
||||
}
|
||||
|
||||
bool ofnode_is_enabled(ofnode node)
|
||||
{
|
||||
if (ofnode_is_np(node)) {
|
||||
return of_device_is_available(ofnode_to_np(node));
|
||||
} else {
|
||||
return fdtdec_get_is_enabled(gd->fdt_blob,
|
||||
ofnode_to_offset(node));
|
||||
}
|
||||
}
|
||||
|
||||
ofnode ofnode_first_subnode(ofnode node)
|
||||
{
|
||||
assert(ofnode_valid(node));
|
||||
|
|
|
@ -345,6 +345,17 @@ const char *ofnode_read_string(ofnode node, const char *propname);
|
|||
*/
|
||||
int ofnode_read_u32_array(ofnode node, const char *propname,
|
||||
u32 *out_values, size_t sz);
|
||||
/**
|
||||
* ofnode_is_enabled() - Checks whether a node is enabled.
|
||||
* This looks for a 'status' property. If this exists, then returns true if
|
||||
* the status is 'okay' and false otherwise. If there is no status property,
|
||||
* it returns true on the assumption that anything mentioned should be enabled
|
||||
* by default.
|
||||
*
|
||||
* @node: node to examine
|
||||
* @return false (not enabled) or true (enabled)
|
||||
*/
|
||||
bool ofnode_is_enabled(ofnode node);
|
||||
|
||||
/**
|
||||
* ofnode_read_bool() - read a boolean value from a property
|
||||
|
|
|
@ -249,3 +249,15 @@ static int dm_test_ofnode_get_child_count(struct unit_test_state *uts)
|
|||
}
|
||||
DM_TEST(dm_test_ofnode_get_child_count,
|
||||
UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
|
||||
|
||||
static int dm_test_ofnode_is_enabled(struct unit_test_state *uts)
|
||||
{
|
||||
ofnode root_node = ofnode_path("/");
|
||||
ofnode node = ofnode_path("/usb@0");
|
||||
|
||||
ut_assert(ofnode_is_enabled(root_node));
|
||||
ut_assert(!ofnode_is_enabled(node));
|
||||
|
||||
return 0;
|
||||
}
|
||||
DM_TEST(dm_test_ofnode_is_enabled, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
|
||||
|
|
Loading…
Add table
Reference in a new issue