Lines Matching refs:fdt

58 static int fdt_nodename_eq_(const void *fdt, int offset,  in fdt_nodename_eq_()  argument
62 const char *p = fdt_get_name(fdt, offset, &olen); in fdt_nodename_eq_()
79 const char *fdt_string(const void *fdt, int stroffset) in fdt_string() argument
81 return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset; in fdt_string()
84 static int fdt_string_eq_(const void *fdt, int stroffset, in fdt_string_eq_() argument
87 const char *p = fdt_string(fdt, stroffset); in fdt_string_eq_()
92 uint32_t fdt_get_max_phandle(const void *fdt) in fdt_get_max_phandle() argument
97 for (offset = fdt_next_node(fdt, -1, NULL);; in fdt_get_max_phandle()
98 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_get_max_phandle()
107 phandle = fdt_get_phandle(fdt, offset); in fdt_get_max_phandle()
118 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size) in fdt_get_mem_rsv() argument
120 FDT_CHECK_HEADER(fdt); in fdt_get_mem_rsv()
121 *address = fdt64_to_cpu(fdt_mem_rsv_(fdt, n)->address); in fdt_get_mem_rsv()
122 *size = fdt64_to_cpu(fdt_mem_rsv_(fdt, n)->size); in fdt_get_mem_rsv()
126 int fdt_num_mem_rsv(const void *fdt) in fdt_num_mem_rsv() argument
130 while (fdt64_to_cpu(fdt_mem_rsv_(fdt, i)->size) != 0) in fdt_num_mem_rsv()
135 static int nextprop_(const void *fdt, int offset) in nextprop_() argument
141 tag = fdt_next_tag(fdt, offset, &nextoffset); in nextprop_()
159 int fdt_subnode_offset_namelen(const void *fdt, int offset, in fdt_subnode_offset_namelen() argument
164 FDT_CHECK_HEADER(fdt); in fdt_subnode_offset_namelen()
168 offset = fdt_next_node(fdt, offset, &depth)) in fdt_subnode_offset_namelen()
170 && fdt_nodename_eq_(fdt, offset, name, namelen)) in fdt_subnode_offset_namelen()
178 int fdt_subnode_offset(const void *fdt, int parentoffset, in fdt_subnode_offset() argument
181 return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name)); in fdt_subnode_offset()
184 int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen) in fdt_path_offset_namelen() argument
190 FDT_CHECK_HEADER(fdt); in fdt_path_offset_namelen()
199 p = fdt_get_alias_namelen(fdt, p, q - p); in fdt_path_offset_namelen()
202 offset = fdt_path_offset(fdt, p); in fdt_path_offset_namelen()
219 offset = fdt_subnode_offset_namelen(fdt, offset, p, q-p); in fdt_path_offset_namelen()
229 int fdt_path_offset(const void *fdt, const char *path) in fdt_path_offset() argument
231 return fdt_path_offset_namelen(fdt, path, strlen(path)); in fdt_path_offset()
234 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) in fdt_get_name() argument
236 const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset); in fdt_get_name()
240 if (((err = fdt_check_header(fdt)) != 0) in fdt_get_name()
241 || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0)) in fdt_get_name()
246 if (fdt_version(fdt) < 0x10) { in fdt_get_name()
272 int fdt_first_property_offset(const void *fdt, int nodeoffset) in fdt_first_property_offset() argument
276 if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0) in fdt_first_property_offset()
279 return nextprop_(fdt, offset); in fdt_first_property_offset()
282 int fdt_next_property_offset(const void *fdt, int offset) in fdt_next_property_offset() argument
284 if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0) in fdt_next_property_offset()
287 return nextprop_(fdt, offset); in fdt_next_property_offset()
290 static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt, in fdt_get_property_by_offset_() argument
297 if ((err = fdt_check_prop_offset_(fdt, offset)) < 0) { in fdt_get_property_by_offset_()
303 prop = fdt_offset_ptr_(fdt, offset); in fdt_get_property_by_offset_()
311 const struct fdt_property *fdt_get_property_by_offset(const void *fdt, in fdt_get_property_by_offset() argument
318 if (fdt_version(fdt) < 0x10) { in fdt_get_property_by_offset()
324 return fdt_get_property_by_offset_(fdt, offset, lenp); in fdt_get_property_by_offset()
327 static const struct fdt_property *fdt_get_property_namelen_(const void *fdt, in fdt_get_property_namelen_() argument
334 for (offset = fdt_first_property_offset(fdt, offset); in fdt_get_property_namelen_()
336 (offset = fdt_next_property_offset(fdt, offset))) { in fdt_get_property_namelen_()
339 if (!(prop = fdt_get_property_by_offset_(fdt, offset, lenp))) { in fdt_get_property_namelen_()
343 if (fdt_string_eq_(fdt, fdt32_to_cpu(prop->nameoff), in fdt_get_property_namelen_()
357 const struct fdt_property *fdt_get_property_namelen(const void *fdt, in fdt_get_property_namelen() argument
364 if (fdt_version(fdt) < 0x10) { in fdt_get_property_namelen()
370 return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp, in fdt_get_property_namelen()
375 const struct fdt_property *fdt_get_property(const void *fdt, in fdt_get_property() argument
379 return fdt_get_property_namelen(fdt, nodeoffset, name, in fdt_get_property()
383 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset, in fdt_getprop_namelen() argument
389 prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp, in fdt_getprop_namelen()
395 if (fdt_version(fdt) < 0x10 && (poffset + sizeof(*prop)) % 8 && in fdt_getprop_namelen()
401 const void *fdt_getprop_by_offset(const void *fdt, int offset, in fdt_getprop_by_offset() argument
406 prop = fdt_get_property_by_offset_(fdt, offset, lenp); in fdt_getprop_by_offset()
410 *namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff)); in fdt_getprop_by_offset()
413 if (fdt_version(fdt) < 0x10 && (offset + sizeof(*prop)) % 8 && in fdt_getprop_by_offset()
419 const void *fdt_getprop(const void *fdt, int nodeoffset, in fdt_getprop() argument
422 return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); in fdt_getprop()
425 uint32_t fdt_get_phandle(const void *fdt, int nodeoffset) in fdt_get_phandle() argument
432 php = fdt_getprop(fdt, nodeoffset, "phandle", &len); in fdt_get_phandle()
434 php = fdt_getprop(fdt, nodeoffset, "linux,phandle", &len); in fdt_get_phandle()
442 const char *fdt_get_alias_namelen(const void *fdt, in fdt_get_alias_namelen() argument
447 aliasoffset = fdt_path_offset(fdt, "/aliases"); in fdt_get_alias_namelen()
451 return fdt_getprop_namelen(fdt, aliasoffset, name, namelen, NULL); in fdt_get_alias_namelen()
454 const char *fdt_get_alias(const void *fdt, const char *name) in fdt_get_alias() argument
456 return fdt_get_alias_namelen(fdt, name, strlen(name)); in fdt_get_alias()
459 int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen) in fdt_get_path() argument
465 FDT_CHECK_HEADER(fdt); in fdt_get_path()
472 offset = fdt_next_node(fdt, offset, &depth)) { in fdt_get_path()
481 name = fdt_get_name(fdt, offset, &namelen); in fdt_get_path()
511 int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset, in fdt_supernode_atdepth_offset() argument
517 FDT_CHECK_HEADER(fdt); in fdt_supernode_atdepth_offset()
524 offset = fdt_next_node(fdt, offset, &depth)) { in fdt_supernode_atdepth_offset()
547 int fdt_node_depth(const void *fdt, int nodeoffset) in fdt_node_depth() argument
552 err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth); in fdt_node_depth()
558 int fdt_parent_offset(const void *fdt, int nodeoffset) in fdt_parent_offset() argument
560 int nodedepth = fdt_node_depth(fdt, nodeoffset); in fdt_parent_offset()
564 return fdt_supernode_atdepth_offset(fdt, nodeoffset, in fdt_parent_offset()
568 int fdt_node_offset_by_prop_value(const void *fdt, int startoffset, in fdt_node_offset_by_prop_value() argument
576 FDT_CHECK_HEADER(fdt); in fdt_node_offset_by_prop_value()
583 for (offset = fdt_next_node(fdt, startoffset, NULL); in fdt_node_offset_by_prop_value()
585 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_node_offset_by_prop_value()
586 val = fdt_getprop(fdt, offset, propname, &len); in fdt_node_offset_by_prop_value()
595 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle) in fdt_node_offset_by_phandle() argument
602 FDT_CHECK_HEADER(fdt); in fdt_node_offset_by_phandle()
610 for (offset = fdt_next_node(fdt, -1, NULL); in fdt_node_offset_by_phandle()
612 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_node_offset_by_phandle()
613 if (fdt_get_phandle(fdt, offset) == phandle) in fdt_node_offset_by_phandle()
637 int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property) in fdt_stringlist_count() argument
642 list = fdt_getprop(fdt, nodeoffset, property, &length); in fdt_stringlist_count()
662 int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property, in fdt_stringlist_search() argument
668 list = fdt_getprop(fdt, nodeoffset, property, &length); in fdt_stringlist_search()
692 const char *fdt_stringlist_get(const void *fdt, int nodeoffset, in fdt_stringlist_get() argument
699 list = fdt_getprop(fdt, nodeoffset, property, &length); in fdt_stringlist_get()
737 int fdt_node_check_compatible(const void *fdt, int nodeoffset, in fdt_node_check_compatible() argument
743 prop = fdt_getprop(fdt, nodeoffset, "compatible", &len); in fdt_node_check_compatible()
750 int fdt_node_offset_by_compatible(const void *fdt, int startoffset, in fdt_node_offset_by_compatible() argument
755 FDT_CHECK_HEADER(fdt); in fdt_node_offset_by_compatible()
762 for (offset = fdt_next_node(fdt, startoffset, NULL); in fdt_node_offset_by_compatible()
764 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_node_offset_by_compatible()
765 err = fdt_node_check_compatible(fdt, offset, compatible); in fdt_node_offset_by_compatible()