xref: /rk3399_rockchip-uboot/drivers/core/util.c (revision 27326c7ee269ff351bba8c2461e19f29d66b6a3a)
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>
8*27326c7eSHeiko 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 }
39*27326c7eSHeiko Stübner 
40*27326c7eSHeiko Stübner int dm_fdt_pre_reloc(const void *blob, int offset)
41*27326c7eSHeiko Stübner {
42*27326c7eSHeiko Stübner 	if (fdt_getprop(blob, offset, "u-boot,dm-pre-reloc", NULL))
43*27326c7eSHeiko Stübner 		return 1;
44*27326c7eSHeiko Stübner 
45*27326c7eSHeiko Stübner #ifdef CONFIG_TPL_BUILD
46*27326c7eSHeiko Stübner 	if (fdt_getprop(blob, offset, "u-boot,dm-tpl", NULL))
47*27326c7eSHeiko Stübner 		return 1;
48*27326c7eSHeiko Stübner #elif defined(CONFIG_SPL_BUILD)
49*27326c7eSHeiko Stübner 	if (fdt_getprop(blob, offset, "u-boot,dm-spl", NULL))
50*27326c7eSHeiko Stübner 		return 1;
51*27326c7eSHeiko Stübner #else
52*27326c7eSHeiko Stübner 	/*
53*27326c7eSHeiko Stübner 	 * In regular builds individual spl and tpl handling both
54*27326c7eSHeiko Stübner 	 * count as handled pre-relocation for later second init.
55*27326c7eSHeiko Stübner 	 */
56*27326c7eSHeiko Stübner 	if (fdt_getprop(blob, offset, "u-boot,dm-spl", NULL) ||
57*27326c7eSHeiko Stübner 	    fdt_getprop(blob, offset, "u-boot,dm-tpl", NULL))
58*27326c7eSHeiko Stübner 		return 1;
59*27326c7eSHeiko Stübner #endif
60*27326c7eSHeiko Stübner 
61*27326c7eSHeiko Stübner 	return 0;
62*27326c7eSHeiko Stübner }
63