dm: core: Add operations on device tree references
authorSimon Glass <sjg@chromium.org>
Fri, 19 May 2017 02:08:58 +0000 (20:08 -0600)
committerSimon Glass <sjg@chromium.org>
Thu, 1 Jun 2017 13:03:07 +0000 (07:03 -0600)
commit9e51204527dcae59a326c51a71c9b80effd8db05
tree6e910da639b0107eb76e050ea5619fe0abe7e4b6
parent911f3aef357ca02ac0d06fdce6a7a3081594f272
dm: core: Add operations on device tree references

Since U-Boot supports both a live tree and a flat tree, we need an easy
way to access the tree without worrying about which is currently active.
To support this, U-Boot has the concept of an ofnode, which can refer
either to a live tree node or a flat tree node.

For the live tree, the reference contains a pointer to the node (struct
device_node *) or NULL if the node is invalid. For the flat tree, the
reference contains the node offset or -1 if the node is invalid.

Add a basic set of operations using ofnodes. These are implemented by
using either libfdt functions (in the case of a flat DT reference) or
the live-tree of_...() functions.

Note that it is not possible to have both live and flat references active
at the same time. As soon as the live tree is available, everything in
U-Boot should switch to using that. This avoids confusion and allows us to
assume that the type of a reference is simply based on whether we have a
live tree yet, or not.

Signed-off-by: Simon Glass <sjg@chromium.org>
drivers/core/Makefile
drivers/core/ofnode.c [new file with mode: 0644]
include/dm/ofnode.h