summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-09-07 05:27:01 +0300
committerTom Rini <trini@konsulko.com>2022-09-29 23:07:58 +0300
commit5ecba3ba40cebd5e4340f6fd422683bde773689c (patch)
tree712c4dd8055d554742d0dffad74790ec5d6b1be2 /include
parent62d638386c17d17b929ad10956c7f60825335a4e (diff)
downloadu-boot-5ecba3ba40cebd5e4340f6fd422683bde773689c.tar.xz
dm: core: Document the livetree structures properly
Clarify the data structure so it is easier for people to understand, particularly the corner cases. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/dm/of.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/include/dm/of.h b/include/dm/of.h
index 9c9065b793..fce7cef0ff 100644
--- a/include/dm/of.h
+++ b/include/dm/of.h
@@ -31,10 +31,21 @@ struct property {
/**
* struct device_node: Device tree node
*
- * @name: Node name
+ * The top of this tree is typically gd->of_root which points to the root node.
+ *
+ * The head of the list of children for the root node (and any other node) is
+ * in @child, with @sibling providing a link to the next child.
+ *
+ * Each child has a pointer to its parent in @parent.
+ *
+ * A node may have properties in which case the head of the list of properties
+ * @properties pointers to the first one, with struct property->@next pointing
+ * to the next one.
+ *
+ * @name: Node name, "" for the root node
* @type: Node type (value of device_type property) or "<NULL>" if none
* @phandle: Phandle value of this none, or 0 if none
- * @full_name: Full path to node, e.g. "/bus@1/spi@1100"
+ * @full_name: Full path to node, e.g. "/bus@1/spi@1100" ("/" for the root node)
* @properties: Pointer to head of list of properties, or NULL if none
* @parent: Pointer to parent node, or NULL if this is the root node
* @child: Pointer to head of child node list, or NULL if no children