OF_DEVICE_FROM_XREF(9) | Kernel Developer's Manual | OF_DEVICE_FROM_XREF(9) |
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 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.
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); }
This manual page was written by Oleksandr Tymoshenko <gonzo@FreeBSD.org>.
April 9, 2018 | Debian |