1 #include <linux/init.h>
2 #include <linux/device.h>
3 #include <linux/kernel.h>
5 #include <linux/of_address.h>
8 static bool find_by_address(u64 base_address
)
10 struct device_node
*dn
= of_find_all_nodes(NULL
);
14 if (of_can_translate_address(dn
)
15 && !of_address_to_resource(dn
, 0, &res
)) {
16 if (res
.start
== base_address
) {
21 dn
= of_find_all_nodes(dn
);
27 bool __init
board_staging_dt_node_available(const struct resource
*resource
,
28 unsigned int num_resources
)
32 for (i
= 0; i
< num_resources
; i
++) {
33 const struct resource
*r
= resource
+ i
;
35 if (resource_type(r
) == IORESOURCE_MEM
)
36 if (find_by_address(r
->start
))
37 return true; /* DT node available */
40 return false; /* Nothing found */