dm: core: Fix up ofnode_get_addr_index() for 64-bit values
At present this function only supports 32-bit (single-cell) values. Update it to support two-cell values also. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
parent
dcf988525f
commit
0f6507a7e4
@ -199,13 +199,14 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index)
|
|||||||
const __be32 *prop_val;
|
const __be32 *prop_val;
|
||||||
uint flags;
|
uint flags;
|
||||||
u64 size;
|
u64 size;
|
||||||
|
int na;
|
||||||
|
|
||||||
prop_val = of_get_address(
|
prop_val = of_get_address(ofnode_to_np(node), index, &size,
|
||||||
(struct device_node *)ofnode_to_np(node), index,
|
&flags);
|
||||||
&size, &flags);
|
|
||||||
if (!prop_val)
|
if (!prop_val)
|
||||||
return FDT_ADDR_T_NONE;
|
return FDT_ADDR_T_NONE;
|
||||||
return be32_to_cpup(prop_val);
|
na = of_n_addr_cells(ofnode_to_np(node));
|
||||||
|
return of_read_number(prop_val, na);
|
||||||
} else {
|
} else {
|
||||||
return fdt_get_base_address(gd->fdt_blob,
|
return fdt_get_base_address(gd->fdt_blob,
|
||||||
ofnode_to_offset(node));
|
ofnode_to_offset(node));
|
||||||
|
Loading…
Reference in New Issue
Block a user