OF_device_from_xref, OF_xref_from_device, OF_device_register_xref — manage mappings between xrefs and
Contents
Description
When a device tree node references another node, the driver may need to get a device_t instance
associated with the referenced node. For instance, an Ethernet driver accessing a PHY device. To make
this possible, the kernel maintains a table that maps effective handles to device_t instances.
OF_device_register_xref() adds a map entry from the effective phandle xref to device dev. If a mapping
entry for xref already exists, it is replaced with the new one. The function always returns 0.
OF_device_from_xref() returns a device_t instance associated with the effective phandle xref. If no such
mapping exists, the function returns NULL.
OF_xref_from_device() returns the effective phandle associated with the device dev. If no such mapping
exists, the function returns 0.
Examples
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);
}
Name
OF_device_from_xref, OF_xref_from_device, OF_device_register_xref — manage mappings between xrefs and
devices
See Also
OF_node_to_xref(9)
Synopsis
#include<dev/ofw/ofw_bus.h>#include<dev/ofw/ofw_bus_subr.h>intOF_device_register_xref(phandle_txref, device_tdev);
device_tOF_device_from_xref(phandle_txref);
phandle_tOF_xref_from_device(device_tdev);
