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:
Simon Glass 2017-06-12 06:21:31 -06:00
parent f7d6fcf7ae
commit 878d68c0c3
8 changed files with 128 additions and 6 deletions

View file

@ -561,6 +561,26 @@ int ofnode_read_addr_cells(ofnode node);
*/
int ofnode_read_size_cells(ofnode node);
/**
* ofnode_read_simple_addr_cells() - Get the address cells property in a node
*
* This function matches fdt_address_cells().
*
* @np: Node pointer to check
* @return value of #address-cells property in this node, or 2 if none
*/
int ofnode_read_simple_addr_cells(ofnode node);
/**
* ofnode_read_simple_size_cells() - Get the size cells property in a node
*
* This function matches fdt_size_cells().
*
* @np: Node pointer to check
* @return value of #size-cells property in this node, or 2 if none
*/
int ofnode_read_simple_size_cells(ofnode node);
/**
* ofnode_pre_reloc() - check if a node should be bound before relocation
*