diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2010-01-29 20:12:27 +0000 |
---|---|---|
committer | Lars-Peter Clausen <lars@metafoo.de> | 2010-01-29 20:12:27 +0000 |
commit | ac5d8374d13f6d7ae78e4394202490c8cda9f5ed (patch) | |
tree | 641827f273c72983ad6daae8138ad7272d2844e1 /target/linux/xburst/files-2.6.32/arch/mips/jz4740/clock.h | |
parent | 7b5f0de029620577f7f1452b7f7ec910b4270829 (diff) | |
download | master-31e0f0ae-ac5d8374d13f6d7ae78e4394202490c8cda9f5ed.tar.gz master-31e0f0ae-ac5d8374d13f6d7ae78e4394202490c8cda9f5ed.tar.bz2 master-31e0f0ae-ac5d8374d13f6d7ae78e4394202490c8cda9f5ed.zip |
Export clock states through debugfs
SVN-Revision: 19383
Diffstat (limited to 'target/linux/xburst/files-2.6.32/arch/mips/jz4740/clock.h')
-rw-r--r-- | target/linux/xburst/files-2.6.32/arch/mips/jz4740/clock.h | 62 |
1 files changed, 62 insertions, 0 deletions
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 <lars@metafoo.de> + * 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 |