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