1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright 2013 Broadcom Corporation. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /* This API file is loosely based on u-boot/drivers/video/ipu.h and linux */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef __KONA_COMMON_CLK_H 10*4882a593Smuzhiyun #define __KONA_COMMON_CLK_H 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #include <linux/types.h> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun struct clk; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun /* Only implement required functions for your specific architecture */ 17*4882a593Smuzhiyun int clk_init(void); 18*4882a593Smuzhiyun struct clk *clk_get(const char *id); 19*4882a593Smuzhiyun int clk_enable(struct clk *clk); 20*4882a593Smuzhiyun void clk_disable(struct clk *clk); 21*4882a593Smuzhiyun unsigned long clk_get_rate(struct clk *clk); 22*4882a593Smuzhiyun long clk_round_rate(struct clk *clk, unsigned long rate); 23*4882a593Smuzhiyun int clk_set_rate(struct clk *clk, unsigned long rate); 24*4882a593Smuzhiyun int clk_set_parent(struct clk *clk, struct clk *parent); 25*4882a593Smuzhiyun struct clk *clk_get_parent(struct clk *clk); 26*4882a593Smuzhiyun int clk_sdio_enable(void *base, u32 rate, u32 *actual_ratep); 27*4882a593Smuzhiyun int clk_bsc_enable(void *base); 28*4882a593Smuzhiyun int clk_usb_otg_enable(void *base); 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #endif 31