mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
core: ofnode: Add ofnode_get_addr_size_index
Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
3a9a62a18e
commit
e679d03b08
2 changed files with 24 additions and 3 deletions
|
@ -251,7 +251,7 @@ int ofnode_read_size(ofnode node, const char *propname)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
|
||||
fdt_addr_t ofnode_get_addr_size_index(ofnode node, int index, fdt_size_t *size)
|
||||
{
|
||||
int na, ns;
|
||||
|
||||
|
@ -260,7 +260,7 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
|
|||
uint flags;
|
||||
|
||||
prop_val = of_get_address(ofnode_to_np(node), index,
|
||||
NULL, &flags);
|
||||
(u64 *)size, &flags);
|
||||
if (!prop_val)
|
||||
return FDT_ADDR_T_NONE;
|
||||
|
||||
|
@ -277,12 +277,19 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
|
|||
ns = ofnode_read_simple_size_cells(ofnode_get_parent(node));
|
||||
return fdtdec_get_addr_size_fixed(gd->fdt_blob,
|
||||
ofnode_to_offset(node), "reg",
|
||||
index, na, ns, NULL, true);
|
||||
index, na, ns, size, true);
|
||||
}
|
||||
|
||||
return FDT_ADDR_T_NONE;
|
||||
}
|
||||
|
||||
fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
|
||||
{
|
||||
fdt_size_t size;
|
||||
|
||||
return ofnode_get_addr_size_index(node, index, &size);
|
||||
}
|
||||
|
||||
fdt_addr_t ofnode_get_addr(ofnode node)
|
||||
{
|
||||
return ofnode_get_addr_index(node, 0);
|
||||
|
|
|
@ -354,6 +354,20 @@ ofnode ofnode_get_by_phandle(uint phandle);
|
|||
*/
|
||||
int ofnode_read_size(ofnode node, const char *propname);
|
||||
|
||||
/**
|
||||
* ofnode_get_addr_size_index() - get an address/size from a node
|
||||
* based on index
|
||||
*
|
||||
* This reads the register address/size from a node based on index
|
||||
*
|
||||
* @node: node to read from
|
||||
* @index: Index of address to read (0 for first)
|
||||
* @size: Pointer to size of the address
|
||||
* @return address, or FDT_ADDR_T_NONE if not present or invalid
|
||||
*/
|
||||
phys_addr_t ofnode_get_addr_size_index(ofnode node, int index,
|
||||
fdt_size_t *size);
|
||||
|
||||
/**
|
||||
* ofnode_get_addr_index() - get an address from a node
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue