xref: /rk3399_rockchip-uboot/drivers/core/util.c (revision d905cf7365ad25c55129ce6bc473b67a642d7817)
16494d708SSimon Glass /*
26494d708SSimon Glass  * Copyright (c) 2013 Google, Inc
36494d708SSimon Glass  *
46494d708SSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
56494d708SSimon Glass  */
66494d708SSimon Glass 
76494d708SSimon Glass #include <common.h>
827326c7eSHeiko Stübner #include <libfdt.h>
96494d708SSimon Glass #include <vsprintf.h>
106494d708SSimon Glass 
116494d708SSimon Glass void dm_warn(const char *fmt, ...)
126494d708SSimon Glass {
136494d708SSimon Glass 	va_list args;
146494d708SSimon Glass 
156494d708SSimon Glass 	va_start(args, fmt);
166494d708SSimon Glass 	vprintf(fmt, args);
176494d708SSimon Glass 	va_end(args);
186494d708SSimon Glass }
196494d708SSimon Glass 
206494d708SSimon Glass void dm_dbg(const char *fmt, ...)
216494d708SSimon Glass {
226494d708SSimon Glass 	va_list args;
236494d708SSimon Glass 
246494d708SSimon Glass 	va_start(args, fmt);
256494d708SSimon Glass 	vprintf(fmt, args);
266494d708SSimon Glass 	va_end(args);
276494d708SSimon Glass }
286494d708SSimon Glass 
296494d708SSimon Glass int list_count_items(struct list_head *head)
306494d708SSimon Glass {
316494d708SSimon Glass 	struct list_head *node;
326494d708SSimon Glass 	int count = 0;
336494d708SSimon Glass 
346494d708SSimon Glass 	list_for_each(node, head)
356494d708SSimon Glass 		count++;
366494d708SSimon Glass 
376494d708SSimon Glass 	return count;
386494d708SSimon Glass }
3927326c7eSHeiko Stübner 
40*d905cf73SHeiko Stübner bool dm_fdt_pre_reloc(const void *blob, int offset)
4127326c7eSHeiko Stübner {
4227326c7eSHeiko Stübner 	if (fdt_getprop(blob, offset, "u-boot,dm-pre-reloc", NULL))
43*d905cf73SHeiko Stübner 		return true;
4427326c7eSHeiko Stübner 
4527326c7eSHeiko Stübner #ifdef CONFIG_TPL_BUILD
4627326c7eSHeiko Stübner 	if (fdt_getprop(blob, offset, "u-boot,dm-tpl", NULL))
47*d905cf73SHeiko Stübner 		return true;
4827326c7eSHeiko Stübner #elif defined(CONFIG_SPL_BUILD)
4927326c7eSHeiko Stübner 	if (fdt_getprop(blob, offset, "u-boot,dm-spl", NULL))
50*d905cf73SHeiko Stübner 		return true;
5127326c7eSHeiko Stübner #else
5227326c7eSHeiko Stübner 	/*
5327326c7eSHeiko Stübner 	 * In regular builds individual spl and tpl handling both
5427326c7eSHeiko Stübner 	 * count as handled pre-relocation for later second init.
5527326c7eSHeiko Stübner 	 */
5627326c7eSHeiko Stübner 	if (fdt_getprop(blob, offset, "u-boot,dm-spl", NULL) ||
5727326c7eSHeiko Stübner 	    fdt_getprop(blob, offset, "u-boot,dm-tpl", NULL))
58*d905cf73SHeiko Stübner 		return true;
5927326c7eSHeiko Stübner #endif
6027326c7eSHeiko Stübner 
61*d905cf73SHeiko Stübner 	return false;
6227326c7eSHeiko Stübner }
63