| /* SPDX-License-Identifier: GPL-2.0+ */ |
| /* |
| * Copyright (c) 2025 Svyatoslav Ryhel <clamor95@gmail.com> |
| */ |
| |
| #ifndef _DM_OFNODE_GRAPH_H |
| #define _DM_OFNODE_GRAPH_H |
| |
| #include <dm/of.h> |
| |
| /** |
| * ofnode_graph_get_endpoint_count() - get the number of endpoints in a device ofnode |
| * @parent: ofnode to the device containing ports and endpoints |
| * |
| * Return: count of endpoint of this device ofnode |
| */ |
| unsigned int ofnode_graph_get_endpoint_count(ofnode parent); |
| |
| /** |
| * ofnode_graph_get_port_count() - get the number of port in a device or ports ofnode |
| * @parent: ofnode to the device or ports node |
| * |
| * Return: count of port of this device or ports node |
| */ |
| unsigned int ofnode_graph_get_port_count(ofnode parent); |
| |
| /** |
| * ofnode_graph_get_port_by_id() - get the port matching a given id |
| * @parent: parent ofnode |
| * @id: id of the port |
| * |
| * Return: ofnode in given port. |
| */ |
| ofnode ofnode_graph_get_port_by_id(ofnode parent, u32 id); |
| |
| /** |
| * ofnode_graph_get_endpoint_by_regs() - get the endpoint matching a given id |
| * @parent: parent ofnode |
| * @reg_id: id of the port |
| * @id: id for the endpoint |
| * |
| * Return: ofnode in given endpoint or NULL if not found. |
| * reg and port_reg are ignored when they are -1. |
| */ |
| ofnode ofnode_graph_get_endpoint_by_regs(ofnode parent, u32 reg_id, u32 id); |
| |
| /** |
| * ofnode_graph_get_remote_endpoint() - get remote endpoint node |
| * @endoint: ofnode of a local endpoint |
| * |
| * Return: Remote endpoint ofnode linked with local endpoint. |
| */ |
| ofnode ofnode_graph_get_remote_endpoint(ofnode endpoint); |
| |
| /** |
| * ofnode_graph_get_port_parent() - get port's parent node |
| * @endpoint: ofnode of a local endpoint |
| * |
| * Return: device ofnode associated with endpoint |
| */ |
| ofnode ofnode_graph_get_port_parent(ofnode endpoint); |
| |
| /** |
| * ofnode_graph_get_remote_port_parent() - get remote port's parent ofnode |
| * @endoint: ofnode of a local endpoint |
| * |
| * Return: device ofnode associated with endpoint linked to local endpoint. |
| */ |
| ofnode ofnode_graph_get_remote_port_parent(ofnode endpoint); |
| |
| /** |
| * ofnode_graph_get_remote_port() - get remote port ofnode |
| * @endoint: ofnode of a local endpoint |
| * |
| * Return: port ofnode associated with remote endpoint node linked |
| * to local endpoint. |
| */ |
| ofnode ofnode_graph_get_remote_port(ofnode endpoint); |
| |
| /** |
| * ofnode_graph_get_remote_node() - get remote parent ofnode for given port/endpoint |
| * @parent: parent ofnode containing graph port/endpoint |
| * @port: identifier (value of reg property) of the parent port ofnode |
| * @endpoint: identifier (value of reg property) of the endpoint ofnode |
| * |
| * Return: device ofnode associated with endpoint linked to local endpoint. |
| */ |
| ofnode ofnode_graph_get_remote_node(ofnode parent, u32 port, u32 endpoint); |
| |
| #endif |