diff options
Diffstat (limited to 'arch/arm/mach-u300/clock.h')
| -rw-r--r-- | arch/arm/mach-u300/clock.h | 53 | 
1 files changed, 53 insertions, 0 deletions
diff --git a/arch/arm/mach-u300/clock.h b/arch/arm/mach-u300/clock.h new file mode 100644 index 00000000000..fc6d9ccfe7e --- /dev/null +++ b/arch/arm/mach-u300/clock.h @@ -0,0 +1,53 @@ +/* + * arch/arm/mach-u300/include/mach/clock.h + * + * Copyright (C) 2004 - 2005 Nokia corporation + * Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com> + * Based on clocks.h by Tony Lindgren, Gordon McNutt and RidgeRun, Inc + * Copyright (C) 2007-2009 ST-Ericsson AB + * Adopted to ST-Ericsson U300 platforms by + * Jonas Aaberg <jonas.aberg@stericsson.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#ifndef __MACH_CLOCK_H +#define __MACH_CLOCK_H + +#include <linux/clk.h> + +struct clk { +	struct list_head node; +	struct module *owner; +	struct device *dev; +	const char *name; +	struct clk *parent; + +	spinlock_t lock; +	unsigned long rate; +	bool reset; +	__u16 clk_val; +	__s8 usecount; +	__u32 res_reg; +	__u16 res_mask; + +	bool hw_ctrld; + +	void (*recalc) (struct clk *); +	int (*set_rate) (struct clk *, unsigned long); +	unsigned long (*get_rate) (struct clk *); +	unsigned long (*round_rate) (struct clk *, unsigned long); +	void (*init) (struct clk *); +	void (*enable) (struct clk *); +	void (*disable) (struct clk *); +}; + +void u300_clock_primecells(void); +void u300_unclock_primecells(void); +void u300_enable_intcon_clock(void); +void u300_enable_timer_clock(void); + +#endif  |