Lines Matching +full:dt +full:- +full:property
1 // SPDX-License-Identifier: GPL-2.0+
29 cell = fdt_getprop(gd->fdt_blob, ofnode_to_offset(node), in ofnode_read_u32()
33 return -EINVAL; in ofnode_read_u32()
69 cell = fdt_getprop(gd->fdt_blob, ofnode_to_offset(node), propname, in ofnode_read_u64()
73 return -EINVAL; in ofnode_read_u64()
107 int len = -1; in ofnode_read_string()
113 struct property *prop = of_find_property( in ofnode_read_string()
117 str = prop->value; in ofnode_read_string()
118 len = prop->length; in ofnode_read_string()
121 str = fdt_getprop(gd->fdt_blob, ofnode_to_offset(node), in ofnode_read_string()
147 for (np = np->child; np; np = np->sibling) { in ofnode_find_subnode()
148 if (!strcmp(subnode_name, np->name)) in ofnode_find_subnode()
153 int ooffset = fdt_subnode_offset(gd->fdt_blob, in ofnode_find_subnode()
173 return fdtdec_get_int_array(gd->fdt_blob, in ofnode_read_u32_array()
183 return np_to_ofnode(node.np->child); in ofnode_first_subnode()
186 fdt_first_subnode(gd->fdt_blob, ofnode_to_offset(node))); in ofnode_first_subnode()
193 return np_to_ofnode(node.np->sibling); in ofnode_next_subnode()
196 fdt_next_subnode(gd->fdt_blob, ofnode_to_offset(node))); in ofnode_next_subnode()
207 parent.of_offset = fdt_parent_offset(gd->fdt_blob, in ofnode_get_parent()
217 return strrchr(node.np->full_name, '/') + 1; in ofnode_get_name()
219 return fdt_get_name(gd->fdt_blob, ofnode_to_offset(node), NULL); in ofnode_get_name()
229 node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, in ofnode_get_by_phandle()
240 struct property *prop = of_find_property( in ofnode_read_size()
244 return prop->length; in ofnode_read_size()
246 if (fdt_getprop(gd->fdt_blob, ofnode_to_offset(node), propname, in ofnode_read_size()
251 return -EINVAL; in ofnode_read_size()
279 return fdtdec_get_addr_size_fixed(gd->fdt_blob, in ofnode_get_addr_index()
292 int ofnode_stringlist_search(ofnode node, const char *property, in ofnode_stringlist_search() argument
297 property, string); in ofnode_stringlist_search()
301 ret = fdt_stringlist_search(gd->fdt_blob, in ofnode_stringlist_search()
302 ofnode_to_offset(node), property, in ofnode_stringlist_search()
304 if (ret == -FDT_ERR_NOTFOUND) in ofnode_stringlist_search()
305 return -ENODATA; in ofnode_stringlist_search()
307 return -EINVAL; in ofnode_stringlist_search()
313 int ofnode_read_string_index(ofnode node, const char *property, int index, in ofnode_read_string_index() argument
318 property, index, outp); in ofnode_read_string_index()
322 *outp = fdt_stringlist_get(gd->fdt_blob, ofnode_to_offset(node), in ofnode_read_string_index()
323 property, index, &len); in ofnode_read_string_index()
325 return -EINVAL; in ofnode_read_string_index()
330 int ofnode_read_string_count(ofnode node, const char *property) in ofnode_read_string_count() argument
333 return of_property_count_strings(ofnode_to_np(node), property); in ofnode_read_string_count()
335 return fdt_stringlist_count(gd->fdt_blob, in ofnode_read_string_count()
336 ofnode_to_offset(node), property); in ofnode_read_string_count()
344 out->node = offset_to_ofnode(in->node); in ofnode_from_fdtdec_phandle_args()
345 out->args_count = in->args_count; in ofnode_from_fdtdec_phandle_args()
346 memcpy(out->args, in->args, sizeof(out->args)); in ofnode_from_fdtdec_phandle_args()
353 out->node = np_to_ofnode(in->np); in ofnode_from_of_phandle_args()
354 out->args_count = in->args_count; in ofnode_from_of_phandle_args()
355 memcpy(out->args, in->args, sizeof(out->args)); in ofnode_from_of_phandle_args()
377 ret = fdtdec_parse_phandle_with_args(gd->fdt_blob, in ofnode_parse_phandle_with_args()
396 return fdtdec_parse_phandle_with_args(gd->fdt_blob, in ofnode_count_phandle_with_args()
398 0, -1, NULL); in ofnode_count_phandle_with_args()
406 return offset_to_ofnode(fdt_path_offset(gd->fdt_blob, path)); in ofnode_path()
436 debug("%s: could not find property %s\n", in decode_timing_property()
442 result->typ = ofnode_read_u32_default(node, name, 0); in decode_timing_property()
443 result->min = result->typ; in decode_timing_property()
444 result->max = result->typ; in decode_timing_property()
446 ret = ofnode_read_u32_array(node, name, &result->min, 3); in decode_timing_property()
453 struct display_timing *dt) in ofnode_decode_display_timing() argument
460 timings = ofnode_find_subnode(parent, "display-timings"); in ofnode_decode_display_timing()
462 return -EINVAL; in ofnode_decode_display_timing()
471 return -EINVAL; in ofnode_decode_display_timing()
473 memset(dt, 0, sizeof(*dt)); in ofnode_decode_display_timing()
475 ret |= decode_timing_property(node, "hback-porch", &dt->hback_porch); in ofnode_decode_display_timing()
476 ret |= decode_timing_property(node, "hfront-porch", &dt->hfront_porch); in ofnode_decode_display_timing()
477 ret |= decode_timing_property(node, "hactive", &dt->hactive); in ofnode_decode_display_timing()
478 ret |= decode_timing_property(node, "hsync-len", &dt->hsync_len); in ofnode_decode_display_timing()
479 ret |= decode_timing_property(node, "vback-porch", &dt->vback_porch); in ofnode_decode_display_timing()
480 ret |= decode_timing_property(node, "vfront-porch", &dt->vfront_porch); in ofnode_decode_display_timing()
481 ret |= decode_timing_property(node, "vactive", &dt->vactive); in ofnode_decode_display_timing()
482 ret |= decode_timing_property(node, "vsync-len", &dt->vsync_len); in ofnode_decode_display_timing()
483 ret |= decode_timing_property(node, "clock-frequency", &dt->pixelclock); in ofnode_decode_display_timing()
485 dt->flags = 0; in ofnode_decode_display_timing()
486 val = ofnode_read_u32_default(node, "vsync-active", -1); in ofnode_decode_display_timing()
487 if (val != -1) { in ofnode_decode_display_timing()
488 dt->flags |= val ? DISPLAY_FLAGS_VSYNC_HIGH : in ofnode_decode_display_timing()
491 val = ofnode_read_u32_default(node, "hsync-active", -1); in ofnode_decode_display_timing()
492 if (val != -1) { in ofnode_decode_display_timing()
493 dt->flags |= val ? DISPLAY_FLAGS_HSYNC_HIGH : in ofnode_decode_display_timing()
496 val = ofnode_read_u32_default(node, "de-active", -1); in ofnode_decode_display_timing()
497 if (val != -1) { in ofnode_decode_display_timing()
498 dt->flags |= val ? DISPLAY_FLAGS_DE_HIGH : in ofnode_decode_display_timing()
501 val = ofnode_read_u32_default(node, "pixelclk-active", -1); in ofnode_decode_display_timing()
502 if (val != -1) { in ofnode_decode_display_timing()
503 dt->flags |= val ? DISPLAY_FLAGS_PIXDATA_POSEDGE : in ofnode_decode_display_timing()
508 dt->flags |= DISPLAY_FLAGS_INTERLACED; in ofnode_decode_display_timing()
510 dt->flags |= DISPLAY_FLAGS_DOUBLESCAN; in ofnode_decode_display_timing()
512 dt->flags |= DISPLAY_FLAGS_DOUBLECLK; in ofnode_decode_display_timing()
522 return fdt_getprop(gd->fdt_blob, ofnode_to_offset(node), in ofnode_get_property()
531 return fdtdec_get_is_enabled(gd->fdt_blob, in ofnode_is_available()
535 fdt_addr_t ofnode_get_addr_size(ofnode node, const char *property, in ofnode_get_addr_size() argument
542 const __be32 *prop = of_get_property(np, property, &psize); in ofnode_get_addr_size()
555 return fdtdec_get_addr_size(gd->fdt_blob, in ofnode_get_addr_size()
556 ofnode_to_offset(node), property, in ofnode_get_addr_size()
574 return fdtdec_locate_byte_array(gd->fdt_blob, in ofnode_read_u8_array_ptr()
584 int ret = -ENOENT; in ofnode_read_pci_addr()
590 * the value of the node's parent node's #address-cells and in ofnode_read_pci_addr()
591 * #size-cells. They need to be 3 and 2 accordingly. However, in ofnode_read_pci_addr()
608 addr->phys_hi = fdt32_to_cpu(cell[0]); in ofnode_read_pci_addr()
609 addr->phys_mid = fdt32_to_cpu(cell[1]); in ofnode_read_pci_addr()
610 addr->phys_lo = fdt32_to_cpu(cell[1]); in ofnode_read_pci_addr()
619 ret = -ENXIO; in ofnode_read_pci_addr()
626 ret = -EINVAL; in ofnode_read_pci_addr()
640 return -ENOENT; in ofnode_read_pci_vendev()
666 return -ENOENT; in ofnode_read_pci_vendev()
674 return fdt_address_cells(gd->fdt_blob, ofnode_to_offset(node)); in ofnode_read_addr_cells()
682 return fdt_size_cells(gd->fdt_blob, ofnode_to_offset(node)); in ofnode_read_size_cells()
690 return fdt_address_cells(gd->fdt_blob, ofnode_to_offset(node)); in ofnode_read_simple_addr_cells()
698 return fdt_size_cells(gd->fdt_blob, ofnode_to_offset(node)); in ofnode_read_simple_size_cells()
703 if (ofnode_read_bool(node, "u-boot,dm-pre-reloc")) in ofnode_pre_reloc()
705 if (ofnode_read_bool(node, "u-boot,dm-pre-proper")) in ofnode_pre_reloc()
709 if (ofnode_read_bool(node, "u-boot,dm-tpl")) in ofnode_pre_reloc()
712 if (ofnode_read_bool(node, "u-boot,dm-spl")) in ofnode_pre_reloc()
717 * count as handled pre-relocation for later second init. in ofnode_pre_reloc()
719 if (ofnode_read_bool(node, "u-boot,dm-spl") || in ofnode_pre_reloc()
720 ofnode_read_bool(node, "u-boot,dm-tpl")) in ofnode_pre_reloc()
735 ret = fdt_get_resource(gd->fdt_blob, ofnode_to_offset(node), in ofnode_read_resource()
738 return -EINVAL; in ofnode_read_resource()
740 res->start = fres.start; in ofnode_read_resource()
741 res->end = fres.end; in ofnode_read_resource()
752 index = ofnode_stringlist_search(node, "reg-names", name); in ofnode_read_resource_byname()
764 return fdt_translate_address(gd->fdt_blob, ofnode_to_offset(node), in_addr); in ofnode_translate_address()
773 return !fdt_node_check_compatible(gd->fdt_blob, in ofnode_device_is_compatible()
786 gd->fdt_blob, ofnode_to_offset(from), compat)); in ofnode_by_compatible()
799 gd->fdt_blob, ofnode_to_offset(from), in ofnode_by_prop_value()
808 struct property *pp; in ofnode_write_prop()
809 struct property *pp_last = NULL; in ofnode_write_prop()
810 struct property *new; in ofnode_write_prop()
813 return -ENOSYS; in ofnode_write_prop()
816 return -EINVAL; in ofnode_write_prop()
818 for (pp = np->properties; pp; pp = pp->next) { in ofnode_write_prop()
819 if (strcmp(pp->name, propname) == 0) { in ofnode_write_prop()
820 /* Property exists -> change value */ in ofnode_write_prop()
821 pp->value = (void *)value; in ofnode_write_prop()
822 pp->length = len; in ofnode_write_prop()
829 return -ENOENT; in ofnode_write_prop()
831 /* Property does not exist -> append new property */ in ofnode_write_prop()
832 new = malloc(sizeof(struct property)); in ofnode_write_prop()
834 return -ENOMEM; in ofnode_write_prop()
836 new->name = strdup(propname); in ofnode_write_prop()
837 if (!new->name) { in ofnode_write_prop()
839 return -ENOMEM; in ofnode_write_prop()
842 new->value = (void *)value; in ofnode_write_prop()
843 new->length = len; in ofnode_write_prop()
844 new->next = NULL; in ofnode_write_prop()
846 pp_last->next = new; in ofnode_write_prop()
854 return -ENOSYS; in ofnode_write_string()
866 return -ENOSYS; in ofnode_set_enabled()