1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Interconnect framework internal structs 4 * 5 * Copyright (c) 2019, Linaro Ltd. 6 * Author: Georgi Djakov <georgi.djakov@linaro.org> 7 */ 8 9 #ifndef __DRIVERS_INTERCONNECT_INTERNAL_H 10 #define __DRIVERS_INTERCONNECT_INTERNAL_H 11 12 /** 13 * struct icc_req - constraints that are attached to each node 14 * @req_node: entry in list of requests for the particular @node 15 * @node: the interconnect node to which this constraint applies 16 * @dev: reference to the device that sets the constraints 17 * @tag: path tag (optional) 18 * @avg_bw: an integer describing the average bandwidth in kBps 19 * @peak_bw: an integer describing the peak bandwidth in kBps 20 */ 21 struct icc_req { 22 struct hlist_node req_node; 23 struct icc_node *node; 24 struct device *dev; 25 u32 tag; 26 u32 avg_bw; 27 u32 peak_bw; 28 }; 29 30 /** 31 * struct icc_path - interconnect path structure 32 * @name: a string name of the path (useful for ftrace) 33 * @num_nodes: number of hops (nodes) 34 * @reqs: array of the requests applicable to this path of nodes 35 */ 36 struct icc_path { 37 const char *name; 38 size_t num_nodes; 39 struct icc_req reqs[]; 40 }; 41 42 #endif 43