Lines Matching refs:fdt

58 static int _fdt_nodename_eq(const void *fdt, int offset,  in _fdt_nodename_eq()  argument
61 const char *p = fdt_offset_ptr(fdt, offset + FDT_TAGSIZE, len+1); in _fdt_nodename_eq()
78 const char *fdt_string(const void *fdt, int stroffset) in fdt_string() argument
80 return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset; in fdt_string()
83 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size) in fdt_get_mem_rsv() argument
85 FDT_CHECK_HEADER(fdt); in fdt_get_mem_rsv()
86 *address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address); in fdt_get_mem_rsv()
87 *size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size); in fdt_get_mem_rsv()
91 int fdt_num_mem_rsv(const void *fdt) in fdt_num_mem_rsv() argument
95 while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0) in fdt_num_mem_rsv()
100 int fdt_subnode_offset_namelen(const void *fdt, int offset, in fdt_subnode_offset_namelen() argument
105 FDT_CHECK_HEADER(fdt); in fdt_subnode_offset_namelen()
107 for (depth = 0, offset = fdt_next_node(fdt, offset, &depth); in fdt_subnode_offset_namelen()
109 offset = fdt_next_node(fdt, offset, &depth)) { in fdt_subnode_offset_namelen()
113 && _fdt_nodename_eq(fdt, offset, name, namelen)) in fdt_subnode_offset_namelen()
123 int fdt_subnode_offset(const void *fdt, int parentoffset, in fdt_subnode_offset() argument
126 return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name)); in fdt_subnode_offset()
129 int fdt_path_offset(const void *fdt, const char *path) in fdt_path_offset() argument
135 FDT_CHECK_HEADER(fdt); in fdt_path_offset()
151 offset = fdt_subnode_offset_namelen(fdt, offset, p, q-p); in fdt_path_offset()
161 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) in fdt_get_name() argument
163 const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); in fdt_get_name()
166 if (((err = fdt_check_header(fdt)) != 0) in fdt_get_name()
167 || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) in fdt_get_name()
181 const struct fdt_property *fdt_get_property(const void *fdt, in fdt_get_property() argument
191 if (((err = fdt_check_header(fdt)) != 0) in fdt_get_property()
192 || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) in fdt_get_property()
199 tag = fdt_next_tag(fdt, offset, &nextoffset); in fdt_get_property()
212 prop = fdt_offset_ptr(fdt, offset, sizeof(*prop)); in fdt_get_property()
216 if (strcmp(fdt_string(fdt, namestroff), name) == 0) { in fdt_get_property()
219 prop = fdt_offset_ptr(fdt, offset, in fdt_get_property()
244 const void *fdt_getprop(const void *fdt, int nodeoffset, in fdt_getprop() argument
249 prop = fdt_get_property(fdt, nodeoffset, name, lenp); in fdt_getprop()
256 uint32_t fdt_get_phandle(const void *fdt, int nodeoffset) in fdt_get_phandle() argument
261 php = fdt_getprop(fdt, nodeoffset, "linux,phandle", &len); in fdt_get_phandle()
268 int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen) in fdt_get_path() argument
274 FDT_CHECK_HEADER(fdt); in fdt_get_path()
281 offset = fdt_next_node(fdt, offset, &depth)) { in fdt_get_path()
292 name = fdt_get_name(fdt, offset, &namelen); in fdt_get_path()
321 int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset, in fdt_supernode_atdepth_offset() argument
327 FDT_CHECK_HEADER(fdt); in fdt_supernode_atdepth_offset()
334 offset = fdt_next_node(fdt, offset, &depth)) { in fdt_supernode_atdepth_offset()
357 int fdt_node_depth(const void *fdt, int nodeoffset) in fdt_node_depth() argument
362 err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth); in fdt_node_depth()
368 int fdt_parent_offset(const void *fdt, int nodeoffset) in fdt_parent_offset() argument
370 int nodedepth = fdt_node_depth(fdt, nodeoffset); in fdt_parent_offset()
374 return fdt_supernode_atdepth_offset(fdt, nodeoffset, in fdt_parent_offset()
378 int fdt_node_offset_by_prop_value(const void *fdt, int startoffset, in fdt_node_offset_by_prop_value() argument
386 FDT_CHECK_HEADER(fdt); in fdt_node_offset_by_prop_value()
393 for (offset = fdt_next_node(fdt, startoffset, NULL); in fdt_node_offset_by_prop_value()
395 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_node_offset_by_prop_value()
396 val = fdt_getprop(fdt, offset, propname, &len); in fdt_node_offset_by_prop_value()
405 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle) in fdt_node_offset_by_phandle() argument
410 return fdt_node_offset_by_prop_value(fdt, -1, "linux,phandle", in fdt_node_offset_by_phandle()
431 int fdt_node_check_compatible(const void *fdt, int nodeoffset, in fdt_node_check_compatible() argument
437 prop = fdt_getprop(fdt, nodeoffset, "compatible", &len); in fdt_node_check_compatible()
446 int fdt_node_offset_by_compatible(const void *fdt, int startoffset, in fdt_node_offset_by_compatible() argument
451 FDT_CHECK_HEADER(fdt); in fdt_node_offset_by_compatible()
458 for (offset = fdt_next_node(fdt, startoffset, NULL); in fdt_node_offset_by_compatible()
460 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_node_offset_by_compatible()
461 err = fdt_node_check_compatible(fdt, offset, compatible); in fdt_node_offset_by_compatible()