Lines Matching refs:fdt
27 const struct dt_driver *dt_find_compatible_driver(const void *fdt, int offs) in dt_find_compatible_driver() argument
37 if (!fdt_node_check_compatible(fdt, offs, in dt_find_compatible_driver()
47 bool dt_have_prop(const void *fdt, int offs, const char *propname) in dt_have_prop() argument
51 prop = fdt_getprop(fdt, offs, propname, NULL); in dt_have_prop()
56 int dt_disable_status(void *fdt, int node) in dt_disable_status() argument
61 prop = fdt_getprop(fdt, node, "status", &len); in dt_disable_status()
63 if (fdt_setprop_string(fdt, node, "status", "disabled")) in dt_disable_status()
80 if (fdt_setprop_inplace(fdt, node, "status", "disabled", len)) in dt_disable_status()
87 int dt_enable_secure_status(void *fdt, int node) in dt_enable_secure_status() argument
89 if (dt_disable_status(fdt, node)) { in dt_enable_secure_status()
94 if (fdt_setprop_string(fdt, node, "secure-status", "okay")) in dt_enable_secure_status()
100 int dt_map_dev(const void *fdt, int offs, vaddr_t *base, size_t *size, in dt_map_dev() argument
111 st = fdt_get_status(fdt, offs); in dt_map_dev()
115 if (fdt_reg_info(fdt, offs, &pbase, &sz)) in dt_map_dev()
193 int fdt_get_reg_props_by_index(const void *fdt, int offs, int index, in fdt_get_reg_props_by_index() argument
206 reg = (const uint32_t *)fdt_getprop(fdt, offs, "reg", &len); in fdt_get_reg_props_by_index()
210 if (fdt_find_cached_parent_reg_cells(fdt, offs, &addr_ncells, in fdt_get_reg_props_by_index()
212 parent = fdt_parent_offset(fdt, offs); in fdt_get_reg_props_by_index()
216 addr_ncells = fdt_address_cells(fdt, parent); in fdt_get_reg_props_by_index()
220 size_ncells = fdt_size_cells(fdt, parent); in fdt_get_reg_props_by_index()
250 int fdt_reg_info(const void *fdt, int offs, paddr_t *base, size_t *size) in fdt_reg_info() argument
252 return fdt_get_reg_props_by_index(fdt, offs, 0, base, size); in fdt_reg_info()
255 paddr_t fdt_reg_base_address(const void *fdt, int offs) in fdt_reg_base_address() argument
259 if (fdt_reg_info(fdt, offs, &base, NULL)) in fdt_reg_base_address()
265 size_t fdt_reg_size(const void *fdt, int offs) in fdt_reg_size() argument
269 if (fdt_reg_info(fdt, offs, NULL, &size)) in fdt_reg_size()
280 int fdt_get_status(const void *fdt, int offs) in fdt_get_status() argument
286 prop = fdt_getprop(fdt, offs, "status", &len); in fdt_get_status()
292 prop = fdt_getprop(fdt, offs, "secure-status", &len); in fdt_get_status()
308 void fdt_fill_device_info(const void *fdt, struct dt_node_info *info, int offs) in fdt_fill_device_info() argument
320 fdt_reg_info(fdt, offs, &dinfo.reg, &dinfo.reg_size); in fdt_fill_device_info()
322 cuint = fdt_getprop(fdt, offs, "clocks", NULL); in fdt_fill_device_info()
328 cuint = fdt_getprop(fdt, offs, "resets", NULL); in fdt_fill_device_info()
334 dinfo.interrupt = dt_get_irq_type_prio(fdt, offs, &dinfo.type, in fdt_fill_device_info()
337 dinfo.status = fdt_get_status(fdt, offs); in fdt_fill_device_info()
342 int fdt_read_uint32_array(const void *fdt, int node, const char *prop_name, in fdt_read_uint32_array() argument
349 cuint = fdt_getprop(fdt, node, prop_name, &len); in fdt_read_uint32_array()
365 int fdt_read_uint32_index(const void *fdt, int node, const char *prop_name, in fdt_read_uint32_index() argument
371 cuint = fdt_getprop(fdt, node, prop_name, &len); in fdt_read_uint32_index()
383 int fdt_read_uint32(const void *fdt, int node, const char *prop_name, in fdt_read_uint32() argument
386 return fdt_read_uint32_array(fdt, node, prop_name, value, 1); in fdt_read_uint32()
389 uint32_t fdt_read_uint32_default(const void *fdt, int node, in fdt_read_uint32_default() argument
394 fdt_read_uint32_index(fdt, node, prop_name, 0, &ret); in fdt_read_uint32_default()
399 int fdt_get_reg_props_by_name(const void *fdt, int node, const char *name, in fdt_get_reg_props_by_name() argument
404 index = fdt_stringlist_search(fdt, node, "reg-names", name); in fdt_get_reg_props_by_name()
408 return fdt_get_reg_props_by_index(fdt, node, index, base, size); in fdt_get_reg_props_by_name()
411 int dt_getprop_as_number(const void *fdt, int nodeoffset, const char *name, in dt_getprop_as_number() argument
417 prop = fdt_getprop(fdt, nodeoffset, name, &len); in dt_getprop_as_number()
435 void *fdt = get_embedded_dt(); in get_dt() local
437 if (!fdt) in get_dt()
438 fdt = get_external_dt(); in get_dt()
440 if (!fdt) in get_dt()
441 fdt = get_manifest_dt(); in get_dt()
443 return fdt; in get_dt()
448 void *fdt = get_embedded_dt(); in get_secure_dt() local
450 if (!fdt && IS_ENABLED(CFG_MAP_EXT_DT_SECURE)) in get_secure_dt()
451 fdt = get_external_dt(); in get_secure_dt()
453 if (!fdt) in get_secure_dt()
454 fdt = get_manifest_dt(); in get_secure_dt()
456 return fdt; in get_secure_dt()
490 const void *fdt; member
495 static bool fdt_node_info_are_cached(const void *fdt) in fdt_node_info_are_cached() argument
497 return dt_node_cache && dt_node_cache->fdt == fdt; in fdt_node_info_are_cached()
500 static struct cached_node *find_cached_parent_node(const void *fdt, in find_cached_parent_node() argument
506 if (!fdt_node_info_are_cached(fdt)) in find_cached_parent_node()
516 int fdt_find_cached_parent_node(const void *fdt, int node_offset, in fdt_find_cached_parent_node() argument
521 cell = find_cached_parent_node(fdt, node_offset); in fdt_find_cached_parent_node()
530 int fdt_find_cached_parent_reg_cells(const void *fdt, int node_offset, in fdt_find_cached_parent_reg_cells() argument
536 cell = find_cached_parent_node(fdt, node_offset); in fdt_find_cached_parent_reg_cells()
557 int fdt_find_cached_node_phandle(const void *fdt, uint32_t phandle, in fdt_find_cached_node_phandle() argument
563 if (!fdt_node_info_are_cached(fdt)) in fdt_find_cached_node_phandle()
616 .phandle = fdt_get_phandle(dt_node_cache->fdt, node_offset), in add_cached_node()
632 cuint = fdt_getprop(dt_node_cache->fdt, node_offset, "#address-cells", in add_cached_node_subtree()
637 cuint = fdt_getprop(dt_node_cache->fdt, node_offset, "#size-cells", in add_cached_node_subtree()
642 fdt_for_each_subnode(subnode_offset, dt_node_cache->fdt, node_offset) { in add_cached_node_subtree()
669 static void init_node_cache_info(const void *fdt) in init_node_cache_info() argument
677 dt_node_cache->fdt = fdt; in init_node_cache_info()
689 static void init_node_cache_info(const void *fdt __unused) in init_node_cache_info()
977 void init_manifest_dt(void *fdt, size_t max_size) in init_manifest_dt() argument
979 manifest_dt = fdt; in init_manifest_dt()
986 void *fdt = NULL; in reinit_manifest_dt() local
1008 fdt = core_mmu_add_mapping(MEM_AREA_MANIFEST_DT, pa, manifest_max_size); in reinit_manifest_dt()
1009 if (!fdt) in reinit_manifest_dt()
1012 manifest_dt = fdt; in reinit_manifest_dt()
1014 ret = fdt_check_full(fdt, manifest_max_size); in reinit_manifest_dt()
1051 void init_manifest_dt(void *fdt __unused, size_t max_size __unused) in init_manifest_dt()