From 3058e283b885d80fbaaaaed6f597a068188be948 Mon Sep 17 00:00:00 2001 From: Marek BehĂșn Date: Thu, 20 Jan 2022 01:04:42 +0100 Subject: fdt_support: Add fdt_for_each_node_by_compatible() helper macro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add macro fdt_for_each_node_by_compatible() to allow iterating over fdt nodes by compatible string. Convert various usages of off = fdt_node_offset_by_compatible(fdt, start, compat); while (off > 0) { code(); off = fdt_node_offset_by_compatible(fdt, off, compat); } and similar, to fdt_for_each_node_by_compatible(off, fdt, start, compat) code(); Signed-off-by: Marek BehĂșn Reviewed-by: Stefan Roese Reviewed-by: Simon Glass --- include/fdt_support.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include') diff --git a/include/fdt_support.h b/include/fdt_support.h index 8ec461af6c3..852040f66f4 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -289,6 +289,12 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat, phys_addr_t compat_off); int fdt_node_offset_by_pathf(void *blob, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); + +#define fdt_for_each_node_by_compatible(node, fdt, start, compat) \ + for (node = fdt_node_offset_by_compatible(fdt, start, compat); \ + node >= 0; \ + node = fdt_node_offset_by_compatible(fdt, node, compat)) + int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle); unsigned int fdt_create_phandle(void *fdt, int nodeoffset); unsigned int fdt_create_phandle_by_compatible(void *fdt, const char *compat); -- cgit v1.3.1