OF_device_from_xref,
OF_xref_from_device,
OF_device_register_xref —
manage mappings between xrefs and devices
#include
<dev/ofw/ofw_bus.h>
#include
<dev/ofw/ofw_bus_subr.h>
int
OF_device_register_xref(
phandle_t
xref,
device_t
dev);
device_t
OF_device_from_xref(
phandle_t
xref);
phandle_t
OF_xref_from_device(
device_t
dev);
When device tree node references another node, the driver may need to get device
associated with the referenced node. For instance, ethernet driver accessing
PHY device. To make this possible, the kernel maintains the table that maps
effective handles to device_t instances.
OF_device_register_xref() adds map entry from
effective phandle
xref to device
dev. If mapping entry for
xref already exists, it is replaced with new
one. The function always returns 0.
OF_device_from_xref() returns device_t instance
associated with effective phandle
xref. If no
such mapping exists, the function returns NULL.
OF_xref_from_device() returns effective phandle
associated with device
dev. If no such
mapping exists the function returns 0.
static int
acmephy_attach(device_t dev)
{
phandle_t node;
/* PHY node is referenced from eth device, register it */
node = ofw_bus_get_node(dev);
OF_device_register_xref(OF_xref_from_node(node), dev);
return (0);
}
OF_node_to_xref(9)
This manual page was written by
Oleksandr
Tymoshenko
<
gonzo@FreeBSD.org>.