xref: /linux/include/linux/interconnect-clk.h (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
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;
14f45b94ffSVaradarajan Narayanan 	unsigned int master_id;
15f45b94ffSVaradarajan 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);
22*d3153113SVaradarajan Narayanan int devm_icc_clk_register(struct device *dev, unsigned int first_id,
23*d3153113SVaradarajan Narayanan 			  unsigned int num_clocks, const struct icc_clk_data *data);
240ac2a08fSDmitry Baryshkov void icc_clk_unregister(struct icc_provider *provider);
250ac2a08fSDmitry Baryshkov 
260ac2a08fSDmitry Baryshkov #endif
27