1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright (c) 2025 Svyatoslav Ryhel <clamor95@gmail.com> 4 */ 5 6 #ifndef _DM_OFNODE_GRAPH_H 7 #define _DM_OFNODE_GRAPH_H 8 9 #include <dm/of.h> 10 11 /** 12 * ofnode_graph_get_endpoint_count() - get the number of endpoints in a device ofnode 13 * @parent: ofnode to the device containing ports and endpoints 14 * 15 * Return: count of endpoint of this device ofnode 16 */ 17 unsigned int ofnode_graph_get_endpoint_count(ofnode parent); 18 19 /** 20 * ofnode_graph_get_port_count() - get the number of port in a device or ports ofnode 21 * @parent: ofnode to the device or ports node 22 * 23 * Return: count of port of this device or ports node 24 */ 25 unsigned int ofnode_graph_get_port_count(ofnode parent); 26 27 /** 28 * ofnode_graph_get_port_by_id() - get the port matching a given id 29 * @parent: parent ofnode 30 * @id: id of the port 31 * 32 * Return: ofnode in given port. 33 */ 34 ofnode ofnode_graph_get_port_by_id(ofnode parent, u32 id); 35 36 /** 37 * ofnode_graph_get_endpoint_by_regs() - get the endpoint matching a given id 38 * @parent: parent ofnode 39 * @reg_id: id of the port 40 * @id: id for the endpoint 41 * 42 * Return: ofnode in given endpoint or NULL if not found. 43 * reg and port_reg are ignored when they are -1. 44 */ 45 ofnode ofnode_graph_get_endpoint_by_regs(ofnode parent, u32 reg_id, u32 id); 46 47 /** 48 * ofnode_graph_get_remote_endpoint() - get remote endpoint node 49 * @endoint: ofnode of a local endpoint 50 * 51 * Return: Remote endpoint ofnode linked with local endpoint. 52 */ 53 ofnode ofnode_graph_get_remote_endpoint(ofnode endpoint); 54 55 /** 56 * ofnode_graph_get_port_parent() - get port's parent node 57 * @endpoint: ofnode of a local endpoint 58 * 59 * Return: device ofnode associated with endpoint 60 */ 61 ofnode ofnode_graph_get_port_parent(ofnode endpoint); 62 63 /** 64 * ofnode_graph_get_remote_port_parent() - get remote port's parent ofnode 65 * @endoint: ofnode of a local endpoint 66 * 67 * Return: device ofnode associated with endpoint linked to local endpoint. 68 */ 69 ofnode ofnode_graph_get_remote_port_parent(ofnode endpoint); 70 71 /** 72 * ofnode_graph_get_remote_port() - get remote port ofnode 73 * @endoint: ofnode of a local endpoint 74 * 75 * Return: port ofnode associated with remote endpoint node linked 76 * to local endpoint. 77 */ 78 ofnode ofnode_graph_get_remote_port(ofnode endpoint); 79 80 /** 81 * ofnode_graph_get_remote_node() - get remote parent ofnode for given port/endpoint 82 * @parent: parent ofnode containing graph port/endpoint 83 * @port: identifier (value of reg property) of the parent port ofnode 84 * @endpoint: identifier (value of reg property) of the endpoint ofnode 85 * 86 * Return: device ofnode associated with endpoint linked to local endpoint. 87 */ 88 ofnode ofnode_graph_get_remote_node(ofnode parent, u32 port, u32 endpoint); 89 90 #endif 91