1*b4529379SAngeloGioacchino Del Regno /* SPDX-License-Identifier: GPL-2.0 */ 2*b4529379SAngeloGioacchino Del Regno /* 3*b4529379SAngeloGioacchino Del Regno * Copyright (c) 2021 MediaTek Inc. 4*b4529379SAngeloGioacchino Del Regno * Copyright (c) 2024 Collabora Ltd. 5*b4529379SAngeloGioacchino Del Regno * AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 6*b4529379SAngeloGioacchino Del Regno */ 7*b4529379SAngeloGioacchino Del Regno 8*b4529379SAngeloGioacchino Del Regno #ifndef __DRIVERS_INTERCONNECT_MEDIATEK_ICC_EMI_H 9*b4529379SAngeloGioacchino Del Regno #define __DRIVERS_INTERCONNECT_MEDIATEK_ICC_EMI_H 10*b4529379SAngeloGioacchino Del Regno 11*b4529379SAngeloGioacchino Del Regno /** 12*b4529379SAngeloGioacchino Del Regno * struct mtk_icc_node - Mediatek EMI Interconnect Node 13*b4529379SAngeloGioacchino Del Regno * @name: The interconnect node name which is shown in debugfs 14*b4529379SAngeloGioacchino Del Regno * @ep: Type of this endpoint 15*b4529379SAngeloGioacchino Del Regno * @id: Unique node identifier 16*b4529379SAngeloGioacchino Del Regno * @sum_avg: Current sum aggregate value of all average bw requests in kBps 17*b4529379SAngeloGioacchino Del Regno * @max_peak: Current max aggregate value of all peak bw requests in kBps 18*b4529379SAngeloGioacchino Del Regno * @num_links: The total number of @links 19*b4529379SAngeloGioacchino Del Regno * @links: Array of @id linked to this node 20*b4529379SAngeloGioacchino Del Regno */ 21*b4529379SAngeloGioacchino Del Regno struct mtk_icc_node { 22*b4529379SAngeloGioacchino Del Regno unsigned char *name; 23*b4529379SAngeloGioacchino Del Regno int ep; 24*b4529379SAngeloGioacchino Del Regno u16 id; 25*b4529379SAngeloGioacchino Del Regno u64 sum_avg; 26*b4529379SAngeloGioacchino Del Regno u64 max_peak; 27*b4529379SAngeloGioacchino Del Regno 28*b4529379SAngeloGioacchino Del Regno u16 num_links; 29*b4529379SAngeloGioacchino Del Regno u16 links[] __counted_by(num_links); 30*b4529379SAngeloGioacchino Del Regno }; 31*b4529379SAngeloGioacchino Del Regno 32*b4529379SAngeloGioacchino Del Regno struct mtk_icc_desc { 33*b4529379SAngeloGioacchino Del Regno struct mtk_icc_node **nodes; 34*b4529379SAngeloGioacchino Del Regno size_t num_nodes; 35*b4529379SAngeloGioacchino Del Regno }; 36*b4529379SAngeloGioacchino Del Regno 37*b4529379SAngeloGioacchino Del Regno int mtk_emi_icc_probe(struct platform_device *pdev); 38*b4529379SAngeloGioacchino Del Regno void mtk_emi_icc_remove(struct platform_device *pdev); 39*b4529379SAngeloGioacchino Del Regno 40*b4529379SAngeloGioacchino Del Regno #endif /* __DRIVERS_INTERCONNECT_MEDIATEK_ICC_EMI_H */ 41