Lines Matching refs:blob

88 fdt_addr_t fdtdec_get_addr_size_fixed(const void *blob, int node,  in fdtdec_get_addr_size_fixed()  argument
100 prop = fdt_getprop(blob, node, prop_name, &len); in fdtdec_get_addr_size_fixed()
118 addr = fdt_translate_address(blob, node, prop_addr); in fdtdec_get_addr_size_fixed()
134 fdt_addr_t fdtdec_get_addr_size_auto_parent(const void *blob, int parent, in fdtdec_get_addr_size_auto_parent() argument
143 na = fdt_address_cells(blob, parent); in fdtdec_get_addr_size_auto_parent()
149 ns = fdt_size_cells(blob, parent); in fdtdec_get_addr_size_auto_parent()
157 return fdtdec_get_addr_size_fixed(blob, node, prop_name, index, na, in fdtdec_get_addr_size_auto_parent()
161 fdt_addr_t fdtdec_get_addr_size_auto_noparent(const void *blob, int node, in fdtdec_get_addr_size_auto_noparent() argument
170 parent = fdt_parent_offset(blob, node); in fdtdec_get_addr_size_auto_noparent()
176 return fdtdec_get_addr_size_auto_parent(blob, parent, node, prop_name, in fdtdec_get_addr_size_auto_noparent()
180 fdt_addr_t fdtdec_get_addr_size(const void *blob, int node, in fdtdec_get_addr_size() argument
185 return fdtdec_get_addr_size_fixed(blob, node, prop_name, 0, in fdtdec_get_addr_size()
190 fdt_addr_t fdtdec_get_addr(const void *blob, int node, const char *prop_name) in fdtdec_get_addr() argument
192 return fdtdec_get_addr_size(blob, node, prop_name, NULL); in fdtdec_get_addr()
196 int fdtdec_get_pci_vendev(const void *blob, int node, u16 *vendor, u16 *device) in fdtdec_get_pci_vendev() argument
201 list = fdt_getprop(blob, node, "compatible", &len); in fdtdec_get_pci_vendev()
248 int fdtdec_get_pci_bus_range(const void *blob, int node, in fdtdec_get_pci_bus_range() argument
254 values = fdt_getprop(blob, node, "bus-range", &len); in fdtdec_get_pci_bus_range()
265 uint64_t fdtdec_get_uint64(const void *blob, int node, const char *prop_name, in fdtdec_get_uint64() argument
271 cell64 = fdt_getprop(blob, node, prop_name, &length); in fdtdec_get_uint64()
278 int fdtdec_get_is_enabled(const void *blob, int node) in fdtdec_get_is_enabled() argument
289 cell = fdt_getprop(blob, node, "status", NULL); in fdtdec_get_is_enabled()
295 enum fdt_compat_id fdtdec_lookup(const void *blob, int node) in fdtdec_lookup() argument
301 if (fdt_node_check_compatible(blob, node, in fdtdec_lookup()
307 int fdtdec_next_compatible(const void *blob, int node, enum fdt_compat_id id) in fdtdec_next_compatible() argument
309 return fdt_node_offset_by_compatible(blob, node, compat_names[id]); in fdtdec_next_compatible()
312 int fdtdec_next_compatible_subnode(const void *blob, int node, in fdtdec_next_compatible_subnode() argument
316 node = fdt_next_node(blob, node, depthp); in fdtdec_next_compatible_subnode()
321 blob, node, compat_names[id])) in fdtdec_next_compatible_subnode()
327 int fdtdec_next_alias(const void *blob, const char *name, enum fdt_compat_id id, in fdtdec_next_alias() argument
337 node = fdt_path_offset(blob, str); in fdtdec_next_alias()
340 err = fdt_node_check_compatible(blob, node, compat_names[id]); in fdtdec_next_alias()
349 int fdtdec_find_aliases_for_id(const void *blob, const char *name, in fdtdec_find_aliases_for_id() argument
355 return fdtdec_add_aliases_for_id(blob, name, id, node_list, maxcount); in fdtdec_find_aliases_for_id()
359 int fdtdec_add_aliases_for_id(const void *blob, const char *name, in fdtdec_add_aliases_for_id() argument
372 alias_node = fdt_path_offset(blob, "/aliases"); in fdtdec_add_aliases_for_id()
382 node = fdtdec_next_compatible(blob, node, id); in fdtdec_add_aliases_for_id()
391 for (offset = fdt_first_property_offset(blob, alias_node); in fdtdec_add_aliases_for_id()
393 offset = fdt_next_property_offset(blob, offset)) { in fdtdec_add_aliases_for_id()
400 prop = fdt_get_property_by_offset(blob, offset, NULL); in fdtdec_add_aliases_for_id()
401 path = fdt_string(blob, fdt32_to_cpu(prop->nameoff)); in fdtdec_add_aliases_for_id()
403 node = fdt_path_offset(blob, prop->data); in fdtdec_add_aliases_for_id()
427 fdt_get_name(blob, node, NULL), in fdtdec_add_aliases_for_id()
436 if (fdtdec_get_is_enabled(blob, node)) { in fdtdec_add_aliases_for_id()
442 fdt_get_name(blob, node, NULL)); in fdtdec_add_aliases_for_id()
457 fdtdec_get_is_enabled(blob, nodes[j])) in fdtdec_add_aliases_for_id()
474 int fdtdec_get_alias_seq(const void *blob, const char *base, int offset, in fdtdec_get_alias_seq() argument
483 find_name = fdt_get_name(blob, offset, &find_namelen); in fdtdec_get_alias_seq()
486 aliases = fdt_path_offset(blob, "/aliases"); in fdtdec_get_alias_seq()
487 for (prop_offset = fdt_first_property_offset(blob, aliases); in fdtdec_get_alias_seq()
489 prop_offset = fdt_next_property_offset(blob, prop_offset)) { in fdtdec_get_alias_seq()
495 prop = fdt_getprop_by_offset(blob, prop_offset, &name, &len); in fdtdec_get_alias_seq()
510 if (fdt_get_phandle(blob, offset) != in fdtdec_get_alias_seq()
511 fdt_get_phandle(blob, fdt_path_offset(blob, prop))) in fdtdec_get_alias_seq()
527 int fdtdec_get_alias_highest_id(const void *blob, const char *base) in fdtdec_get_alias_highest_id() argument
536 aliases = fdt_path_offset(blob, "/aliases"); in fdtdec_get_alias_highest_id()
537 for (prop_offset = fdt_first_property_offset(blob, aliases); in fdtdec_get_alias_highest_id()
539 prop_offset = fdt_next_property_offset(blob, prop_offset)) { in fdtdec_get_alias_highest_id()
544 prop = fdt_getprop_by_offset(blob, prop_offset, &name, &len); in fdtdec_get_alias_highest_id()
560 const char *fdtdec_get_chosen_prop(const void *blob, const char *name) in fdtdec_get_chosen_prop() argument
564 if (!blob) in fdtdec_get_chosen_prop()
566 chosen_node = fdt_path_offset(blob, "/chosen"); in fdtdec_get_chosen_prop()
567 return fdt_getprop(blob, chosen_node, name, NULL); in fdtdec_get_chosen_prop()
570 int fdtdec_get_chosen_node(const void *blob, const char *name) in fdtdec_get_chosen_node() argument
574 prop = fdtdec_get_chosen_prop(blob, name); in fdtdec_get_chosen_node()
577 return fdt_path_offset(blob, prop); in fdtdec_get_chosen_node()
619 int fdtdec_lookup_phandle(const void *blob, int node, const char *prop_name) in fdtdec_lookup_phandle() argument
625 phandle = fdt_getprop(blob, node, prop_name, NULL); in fdtdec_lookup_phandle()
629 lookup = fdt_node_offset_by_phandle(blob, fdt32_to_cpu(*phandle)); in fdtdec_lookup_phandle()
644 static const void *get_prop_check_min_len(const void *blob, int node, in get_prop_check_min_len() argument
652 cell = fdt_getprop(blob, node, prop_name, &len); in get_prop_check_min_len()
662 int fdtdec_get_int_array(const void *blob, int node, const char *prop_name, in fdtdec_get_int_array() argument
669 cell = get_prop_check_min_len(blob, node, prop_name, in fdtdec_get_int_array()
680 int fdtdec_get_int_array_count(const void *blob, int node, in fdtdec_get_int_array_count() argument
688 cell = fdt_getprop(blob, node, prop_name, &len); in fdtdec_get_int_array_count()
700 const u32 *fdtdec_locate_array(const void *blob, int node, in fdtdec_locate_array() argument
706 cell = get_prop_check_min_len(blob, node, prop_name, in fdtdec_locate_array()
711 int fdtdec_get_bool(const void *blob, int node, const char *prop_name) in fdtdec_get_bool() argument
717 cell = fdt_getprop(blob, node, prop_name, &len); in fdtdec_get_bool()
721 int fdtdec_parse_phandle_with_args(const void *blob, int src_node, in fdtdec_parse_phandle_with_args() argument
734 list = fdt_getprop(blob, src_node, list_name, &size); in fdtdec_parse_phandle_with_args()
760 node = fdt_node_offset_by_phandle(blob, in fdtdec_parse_phandle_with_args()
764 fdt_get_name(blob, src_node, in fdtdec_parse_phandle_with_args()
771 count = fdtdec_get_int(blob, node, cells_name, in fdtdec_parse_phandle_with_args()
775 fdt_get_name(blob, src_node, in fdtdec_parse_phandle_with_args()
778 fdt_get_name(blob, node, in fdtdec_parse_phandle_with_args()
792 fdt_get_name(blob, src_node, NULL)); in fdtdec_parse_phandle_with_args()
813 fdt_get_name(blob, src_node, in fdtdec_parse_phandle_with_args()
845 int fdtdec_get_byte_array(const void *blob, int node, const char *prop_name, in fdtdec_get_byte_array() argument
851 cell = get_prop_check_min_len(blob, node, prop_name, count, &err); in fdtdec_get_byte_array()
857 const u8 *fdtdec_locate_byte_array(const void *blob, int node, in fdtdec_locate_byte_array() argument
863 cell = get_prop_check_min_len(blob, node, prop_name, count, &err); in fdtdec_locate_byte_array()
869 int fdtdec_get_config_int(const void *blob, const char *prop_name, in fdtdec_get_config_int() argument
875 config_node = fdt_path_offset(blob, "/config"); in fdtdec_get_config_int()
878 return fdtdec_get_int(blob, config_node, prop_name, default_val); in fdtdec_get_config_int()
881 int fdtdec_get_config_bool(const void *blob, const char *prop_name) in fdtdec_get_config_bool() argument
887 config_node = fdt_path_offset(blob, "/config"); in fdtdec_get_config_bool()
890 prop = fdt_get_property(blob, config_node, prop_name, NULL); in fdtdec_get_config_bool()
895 char *fdtdec_get_config_string(const void *blob, const char *prop_name) in fdtdec_get_config_string() argument
902 nodeoffset = fdt_path_offset(blob, "/config"); in fdtdec_get_config_string()
906 nodep = fdt_getprop(blob, nodeoffset, prop_name, &len); in fdtdec_get_config_string()
971 static int decode_timing_property(const void *blob, int node, const char *name, in decode_timing_property() argument
977 prop = fdt_getprop(blob, node, name, &length); in decode_timing_property()
980 fdt_get_name(blob, node, NULL), name); in decode_timing_property()
985 result->typ = fdtdec_get_int(blob, node, name, 0); in decode_timing_property()
989 ret = fdtdec_get_int_array(blob, node, name, &result->min, 3); in decode_timing_property()
995 int fdtdec_decode_display_timing(const void *blob, int parent, int index, in fdtdec_decode_display_timing() argument
1002 timings_node = fdt_subnode_offset(blob, parent, "display-timings"); in fdtdec_decode_display_timing()
1006 for (i = 0, node = fdt_first_subnode(blob, timings_node); in fdtdec_decode_display_timing()
1008 node = fdt_next_subnode(blob, node)) in fdtdec_decode_display_timing()
1016 ret |= decode_timing_property(blob, node, "hback-porch", in fdtdec_decode_display_timing()
1018 ret |= decode_timing_property(blob, node, "hfront-porch", in fdtdec_decode_display_timing()
1020 ret |= decode_timing_property(blob, node, "hactive", &dt->hactive); in fdtdec_decode_display_timing()
1021 ret |= decode_timing_property(blob, node, "hsync-len", &dt->hsync_len); in fdtdec_decode_display_timing()
1022 ret |= decode_timing_property(blob, node, "vback-porch", in fdtdec_decode_display_timing()
1024 ret |= decode_timing_property(blob, node, "vfront-porch", in fdtdec_decode_display_timing()
1026 ret |= decode_timing_property(blob, node, "vactive", &dt->vactive); in fdtdec_decode_display_timing()
1027 ret |= decode_timing_property(blob, node, "vsync-len", &dt->vsync_len); in fdtdec_decode_display_timing()
1028 ret |= decode_timing_property(blob, node, "clock-frequency", in fdtdec_decode_display_timing()
1032 val = fdtdec_get_int(blob, node, "vsync-active", -1); in fdtdec_decode_display_timing()
1037 val = fdtdec_get_int(blob, node, "hsync-active", -1); in fdtdec_decode_display_timing()
1042 val = fdtdec_get_int(blob, node, "de-active", -1); in fdtdec_decode_display_timing()
1047 val = fdtdec_get_int(blob, node, "pixelclk-active", -1); in fdtdec_decode_display_timing()
1053 if (fdtdec_get_bool(blob, node, "interlaced")) in fdtdec_decode_display_timing()
1055 if (fdtdec_get_bool(blob, node, "doublescan")) in fdtdec_decode_display_timing()
1057 if (fdtdec_get_bool(blob, node, "doubleclk")) in fdtdec_decode_display_timing()
1298 static int fdtdec_init_reserved_memory(void *blob) in fdtdec_init_reserved_memory() argument
1304 na = fdt_address_cells(blob, 0); in fdtdec_init_reserved_memory()
1305 ns = fdt_size_cells(blob, 0); in fdtdec_init_reserved_memory()
1307 node = fdt_add_subnode(blob, 0, "reserved-memory"); in fdtdec_init_reserved_memory()
1311 err = fdt_setprop(blob, node, "ranges", NULL, 0); in fdtdec_init_reserved_memory()
1317 err = fdt_setprop(blob, node, "#size-cells", &value, sizeof(value)); in fdtdec_init_reserved_memory()
1323 err = fdt_setprop(blob, node, "#address-cells", &value, sizeof(value)); in fdtdec_init_reserved_memory()
1330 int fdtdec_add_reserved_memory(void *blob, const char *basename, in fdtdec_add_reserved_memory() argument
1341 parent = fdt_path_offset(blob, "/reserved-memory"); in fdtdec_add_reserved_memory()
1343 parent = fdtdec_init_reserved_memory(blob); in fdtdec_add_reserved_memory()
1349 na = fdt_address_cells(blob, parent); in fdtdec_add_reserved_memory()
1353 ns = fdt_size_cells(blob, parent); in fdtdec_add_reserved_memory()
1358 fdt_for_each_subnode(node, blob, parent) { in fdtdec_add_reserved_memory()
1359 const char *name = fdt_get_name(blob, node, NULL); in fdtdec_add_reserved_memory()
1363 addr = fdtdec_get_addr_size_fixed(blob, node, "reg", 0, na, ns, in fdtdec_add_reserved_memory()
1373 *phandlep = fdt_get_phandle(blob, node); in fdtdec_add_reserved_memory()
1398 node = fdt_add_subnode(blob, parent, name); in fdtdec_add_reserved_memory()
1403 err = fdt_generate_phandle(blob, &phandle); in fdtdec_add_reserved_memory()
1407 err = fdtdec_set_phandle(blob, node, phandle); in fdtdec_add_reserved_memory()
1428 err = fdt_setprop(blob, node, "reg", cells, (na + ns) * sizeof(*cells)); in fdtdec_add_reserved_memory()
1433 err = fdt_setprop(blob, node, "no-map", NULL, 0); in fdtdec_add_reserved_memory()
1445 int fdtdec_get_carveout(const void *blob, const char *node, const char *name, in fdtdec_get_carveout() argument
1453 offset = fdt_path_offset(blob, node); in fdtdec_get_carveout()
1457 prop = fdt_getprop(blob, offset, name, &len); in fdtdec_get_carveout()
1475 offset = fdt_node_offset_by_phandle(blob, phandle); in fdtdec_get_carveout()
1481 carveout->start = fdtdec_get_addr_size_auto_noparent(blob, offset, in fdtdec_get_carveout()
1494 int fdtdec_set_carveout(void *blob, const char *node, const char *prop_name, in fdtdec_set_carveout() argument
1503 err = fdtdec_add_reserved_memory(blob, name, carveout, &phandle, false); in fdtdec_set_carveout()
1509 offset = fdt_path_offset(blob, node); in fdtdec_set_carveout()
1517 if (!fdt_getprop(blob, offset, prop_name, &len)) { in fdtdec_set_carveout()
1525 err = fdt_setprop_placeholder(blob, offset, prop_name, in fdtdec_set_carveout()
1535 err = fdt_setprop_inplace_namelen_partial(blob, offset, prop_name, in fdtdec_set_carveout()
1652 int fdtdec_decode_ram_size(const void *blob, const char *area, int board_id, in fdtdec_decode_ram_size() argument
1667 node = fdt_path_offset(blob, area); in fdtdec_decode_ram_size()
1673 cell = fdt_getprop(blob, node, "reg", &len); in fdtdec_decode_ram_size()
1679 addr_cells = fdt_address_cells(blob, node); in fdtdec_decode_ram_size()
1680 size_cells = fdt_size_cells(blob, node); in fdtdec_decode_ram_size()
1683 for (child = fdt_first_subnode(blob, node); in fdtdec_decode_ram_size()
1685 child = fdt_next_subnode(blob, child)) { in fdtdec_decode_ram_size()
1688 match_mask = fdtdec_get_int(blob, child, "match-mask", -1); in fdtdec_decode_ram_size()
1689 match_value = fdtdec_get_int(blob, child, "match-value", -1); in fdtdec_decode_ram_size()
1696 cell = fdt_getprop(blob, node, "reg", &len); in fdtdec_decode_ram_size()
1711 auto_size = fdtdec_get_bool(blob, node, "auto-size"); in fdtdec_decode_ram_size()