1
2
3
4
5
6
7
8
9
10
11
12#include <linux/spinlock.h>
13
14struct clk;
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31struct clk_ops {
32 int (*set_rate)(struct clk *c, unsigned long rate);
33 unsigned long (*get_rate)(struct clk *c);
34 unsigned long (*round_rate)(struct clk *c, unsigned long rate);
35 int (*set_parent)(struct clk *c, struct clk *parent);
36};
37
38struct clk {
39 struct list_head list;
40 struct module *owner;
41 struct clk *parent;
42 const char *name;
43 int id;
44 int usage;
45 unsigned long rate;
46 unsigned long ctrlbit;
47
48 struct clk_ops *ops;
49 int (*enable)(struct clk *, int enable);
50#if defined(CONFIG_PM_DEBUG) && defined(CONFIG_DEBUG_FS)
51 struct dentry *dent;
52#endif
53};
54
55
56
57extern struct clk s3c24xx_dclk0;
58extern struct clk s3c24xx_dclk1;
59extern struct clk s3c24xx_clkout0;
60extern struct clk s3c24xx_clkout1;
61extern struct clk s3c24xx_uclk;
62
63extern struct clk clk_usb_bus;
64
65
66
67extern struct clk clk_f;
68extern struct clk clk_h;
69extern struct clk clk_p;
70extern struct clk clk_mpll;
71extern struct clk clk_upll;
72extern struct clk clk_epll;
73extern struct clk clk_xtal;
74extern struct clk clk_ext;
75
76
77extern struct clk clk_h2;
78extern struct clk clk_27m;
79extern struct clk clk_48m;
80extern struct clk clk_xusbxti;
81
82extern int clk_default_setrate(struct clk *clk, unsigned long rate);
83extern struct clk_ops clk_ops_def_setrate;
84
85
86
87
88
89
90extern spinlock_t clocks_lock;
91
92extern int s3c2410_clkcon_enable(struct clk *clk, int enable);
93
94extern int s3c24xx_register_clock(struct clk *clk);
95extern int s3c24xx_register_clocks(struct clk **clk, int nr_clks);
96
97extern void s3c_register_clocks(struct clk *clk, int nr_clks);
98extern void s3c_disable_clocks(struct clk *clkp, int nr_clks);
99
100extern int s3c24xx_register_baseclocks(unsigned long xtal);
101
102extern void s5p_register_clocks(unsigned long xtal_freq);
103
104extern void s3c24xx_setup_clocks(unsigned long fclk,
105 unsigned long hclk,
106 unsigned long pclk);
107
108extern void s3c2410_setup_clocks(void);
109extern void s3c2412_setup_clocks(void);
110extern void s3c244x_setup_clocks(void);
111extern void s3c2443_setup_clocks(void);
112
113
114
115extern int s3c64xx_sclk_ctrl(struct clk *clk, int enable);
116
117
118
119extern void s3c_pwmclk_init(void);
120
121