Merge branch 'next' of git://git.denx.de/u-boot-video
[oweals/u-boot.git] / include / dm / util.h
1 /*
2  * Copyright (c) 2013 Google, Inc
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6
7 #ifndef __DM_UTIL_H
8 #define __DM_UTIL_H
9
10 #ifdef CONFIG_DM_WARN
11 void dm_warn(const char *fmt, ...);
12 #else
13 static inline void dm_warn(const char *fmt, ...)
14 {
15 }
16 #endif
17
18 #ifdef DEBUG
19 void dm_dbg(const char *fmt, ...);
20 #else
21 static inline void dm_dbg(const char *fmt, ...)
22 {
23 }
24 #endif
25
26 struct list_head;
27
28 /**
29  * list_count_items() - Count number of items in a list
30  *
31  * @param head:         Head of list
32  * @return number of items, or 0 if empty
33  */
34 int list_count_items(struct list_head *head);
35
36 /* Dump out a tree of all devices */
37 void dm_dump_all(void);
38
39 /* Dump out a list of uclasses and their devices */
40 void dm_dump_uclass(void);
41
42 #ifdef CONFIG_DEBUG_DEVRES
43 /* Dump out a list of device resources */
44 void dm_dump_devres(void);
45 #else
46 static inline void dm_dump_devres(void)
47 {
48 }
49 #endif
50
51 /**
52  * Check if a dt node should be or was bound before relocation.
53  *
54  * Devicetree nodes can be marked as needed to be bound
55  * in the loader stages via special devicetree properties.
56  *
57  * Before relocation this function can be used to check if nodes
58  * are required in either SPL or TPL stages.
59  *
60  * After relocation and jumping into the real U-Boot binary
61  * it is possible to determine if a node was bound in one of
62  * SPL/TPL stages.
63  *
64  * There are 3 settings currently in use
65  * -
66  * - u-boot,dm-pre-reloc: legacy and indicates any of TPL or SPL
67  *   Existing platforms only use it to indicate nodes needee in
68  *   SPL. Should probably be replaced by u-boot,dm-spl for
69  *   existing platforms.
70  * @blob: devicetree
71  * @offset: node offset
72  *
73  * Returns true if node is needed in SPL/TL, false otherwise.
74  */
75 bool dm_fdt_pre_reloc(const void *blob, int offset);
76
77 #endif