10ac2a08fSDmitry Baryshkov /* SPDX-License-Identifier: GPL-2.0 */ 20ac2a08fSDmitry Baryshkov /* 30ac2a08fSDmitry Baryshkov * Copyright (c) 2023, Linaro Ltd. 40ac2a08fSDmitry Baryshkov */ 50ac2a08fSDmitry Baryshkov 60ac2a08fSDmitry Baryshkov #ifndef __LINUX_INTERCONNECT_CLK_H 70ac2a08fSDmitry Baryshkov #define __LINUX_INTERCONNECT_CLK_H 80ac2a08fSDmitry Baryshkov 90ac2a08fSDmitry Baryshkov struct device; 100ac2a08fSDmitry Baryshkov 110ac2a08fSDmitry Baryshkov struct icc_clk_data { 120ac2a08fSDmitry Baryshkov struct clk *clk; 130ac2a08fSDmitry Baryshkov const char *name; 14*f45b94ffSVaradarajan Narayanan unsigned int master_id; 15*f45b94ffSVaradarajan Narayanan unsigned int slave_id; 160ac2a08fSDmitry Baryshkov }; 170ac2a08fSDmitry Baryshkov 180ac2a08fSDmitry Baryshkov struct icc_provider *icc_clk_register(struct device *dev, 190ac2a08fSDmitry Baryshkov unsigned int first_id, 200ac2a08fSDmitry Baryshkov unsigned int num_clocks, 210ac2a08fSDmitry Baryshkov const struct icc_clk_data *data); 220ac2a08fSDmitry Baryshkov void icc_clk_unregister(struct icc_provider *provider); 230ac2a08fSDmitry Baryshkov 240ac2a08fSDmitry Baryshkov #endif 25