Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
OF_NODE_FROM_XREF(9)	 BSD 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 prop-
     erty 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 ker-
     nel 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 conver-
     sion 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>.

BSD				 April 9, 2018				   BSD

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=OF_node_from_xref&sektion=9&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help