xref: /linux/include/linux/interconnect-clk.h (revision f45b94ffc5f1204b35b5c695ed265b1385951616)
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