X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=target%2Flinux%2Fxburst%2Ffiles-2.6.32%2Farch%2Fmips%2Fjz4740%2Fclock.h;fp=target%2Flinux%2Fxburst%2Ffiles-2.6.32%2Farch%2Fmips%2Fjz4740%2Fclock.h;h=88ce07d16d8ce5a85d90514cee871c3df7d710cf;hp=0000000000000000000000000000000000000000;hb=28ca3217591c53926bf6de12044f89dc5b3c08c1;hpb=2b1c61f6f02bfcc0a2a21b7a62e15229de365385 diff --git a/target/linux/xburst/files-2.6.32/arch/mips/jz4740/clock.h b/target/linux/xburst/files-2.6.32/arch/mips/jz4740/clock.h new file mode 100644 index 0000000000..88ce07d16d --- /dev/null +++ b/target/linux/xburst/files-2.6.32/arch/mips/jz4740/clock.h @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2010, Lars-Peter Clausen + * JZ4740 SoC clock support + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef __JZ4740_CLOCK_H__ +#define __JZ4740_CLOCK_H__ + +struct clk_ops { + unsigned long (*get_rate)(struct clk* clk); + unsigned long (*round_rate)(struct clk *clk, unsigned long rate); + int (*set_rate)(struct clk* clk, unsigned long rate); + int (*enable)(struct clk* clk); + int (*disable)(struct clk* clk); + int (*is_enabled)(struct clk* clk); + + int (*set_parent)(struct clk* clk, struct clk *parent); + +}; + +struct clk { + const char *name; + struct clk* parent; + + uint32_t gate_bit; + + const struct clk_ops *ops; + + struct list_head list; + +#ifdef CONFIG_DEBUG_FS + struct dentry *debugfs_entry; + struct dentry *debugfs_parent_entry; +#endif + +}; + +#define JZ4740_CLK_NOT_GATED ((uint32_t)-1) + +int clk_is_enabled(struct clk *clk); + +#ifdef CONFIG_DEBUG_FS +void jz4740_clock_debugfs_init(void); +void jz4740_clock_debugfs_add_clk(struct clk *clk); +void jz4740_clock_debugfs_update_parent(struct clk *clk); +#else +static inline void jz4740_clock_debugfs_init(void) {}; +static inline void jz4740_clock_debugfs_add_clk(struct clk *clk) {}; +static inline void jz4740_clock_debugfs_update_parent(struct clk *clk) {}; +#endif + +#endif