1/* 2 * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de> 3 * JZ4740 SoC clock support 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License as published by the 7 * Free Software Foundation; either version 2 of the License, or (at your 8 * option) any later version. 9 * 10 * You should have received a copy of the GNU General Public License along 11 * with this program; if not, write to the Free Software Foundation, Inc., 12 * 675 Mass Ave, Cambridge, MA 02139, USA. 13 * 14 */ 15 16#ifndef __MIPS_JZ4740_CLOCK_H__ 17#define __MIPS_JZ4740_CLOCK_H__ 18 19#include <linux/list.h> 20 21struct jz4740_clock_board_data { 22 unsigned long ext_rate; 23 unsigned long rtc_rate; 24}; 25 26extern struct jz4740_clock_board_data jz4740_clock_bdata; 27 28void jz4740_clock_suspend(void); 29void jz4740_clock_resume(void); 30 31struct clk; 32 33struct clk_ops { 34 unsigned long (*get_rate)(struct clk *clk); 35 unsigned long (*round_rate)(struct clk *clk, unsigned long rate); 36 int (*set_rate)(struct clk *clk, unsigned long rate); 37 int (*enable)(struct clk *clk); 38 int (*disable)(struct clk *clk); 39 int (*is_enabled)(struct clk *clk); 40 41 int (*set_parent)(struct clk *clk, struct clk *parent); 42 43}; 44 45struct clk { 46 const char *name; 47 struct clk *parent; 48 49 uint32_t gate_bit; 50 51 const struct clk_ops *ops; 52 53 struct list_head list; 54 55#ifdef CONFIG_DEBUG_FS 56 struct dentry *debugfs_entry; 57 struct dentry *debugfs_parent_entry; 58#endif 59 60}; 61 62#define JZ4740_CLK_NOT_GATED ((uint32_t)-1) 63 64int clk_is_enabled(struct clk *clk); 65 66#ifdef CONFIG_DEBUG_FS 67void jz4740_clock_debugfs_init(void); 68void jz4740_clock_debugfs_add_clk(struct clk *clk); 69void jz4740_clock_debugfs_update_parent(struct clk *clk); 70#else 71static inline void jz4740_clock_debugfs_init(void) {}; 72static inline void jz4740_clock_debugfs_add_clk(struct clk *clk) {}; 73static inline void jz4740_clock_debugfs_update_parent(struct clk *clk) {}; 74#endif 75 76#endif 77