OF_finddevice
—
find node in device tree
OF_finddevice
() returns the phandle for the node
specified by the path. Returns -1 if the path cannot be
found in the tree.
phandle_t root, i2c;
root = OF_finddevice("/");
i2c = OF_finddevice("/soc/axi/i2c@a0e0000");
if (i2c != -1) {
...
}
The return value should only be checked with equality operators (equal to, not
equal to) and not relational comparison (less than, greater than ). There is a
discrepancy between IEEE 1275 standard and FreeBSD's
internal representation of a phandle: IEEE 1275 requires the return value of
this function to be -1 if the path is not found. But phandle_t is an unsigned
type, so it cannot be relationally compared with -1 or 0, this comparison is
always true or always false.