Provided by: freebsd-manpages_12.0-1_all 

NAME
OF_node_from_xref, OF_xref_from_node — convert between kernel phandle and effective phandle
SYNOPSIS
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
phandle_t
OF_node_from_xref(phandle_t xref);
phandle_t
OF_xref_from_node(phandle_t node);
DESCRIPTION
Some OpenFirmware implementations (FDT, IBM) have a concept of effective phandle or xrefs. They are used
to cross-reference device tree nodes. For instance, a framebuffer controller may refer to a GPIO
controller and pin that controls the backlight. In this example, the GPIO node would have a cell (32-bit
integer) property with a reserved name like "phandle" or "linux,phandle" whose value uniquely identifies
the node. The actual name depends on the implementation. The framebuffer node would have a property
with the name described by device bindings (device-specific set of properties). It can be a cell
property or a combined property with one part of it being a cell. The value of the framebuffer node's
property would be the same as the value of the GPIO "phandle" property so it can be said that the
framebuffer node refers to the GPIO node. The kernel uses internal logic to assign unique identifiers to
the device tree nodes, and these values do not match the values of "phandle" properties.
OF_node_from_xref() and OF_xref_from_node() are used to perform conversion between these two kinds of
node identifiers.
OF_node_from_xref() returns the kernel phandle for the effective phandle xref. If one cannot be found or
the OpenFirmware implementation does not support effective phandles, the function returns the input
value.
OF_xref_from_xref() returns the effective phandle for the kernel phandle xref. If one cannot be found or
the OpenFirmware implementation does not support effective phandles, the function returns the input
value.
EXAMPLES
phandle_t panelnode, panelxref;
char *model;
if (OF_getencprop(node, "lcd-panel", &panelxref) <= 0)
return;
panelnode = OF_node_from_xref(panelxref);
if (OF_getprop_alloc(hdminode, "model", (void **)&model) <= 0)
return;
SEE ALSO
OF_device_from_xref(9) OF_device_register_xref(9)
AUTHORS
This manual page was written by Oleksandr Tymoshenko <gonzo@FreeBSD.org>.
Debian April 9, 2018 OF_NODE_FROM_XREF(9)