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 static int _fdt_string_eq(const void *fdt, int stroffset, in _fdt_string_eq() argument
86 const char *p = fdt_string(fdt, stroffset); in _fdt_string_eq()
91 int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size) in fdt_get_mem_rsv() argument
93 FDT_CHECK_HEADER(fdt); in fdt_get_mem_rsv()
94 *address = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->address); in fdt_get_mem_rsv()
95 *size = fdt64_to_cpu(_fdt_mem_rsv(fdt, n)->size); in fdt_get_mem_rsv()
99 int fdt_num_mem_rsv(const void *fdt) in fdt_num_mem_rsv() argument
103 while (fdt64_to_cpu(_fdt_mem_rsv(fdt, i)->size) != 0) in fdt_num_mem_rsv()
108 static int _nextprop(const void *fdt, int offset) in _nextprop() argument
114 tag = fdt_next_tag(fdt, offset, &nextoffset); in _nextprop()
132 int fdt_subnode_offset_namelen(const void *fdt, int offset, in fdt_subnode_offset_namelen() argument
137 FDT_CHECK_HEADER(fdt); in fdt_subnode_offset_namelen()
141 offset = fdt_next_node(fdt, offset, &depth)) in fdt_subnode_offset_namelen()
143 && _fdt_nodename_eq(fdt, offset, name, namelen)) in fdt_subnode_offset_namelen()
151 int fdt_subnode_offset(const void *fdt, int parentoffset, in fdt_subnode_offset() argument
154 return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name)); in fdt_subnode_offset()
157 int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen) in fdt_path_offset_namelen() argument
163 FDT_CHECK_HEADER(fdt); in fdt_path_offset_namelen()
172 p = fdt_get_alias_namelen(fdt, p, q - p); in fdt_path_offset_namelen()
175 offset = fdt_path_offset(fdt, p); in fdt_path_offset_namelen()
192 offset = fdt_subnode_offset_namelen(fdt, offset, p, q-p); in fdt_path_offset_namelen()
202 int fdt_path_offset(const void *fdt, const char *path) in fdt_path_offset() argument
204 return fdt_path_offset_namelen(fdt, path, strlen(path)); in fdt_path_offset()
207 const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) in fdt_get_name() argument
209 const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); in fdt_get_name()
212 if (((err = fdt_check_header(fdt)) != 0) in fdt_get_name()
213 || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) in fdt_get_name()
227 int fdt_first_property_offset(const void *fdt, int nodeoffset) in fdt_first_property_offset() argument
231 if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0) in fdt_first_property_offset()
234 return _nextprop(fdt, offset); in fdt_first_property_offset()
237 int fdt_next_property_offset(const void *fdt, int offset) in fdt_next_property_offset() argument
239 if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0) in fdt_next_property_offset()
242 return _nextprop(fdt, offset); in fdt_next_property_offset()
245 const struct fdt_property *fdt_get_property_by_offset(const void *fdt, in fdt_get_property_by_offset() argument
252 if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) { in fdt_get_property_by_offset()
258 prop = _fdt_offset_ptr(fdt, offset); in fdt_get_property_by_offset()
266 const struct fdt_property *fdt_get_property_namelen(const void *fdt, in fdt_get_property_namelen() argument
271 for (offset = fdt_first_property_offset(fdt, offset); in fdt_get_property_namelen()
273 (offset = fdt_next_property_offset(fdt, offset))) { in fdt_get_property_namelen()
276 if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { in fdt_get_property_namelen()
280 if (_fdt_string_eq(fdt, fdt32_to_cpu(prop->nameoff), in fdt_get_property_namelen()
290 const struct fdt_property *fdt_get_property(const void *fdt, in fdt_get_property() argument
294 return fdt_get_property_namelen(fdt, nodeoffset, name, in fdt_get_property()
298 const void *fdt_getprop_namelen(const void *fdt, int nodeoffset, in fdt_getprop_namelen() argument
303 prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp); in fdt_getprop_namelen()
310 const void *fdt_getprop_by_offset(const void *fdt, int offset, in fdt_getprop_by_offset() argument
315 prop = fdt_get_property_by_offset(fdt, offset, lenp); in fdt_getprop_by_offset()
319 *namep = fdt_string(fdt, fdt32_to_cpu(prop->nameoff)); in fdt_getprop_by_offset()
323 const void *fdt_getprop(const void *fdt, int nodeoffset, in fdt_getprop() argument
326 return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); in fdt_getprop()
329 uint32_t fdt_get_phandle(const void *fdt, int nodeoffset) in fdt_get_phandle() argument
336 php = fdt_getprop(fdt, nodeoffset, "phandle", &len); in fdt_get_phandle()
338 php = fdt_getprop(fdt, nodeoffset, "linux,phandle", &len); in fdt_get_phandle()
346 const char *fdt_get_alias_namelen(const void *fdt, in fdt_get_alias_namelen() argument
351 aliasoffset = fdt_path_offset(fdt, "/aliases"); in fdt_get_alias_namelen()
355 return fdt_getprop_namelen(fdt, aliasoffset, name, namelen, NULL); in fdt_get_alias_namelen()
358 const char *fdt_get_alias(const void *fdt, const char *name) in fdt_get_alias() argument
360 return fdt_get_alias_namelen(fdt, name, strlen(name)); in fdt_get_alias()
363 int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen) in fdt_get_path() argument
369 FDT_CHECK_HEADER(fdt); in fdt_get_path()
376 offset = fdt_next_node(fdt, offset, &depth)) { in fdt_get_path()
385 name = fdt_get_name(fdt, offset, &namelen); in fdt_get_path()
415 int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset, in fdt_supernode_atdepth_offset() argument
421 FDT_CHECK_HEADER(fdt); in fdt_supernode_atdepth_offset()
428 offset = fdt_next_node(fdt, offset, &depth)) { in fdt_supernode_atdepth_offset()
451 int fdt_node_depth(const void *fdt, int nodeoffset) in fdt_node_depth() argument
456 err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth); in fdt_node_depth()
462 int fdt_parent_offset(const void *fdt, int nodeoffset) in fdt_parent_offset() argument
464 int nodedepth = fdt_node_depth(fdt, nodeoffset); in fdt_parent_offset()
468 return fdt_supernode_atdepth_offset(fdt, nodeoffset, in fdt_parent_offset()
472 int fdt_node_offset_by_prop_value(const void *fdt, int startoffset, in fdt_node_offset_by_prop_value() argument
480 FDT_CHECK_HEADER(fdt); in fdt_node_offset_by_prop_value()
487 for (offset = fdt_next_node(fdt, startoffset, NULL); in fdt_node_offset_by_prop_value()
489 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_node_offset_by_prop_value()
490 val = fdt_getprop(fdt, offset, propname, &len); in fdt_node_offset_by_prop_value()
499 int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle) in fdt_node_offset_by_phandle() argument
506 FDT_CHECK_HEADER(fdt); in fdt_node_offset_by_phandle()
514 for (offset = fdt_next_node(fdt, -1, NULL); in fdt_node_offset_by_phandle()
516 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_node_offset_by_phandle()
517 if (fdt_get_phandle(fdt, offset) == phandle) in fdt_node_offset_by_phandle()
541 int fdt_node_check_compatible(const void *fdt, int nodeoffset, in fdt_node_check_compatible() argument
547 prop = fdt_getprop(fdt, nodeoffset, "compatible", &len); in fdt_node_check_compatible()
556 int fdt_node_offset_by_compatible(const void *fdt, int startoffset, in fdt_node_offset_by_compatible() argument
561 FDT_CHECK_HEADER(fdt); in fdt_node_offset_by_compatible()
568 for (offset = fdt_next_node(fdt, startoffset, NULL); in fdt_node_offset_by_compatible()
570 offset = fdt_next_node(fdt, offset, NULL)) { in fdt_node_offset_by_compatible()
571 err = fdt_node_check_compatible(fdt, offset, compatible); in fdt_node_offset_by_compatible()