ofw_graph
,
ofw_graph_get_port_by_idx
,
ofw_graph_port_get_num_endpoints
,
ofw_graph_get_endpoint_by_idx
,
ofw_graph_get_remote_endpoint
,
ofw_graph_get_remote_parent
,
ofw_graph_get_device_by_port_ep
, —
Helpers for the graph bindings
#include <dev/ofw/openfirm.h>
#include <dev/ofw/ofw_graph.h>
phandle_t
ofw_graph_get_port_by_idx
(phandle_t
node, uint32_t
idx);
size_t
ofw_graph_port_get_num_endpoints
(phandle_t
port);
phandle_t
ofw_graph_get_endpoint_by_idx
(phandle_t
port, uint32_t
idx);
phandle_t
ofw_graph_get_remote_endpoint
(phandle_t
endpoint);
phandle_t
ofw_graph_get_remote_parent
(phandle_t
remote);
device_t
ofw_graph_get_device_by_port_ep
(phandle_t
node, uint32_t
port_id, uin32_t
ep_id);
The ofw_graph functions are helpers to parse the DTS graph bindings
ofw_graph_get_port_by_idx
() return the
port with id idx. It will first check node named
port@idx and then fallback on checking the
ports child for a child node matching the id. If no
ports matching idx is found the function return 0.
ofw_graph_port_get_num_endpoints
() returns
the number of endpoints a port node have.
ofw_graph_get_endpoint_by_idx
() return the
endpoint with id idx. It will first check if there is
a single child named endpoint and returns it if there
is. If there is multiple endpoints it will check the
reg property and returns the correct
phandle_t or 0 if none match.
ofw_graph_get_remote_endpoint
() returns
the remote-endpoint property if it exists or 0.
ofw_graph_get_remote_parent
() returns the
device node corresponding to the remote-endpoint
phandle or 0 if none.
ofw_graph_get_device_by_port_ep
() returns the device
associated with the port and endpoint or NULL if none.
The device driver should have called
OF_device_register_xref
() before.
The ofw_graph
functions first appeared in
FreeBSD 13.0. The ofw_graph
functions and manual page were written by Emmanuel
Vadot
<manu@FreeBSD.org>.