Command Section

OF_NODE_FROM_XREF(9)   FreeBSD Kernel Developer's Manual  OF_NODE_FROM_XREF(9)

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>.

FreeBSD 13.1-RELEASE-p6          April 9, 2018         FreeBSD 13.1-RELEASE-p6

Command Section

man2web Home...