1*0ac2a08fSDmitry Baryshkov /* SPDX-License-Identifier: GPL-2.0 */
2*0ac2a08fSDmitry Baryshkov /*
3*0ac2a08fSDmitry Baryshkov  * Copyright (c) 2023, Linaro Ltd.
4*0ac2a08fSDmitry Baryshkov  */
5*0ac2a08fSDmitry Baryshkov 
6*0ac2a08fSDmitry Baryshkov #ifndef __LINUX_INTERCONNECT_CLK_H
7*0ac2a08fSDmitry Baryshkov #define __LINUX_INTERCONNECT_CLK_H
8*0ac2a08fSDmitry Baryshkov 
9*0ac2a08fSDmitry Baryshkov struct device;
10*0ac2a08fSDmitry Baryshkov 
11*0ac2a08fSDmitry Baryshkov struct icc_clk_data {
12*0ac2a08fSDmitry Baryshkov 	struct clk *clk;
13*0ac2a08fSDmitry Baryshkov 	const char *name;
14*0ac2a08fSDmitry Baryshkov };
15*0ac2a08fSDmitry Baryshkov 
16*0ac2a08fSDmitry Baryshkov struct icc_provider *icc_clk_register(struct device *dev,
17*0ac2a08fSDmitry Baryshkov 				      unsigned int first_id,
18*0ac2a08fSDmitry Baryshkov 				      unsigned int num_clocks,
19*0ac2a08fSDmitry Baryshkov 				      const struct icc_clk_data *data);
20*0ac2a08fSDmitry Baryshkov void icc_clk_unregister(struct icc_provider *provider);
21*0ac2a08fSDmitry Baryshkov 
22*0ac2a08fSDmitry Baryshkov #endif
23