]>
Commit | Line | Data |
---|---|---|
a21765a7 | 1 | /* linux/include/asm-arm/plat-s3c24xx/clock.h |
1da177e4 LT |
2 | * linux/arch/arm/mach-s3c2410/clock.h |
3 | * | |
4 | * Copyright (c) 2004-2005 Simtec Electronics | |
5 | * http://www.simtec.co.uk/products/SWLINUX/ | |
6 | * Written by Ben Dooks, <ben@simtec.co.uk> | |
7 | * | |
8 | * This program is free software; you can redistribute it and/or modify | |
9 | * it under the terms of the GNU General Public License version 2 as | |
10 | * published by the Free Software Foundation. | |
11 | */ | |
12 | ||
13 | struct clk { | |
14 | struct list_head list; | |
15 | struct module *owner; | |
16 | struct clk *parent; | |
17 | const char *name; | |
18 | int id; | |
2a513ce7 | 19 | int usage; |
1da177e4 LT |
20 | unsigned long rate; |
21 | unsigned long ctrlbit; | |
d3468daa | 22 | |
1da177e4 | 23 | int (*enable)(struct clk *, int enable); |
6e8908ed | 24 | int (*set_rate)(struct clk *c, unsigned long rate); |
92b7eb8f | 25 | unsigned long (*get_rate)(struct clk *c); |
6e8908ed | 26 | unsigned long (*round_rate)(struct clk *c, unsigned long rate); |
d3468daa | 27 | int (*set_parent)(struct clk *c, struct clk *parent); |
1da177e4 LT |
28 | }; |
29 | ||
30 | /* other clocks which may be registered by board support */ | |
31 | ||
32 | extern struct clk s3c24xx_dclk0; | |
33 | extern struct clk s3c24xx_dclk1; | |
34 | extern struct clk s3c24xx_clkout0; | |
35 | extern struct clk s3c24xx_clkout1; | |
36 | extern struct clk s3c24xx_uclk; | |
37 | ||
36c64af4 BD |
38 | extern struct clk clk_usb_bus; |
39 | ||
99c13853 BD |
40 | /* core clock support */ |
41 | ||
42 | extern struct clk clk_f; | |
43 | extern struct clk clk_h; | |
44 | extern struct clk clk_p; | |
513846f8 | 45 | extern struct clk clk_mpll; |
99c13853 | 46 | extern struct clk clk_upll; |
513846f8 | 47 | extern struct clk clk_xtal; |
99c13853 | 48 | |
1da177e4 LT |
49 | /* exports for arch/arm/mach-s3c2410 |
50 | * | |
51 | * Please DO NOT use these outside of arch/arm/mach-s3c2410 | |
52 | */ | |
53 | ||
36c64af4 BD |
54 | extern struct mutex clocks_mutex; |
55 | ||
99c13853 BD |
56 | extern int s3c2410_clkcon_enable(struct clk *clk, int enable); |
57 | ||
1da177e4 | 58 | extern int s3c24xx_register_clock(struct clk *clk); |
ce89c206 | 59 | extern int s3c24xx_register_clocks(struct clk **clk, int nr_clks); |
1da177e4 LT |
60 | |
61 | extern int s3c24xx_setup_clocks(unsigned long xtal, | |
62 | unsigned long fclk, | |
63 | unsigned long hclk, | |
64 | unsigned long pclk); |