Provided by: freebsd-manpages_12.2-1_all bug

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)