Lines Matching full:node
79 fdt_addr_t fdtdec_get_addr_size_fixed(const void *blob, int node, in fdtdec_get_addr_size_fixed() argument
91 prop = fdt_getprop(blob, node, prop_name, &len); in fdtdec_get_addr_size_fixed()
109 addr = fdt_translate_address(blob, node, prop_addr); in fdtdec_get_addr_size_fixed()
126 int node, const char *prop_name, in fdtdec_get_addr_size_auto_parent() argument
148 return fdtdec_get_addr_size_fixed(blob, node, prop_name, index, na, in fdtdec_get_addr_size_auto_parent()
152 fdt_addr_t fdtdec_get_addr_size_auto_noparent(const void *blob, int node, in fdtdec_get_addr_size_auto_noparent() argument
161 parent = fdt_parent_offset(blob, node); in fdtdec_get_addr_size_auto_noparent()
167 return fdtdec_get_addr_size_auto_parent(blob, parent, node, prop_name, in fdtdec_get_addr_size_auto_noparent()
171 fdt_addr_t fdtdec_get_addr_size(const void *blob, int node, in fdtdec_get_addr_size() argument
176 return fdtdec_get_addr_size_fixed(blob, node, prop_name, 0, in fdtdec_get_addr_size()
181 fdt_addr_t fdtdec_get_addr(const void *blob, int node, const char *prop_name) in fdtdec_get_addr() argument
183 return fdtdec_get_addr_size(blob, node, prop_name, NULL); in fdtdec_get_addr()
187 int fdtdec_get_pci_addr(const void *blob, int node, enum fdt_pci_space type, in fdtdec_get_pci_addr() argument
198 * the value of the node's parent node's #address-cells and in fdtdec_get_pci_addr()
202 cell = fdt_getprop(blob, node, prop_name, &len); in fdtdec_get_pci_addr()
241 int fdtdec_get_pci_vendev(const void *blob, int node, u16 *vendor, u16 *device) in fdtdec_get_pci_vendev() argument
246 list = fdt_getprop(blob, node, "compatible", &len); in fdtdec_get_pci_vendev()
294 uint64_t fdtdec_get_uint64(const void *blob, int node, const char *prop_name, in fdtdec_get_uint64() argument
300 cell64 = fdt_getprop(blob, node, prop_name, &length); in fdtdec_get_uint64()
307 int fdtdec_get_is_enabled(const void *blob, int node) in fdtdec_get_is_enabled() argument
318 cell = fdt_getprop(blob, node, "status", NULL); in fdtdec_get_is_enabled()
324 enum fdt_compat_id fdtdec_lookup(const void *blob, int node) in fdtdec_lookup() argument
330 if (fdt_node_check_compatible(blob, node, in fdtdec_lookup()
336 int fdtdec_next_compatible(const void *blob, int node, enum fdt_compat_id id) in fdtdec_next_compatible() argument
338 return fdt_node_offset_by_compatible(blob, node, compat_names[id]); in fdtdec_next_compatible()
341 int fdtdec_next_compatible_subnode(const void *blob, int node, in fdtdec_next_compatible_subnode() argument
345 node = fdt_next_node(blob, node, depthp); in fdtdec_next_compatible_subnode()
350 blob, node, compat_names[id])) in fdtdec_next_compatible_subnode()
351 return node; in fdtdec_next_compatible_subnode()
361 int node, err; in fdtdec_next_alias() local
366 node = fdt_path_offset(blob, str); in fdtdec_next_alias()
367 if (node < 0) in fdtdec_next_alias()
368 return node; in fdtdec_next_alias()
369 err = fdt_node_check_compatible(blob, node, compat_names[id]); in fdtdec_next_alias()
375 return node; in fdtdec_next_alias()
395 int offset, node; in fdtdec_add_aliases_for_id() local
400 /* find the alias node if present */ in fdtdec_add_aliases_for_id()
404 * start with nothing, and we can assume that the root node can't in fdtdec_add_aliases_for_id()
410 for (node = count = 0; node >= 0 && count < maxcount;) { in fdtdec_add_aliases_for_id()
411 node = fdtdec_next_compatible(blob, node, id); in fdtdec_add_aliases_for_id()
412 if (node >= 0) in fdtdec_add_aliases_for_id()
413 nodes[count++] = node; in fdtdec_add_aliases_for_id()
415 if (node >= 0) in fdtdec_add_aliases_for_id()
428 node = 0; in fdtdec_add_aliases_for_id()
432 node = fdt_path_offset(blob, prop->data); in fdtdec_add_aliases_for_id()
433 if (node <= 0) in fdtdec_add_aliases_for_id()
444 /* Make sure the node we found is actually in our list! */ in fdtdec_add_aliases_for_id()
447 if (nodes[j] == node) { in fdtdec_add_aliases_for_id()
453 debug("%s: warning: alias '%s' points to a node " in fdtdec_add_aliases_for_id()
456 fdt_get_name(blob, node, NULL), in fdtdec_add_aliases_for_id()
462 * Add this node to our list in the right place, and mark in fdtdec_add_aliases_for_id()
465 if (fdtdec_get_is_enabled(blob, node)) { in fdtdec_add_aliases_for_id()
468 "a node be placed in the list in a " in fdtdec_add_aliases_for_id()
470 "node '%s'\n", __func__, path, in fdtdec_add_aliases_for_id()
471 fdt_get_name(blob, node, NULL)); in fdtdec_add_aliases_for_id()
474 node_list[number] = node; in fdtdec_add_aliases_for_id()
636 int fdtdec_lookup_phandle(const void *blob, int node, const char *prop_name) in fdtdec_lookup_phandle() argument
642 phandle = fdt_getprop(blob, node, prop_name, NULL); in fdtdec_lookup_phandle()
651 * Look up a property in a node and check that it has a minimum length.
654 * @param node node to examine
661 static const void *get_prop_check_min_len(const void *blob, int node, in get_prop_check_min_len() argument
669 cell = fdt_getprop(blob, node, prop_name, &len); in get_prop_check_min_len()
679 int fdtdec_get_int_array(const void *blob, int node, const char *prop_name, in fdtdec_get_int_array() argument
686 cell = get_prop_check_min_len(blob, node, prop_name, in fdtdec_get_int_array()
697 int fdtdec_get_int_array_count(const void *blob, int node, in fdtdec_get_int_array_count() argument
705 cell = fdt_getprop(blob, node, prop_name, &len); in fdtdec_get_int_array_count()
717 const u32 *fdtdec_locate_array(const void *blob, int node, in fdtdec_locate_array() argument
723 cell = get_prop_check_min_len(blob, node, prop_name, in fdtdec_locate_array()
728 int fdtdec_get_bool(const void *blob, int node, const char *prop_name) in fdtdec_get_bool() argument
734 cell = fdt_getprop(blob, node, prop_name, &len); in fdtdec_get_bool()
747 int node = -1; in fdtdec_parse_phandle_with_args() local
768 * Find the provider node and parse the #*-cells in fdtdec_parse_phandle_with_args()
773 * except when we're going to return the found node in fdtdec_parse_phandle_with_args()
777 node = fdt_node_offset_by_phandle(blob, in fdtdec_parse_phandle_with_args()
779 if (!node) { in fdtdec_parse_phandle_with_args()
788 count = fdtdec_get_int(blob, node, cells_name, in fdtdec_parse_phandle_with_args()
795 fdt_get_name(blob, node, in fdtdec_parse_phandle_with_args()
834 out_args->node = node; in fdtdec_parse_phandle_with_args()
846 node = -1; in fdtdec_parse_phandle_with_args()
862 int fdtdec_get_child_count(const void *blob, int node) in fdtdec_get_child_count() argument
867 fdt_for_each_subnode(subnode, blob, node) in fdtdec_get_child_count()
873 int fdtdec_get_byte_array(const void *blob, int node, const char *prop_name, in fdtdec_get_byte_array() argument
879 cell = get_prop_check_min_len(blob, node, prop_name, count, &err); in fdtdec_get_byte_array()
885 const u8 *fdtdec_locate_byte_array(const void *blob, int node, in fdtdec_locate_byte_array() argument
891 cell = get_prop_check_min_len(blob, node, prop_name, count, &err); in fdtdec_locate_byte_array()
951 int fdt_get_resource(const void *fdt, int node, const char *property, in fdt_get_resource() argument
958 parent = fdt_parent_offset(fdt, node); in fdt_get_resource()
965 ptr = fdt_getprop(fdt, node, property, &len); in fdt_get_resource()
986 int fdt_get_named_resource(const void *fdt, int node, const char *property, in fdt_get_named_resource() argument
992 index = fdt_stringlist_search(fdt, node, prop_names, name); in fdt_get_named_resource()
996 return fdt_get_resource(fdt, node, property, index, res); in fdt_get_named_resource()
999 static int decode_timing_property(const void *blob, int node, const char *name, in decode_timing_property() argument
1005 prop = fdt_getprop(blob, node, name, &length); in decode_timing_property()
1008 fdt_get_name(blob, node, NULL), name); in decode_timing_property()
1013 result->typ = fdtdec_get_int(blob, node, name, 0); in decode_timing_property()
1017 ret = fdtdec_get_int_array(blob, node, name, &result->min, 3); in decode_timing_property()
1026 int i, node, timings_node; in fdtdec_decode_display_timing() local
1034 for (i = 0, node = fdt_first_subnode(blob, timings_node); in fdtdec_decode_display_timing()
1035 node > 0 && i != index; in fdtdec_decode_display_timing()
1036 node = fdt_next_subnode(blob, node)) in fdtdec_decode_display_timing()
1039 if (node < 0) in fdtdec_decode_display_timing()
1040 return node; in fdtdec_decode_display_timing()
1044 ret |= decode_timing_property(blob, node, "hback-porch", in fdtdec_decode_display_timing()
1046 ret |= decode_timing_property(blob, node, "hfront-porch", in fdtdec_decode_display_timing()
1048 ret |= decode_timing_property(blob, node, "hactive", &dt->hactive); in fdtdec_decode_display_timing()
1049 ret |= decode_timing_property(blob, node, "hsync-len", &dt->hsync_len); in fdtdec_decode_display_timing()
1050 ret |= decode_timing_property(blob, node, "vback-porch", in fdtdec_decode_display_timing()
1052 ret |= decode_timing_property(blob, node, "vfront-porch", in fdtdec_decode_display_timing()
1054 ret |= decode_timing_property(blob, node, "vactive", &dt->vactive); in fdtdec_decode_display_timing()
1055 ret |= decode_timing_property(blob, node, "vsync-len", &dt->vsync_len); in fdtdec_decode_display_timing()
1056 ret |= decode_timing_property(blob, node, "clock-frequency", in fdtdec_decode_display_timing()
1060 val = fdtdec_get_int(blob, node, "vsync-active", -1); in fdtdec_decode_display_timing()
1065 val = fdtdec_get_int(blob, node, "hsync-active", -1); in fdtdec_decode_display_timing()
1070 val = fdtdec_get_int(blob, node, "de-active", -1); in fdtdec_decode_display_timing()
1075 val = fdtdec_get_int(blob, node, "pixelclk-active", -1); in fdtdec_decode_display_timing()
1081 if (fdtdec_get_bool(blob, node, "interlaced")) in fdtdec_decode_display_timing()
1083 if (fdtdec_get_bool(blob, node, "doublescan")) in fdtdec_decode_display_timing()
1085 if (fdtdec_get_bool(blob, node, "doubleclk")) in fdtdec_decode_display_timing()
1098 debug("%s: Missing /memory node\n", __func__); in fdtdec_setup_mem_size_base()
1135 debug("%s: Missing /memory node\n", __func__); in fdtdec_setup_memory_banksize()
1350 int node, child; in fdtdec_decode_ram_size() local
1358 node = fdt_path_offset(blob, area); in fdtdec_decode_ram_size()
1359 if (node < 0) { in fdtdec_decode_ram_size()
1360 debug("No %s node found\n", area); in fdtdec_decode_ram_size()
1364 cell = fdt_getprop(blob, node, "reg", &len); in fdtdec_decode_ram_size()
1370 addr_cells = fdt_address_cells(blob, node); in fdtdec_decode_ram_size()
1371 size_cells = fdt_size_cells(blob, node); in fdtdec_decode_ram_size()
1374 for (child = fdt_first_subnode(blob, node); in fdtdec_decode_ram_size()
1386 node = child; in fdtdec_decode_ram_size()
1387 cell = fdt_getprop(blob, node, "reg", &len); in fdtdec_decode_ram_size()
1395 /* Note: if no matching subnode was found we use the parent node */ in fdtdec_decode_ram_size()
1402 auto_size = fdtdec_get_bool(blob, node, "auto-size"); in fdtdec_decode_ram_size()