dm: core: Add size operations on device tree references
Add functions to add size of addresses in the device tree using ofnode references. If the size is not set, return FDT_SIZE_T_NONE. Signed-off-by: Chen Guanqiao <chenguanqiao@kuaishou.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
f1a83abe60
commit
aa351a14bd
|
@ -303,6 +303,8 @@ fdt_addr_t ofnode_get_addr_size_index(ofnode node, int index, fdt_size_t *size)
|
||||||
{
|
{
|
||||||
int na, ns;
|
int na, ns;
|
||||||
|
|
||||||
|
*size = FDT_SIZE_T_NONE;
|
||||||
|
|
||||||
if (ofnode_is_np(node)) {
|
if (ofnode_is_np(node)) {
|
||||||
const __be32 *prop_val;
|
const __be32 *prop_val;
|
||||||
u64 size64;
|
u64 size64;
|
||||||
|
@ -347,6 +349,15 @@ fdt_addr_t ofnode_get_addr(ofnode node)
|
||||||
return ofnode_get_addr_index(node, 0);
|
return ofnode_get_addr_index(node, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fdt_size_t ofnode_get_size(ofnode node)
|
||||||
|
{
|
||||||
|
fdt_size_t size;
|
||||||
|
|
||||||
|
ofnode_get_addr_size_index(node, 0, &size);
|
||||||
|
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
int ofnode_stringlist_search(ofnode node, const char *property,
|
int ofnode_stringlist_search(ofnode node, const char *property,
|
||||||
const char *string)
|
const char *string)
|
||||||
{
|
{
|
||||||
|
|
|
@ -510,6 +510,16 @@ phys_addr_t ofnode_get_addr_index(ofnode node, int index);
|
||||||
*/
|
*/
|
||||||
phys_addr_t ofnode_get_addr(ofnode node);
|
phys_addr_t ofnode_get_addr(ofnode node);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ofnode_get_size() - get size from a node
|
||||||
|
*
|
||||||
|
* This reads the register size from a node
|
||||||
|
*
|
||||||
|
* @node: node to read from
|
||||||
|
* @return size of the address, or FDT_SIZE_T_NONE if not present or invalid
|
||||||
|
*/
|
||||||
|
fdt_size_t ofnode_get_size(ofnode node);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ofnode_stringlist_search() - find a string in a string list and return index
|
* ofnode_stringlist_search() - find a string in a string list and return index
|
||||||
*
|
*
|
||||||
|
|
|
@ -24,15 +24,16 @@
|
||||||
typedef phys_addr_t fdt_addr_t;
|
typedef phys_addr_t fdt_addr_t;
|
||||||
typedef phys_size_t fdt_size_t;
|
typedef phys_size_t fdt_size_t;
|
||||||
|
|
||||||
#ifdef CONFIG_PHYS_64BIT
|
|
||||||
#define FDT_ADDR_T_NONE (-1U)
|
#define FDT_ADDR_T_NONE (-1U)
|
||||||
|
#define FDT_SIZE_T_NONE (-1U)
|
||||||
|
|
||||||
|
#ifdef CONFIG_PHYS_64BIT
|
||||||
#define fdt_addr_to_cpu(reg) be64_to_cpu(reg)
|
#define fdt_addr_to_cpu(reg) be64_to_cpu(reg)
|
||||||
#define fdt_size_to_cpu(reg) be64_to_cpu(reg)
|
#define fdt_size_to_cpu(reg) be64_to_cpu(reg)
|
||||||
#define cpu_to_fdt_addr(reg) cpu_to_be64(reg)
|
#define cpu_to_fdt_addr(reg) cpu_to_be64(reg)
|
||||||
#define cpu_to_fdt_size(reg) cpu_to_be64(reg)
|
#define cpu_to_fdt_size(reg) cpu_to_be64(reg)
|
||||||
typedef fdt64_t fdt_val_t;
|
typedef fdt64_t fdt_val_t;
|
||||||
#else
|
#else
|
||||||
#define FDT_ADDR_T_NONE (-1U)
|
|
||||||
#define fdt_addr_to_cpu(reg) be32_to_cpu(reg)
|
#define fdt_addr_to_cpu(reg) be32_to_cpu(reg)
|
||||||
#define fdt_size_to_cpu(reg) be32_to_cpu(reg)
|
#define fdt_size_to_cpu(reg) be32_to_cpu(reg)
|
||||||
#define cpu_to_fdt_addr(reg) cpu_to_be32(reg)
|
#define cpu_to_fdt_addr(reg) cpu_to_be32(reg)
|
||||||
|
|
Loading…
Reference in New Issue