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