xref: /linux/include/linux/interconnect-clk.h (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (c) 2023, Linaro Ltd.
4  */
5 
6 #ifndef __LINUX_INTERCONNECT_CLK_H
7 #define __LINUX_INTERCONNECT_CLK_H
8 
9 struct device;
10 
11 struct icc_clk_data {
12 	struct clk *clk;
13 	const char *name;
14 	unsigned int master_id;
15 	unsigned int slave_id;
16 };
17 
18 struct icc_provider *icc_clk_register(struct device *dev,
19 				      unsigned int first_id,
20 				      unsigned int num_clocks,
21 				      const struct icc_clk_data *data);
22 int devm_icc_clk_register(struct device *dev, unsigned int first_id,
23 			  unsigned int num_clocks, const struct icc_clk_data *data);
24 void icc_clk_unregister(struct icc_provider *provider);
25 
26 #endif
27