mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 21:51:31 +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;
|
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;
|
int na, ns;
|
||||||
|
|
||||||
|
@ -260,7 +260,7 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
|
||||||
uint flags;
|
uint flags;
|
||||||
|
|
||||||
prop_val = of_get_address(ofnode_to_np(node), index,
|
prop_val = of_get_address(ofnode_to_np(node), index,
|
||||||
NULL, &flags);
|
(u64 *)size, &flags);
|
||||||
if (!prop_val)
|
if (!prop_val)
|
||||||
return FDT_ADDR_T_NONE;
|
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));
|
ns = ofnode_read_simple_size_cells(ofnode_get_parent(node));
|
||||||
return fdtdec_get_addr_size_fixed(gd->fdt_blob,
|
return fdtdec_get_addr_size_fixed(gd->fdt_blob,
|
||||||
ofnode_to_offset(node), "reg",
|
ofnode_to_offset(node), "reg",
|
||||||
index, na, ns, NULL, true);
|
index, na, ns, size, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return FDT_ADDR_T_NONE;
|
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)
|
fdt_addr_t ofnode_get_addr(ofnode node)
|
||||||
{
|
{
|
||||||
return ofnode_get_addr_index(node, 0);
|
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);
|
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
|
* ofnode_get_addr_index() - get an address from a node
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue