mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
dm: core: Add functions to obtain node's address/size cells
The of_n_addr_cells() and of_n_size_cells() functions are useful for getting the size of addresses in a node, but in a few places U-Boot needs to obtain the actual property value for a node without walking up the stack. Add functions for this and just the existing code to use it. Add a comment to the existing ofnode functions which do not do the right thing with a flat tree. This fixes a problem reading PCI addresses. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1
This commit is contained in:
@@ -552,7 +552,7 @@ int ofnode_read_addr_cells(ofnode node)
|
||||
{
|
||||
if (ofnode_is_np(node))
|
||||
return of_n_addr_cells(ofnode_to_np(node));
|
||||
else
|
||||
else /* NOTE: this call should walk up the parent stack */
|
||||
return fdt_address_cells(gd->fdt_blob, ofnode_to_offset(node));
|
||||
}
|
||||
|
||||
@@ -560,6 +560,22 @@ int ofnode_read_size_cells(ofnode node)
|
||||
{
|
||||
if (ofnode_is_np(node))
|
||||
return of_n_size_cells(ofnode_to_np(node));
|
||||
else /* NOTE: this call should walk up the parent stack */
|
||||
return fdt_size_cells(gd->fdt_blob, ofnode_to_offset(node));
|
||||
}
|
||||
|
||||
int ofnode_read_simple_addr_cells(ofnode node)
|
||||
{
|
||||
if (ofnode_is_np(node))
|
||||
return of_simple_addr_cells(ofnode_to_np(node));
|
||||
else
|
||||
return fdt_address_cells(gd->fdt_blob, ofnode_to_offset(node));
|
||||
}
|
||||
|
||||
int ofnode_read_simple_size_cells(ofnode node)
|
||||
{
|
||||
if (ofnode_is_np(node))
|
||||
return of_simple_size_cells(ofnode_to_np(node));
|
||||
else
|
||||
return fdt_size_cells(gd->fdt_blob, ofnode_to_offset(node));
|
||||
}
|
||||
|
Reference in New Issue
Block a user