• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/arm/mach-pxa/
1#include <asm/clkdev.h>
2
3struct clkops {
4	void			(*enable)(struct clk *);
5	void			(*disable)(struct clk *);
6	unsigned long		(*getrate)(struct clk *);
7};
8
9struct clk {
10	const struct clkops	*ops;
11	unsigned long		rate;
12	unsigned int		cken;
13	unsigned int		delay;
14	unsigned int		enabled;
15};
16
17#define INIT_CLKREG(_clk,_devname,_conname)		\
18	{						\
19		.clk		= _clk,			\
20		.dev_id		= _devname,		\
21		.con_id		= _conname,		\
22	}
23
24#define DEFINE_CKEN(_name, _cken, _rate, _delay)	\
25struct clk clk_##_name = {				\
26		.ops	= &clk_cken_ops,		\
27		.rate	= _rate,			\
28		.cken	= CKEN_##_cken,			\
29		.delay	= _delay,			\
30	}
31
32#define DEFINE_CK(_name, _cken, _ops)			\
33struct clk clk_##_name = {				\
34		.ops	= _ops,				\
35		.cken	= CKEN_##_cken,			\
36	}
37
38#define DEFINE_CLK(_name, _ops, _rate, _delay)		\
39struct clk clk_##_name = {				\
40		.ops	= _ops, 			\
41		.rate	= _rate,			\
42		.delay	= _delay,			\
43	}
44
45extern const struct clkops clk_cken_ops;
46
47void clk_cken_enable(struct clk *clk);
48void clk_cken_disable(struct clk *clk);
49
50#ifdef CONFIG_PXA3xx
51#define DEFINE_PXA3_CKEN(_name, _cken, _rate, _delay)	\
52struct clk clk_##_name = {				\
53		.ops	= &clk_pxa3xx_cken_ops,		\
54		.rate	= _rate,			\
55		.cken	= CKEN_##_cken,			\
56		.delay	= _delay,			\
57	}
58
59#define DEFINE_PXA3_CK(_name, _cken, _ops)		\
60struct clk clk_##_name = {				\
61		.ops	= _ops,				\
62		.cken	= CKEN_##_cken,			\
63	}
64
65extern const struct clkops clk_pxa3xx_cken_ops;
66extern void clk_pxa3xx_cken_enable(struct clk *);
67extern void clk_pxa3xx_cken_disable(struct clk *);
68#endif
69