Linux-libre 3.4.28-gnu1
[librecmc/linux-libre.git] / arch / arm / plat-samsung / include / plat / s5p-clock.h
1 /* linux/arch/arm/plat-samsung/include/plat/s5p-clock.h
2  *
3  * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd.
4  *              http://www.samsung.com
5  *
6  * Header file for s5p clock support
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 #ifndef __ASM_PLAT_S5P_CLOCK_H
14 #define __ASM_PLAT_S5P_CLOCK_H __FILE__
15
16 #include <linux/clk.h>
17
18 #define GET_DIV(clk, field) ((((clk) & field##_MASK) >> field##_SHIFT) + 1)
19
20 #define clk_fin_apll clk_ext_xtal_mux
21 #define clk_fin_bpll clk_ext_xtal_mux
22 #define clk_fin_cpll clk_ext_xtal_mux
23 #define clk_fin_mpll clk_ext_xtal_mux
24 #define clk_fin_epll clk_ext_xtal_mux
25 #define clk_fin_dpll clk_ext_xtal_mux
26 #define clk_fin_vpll clk_ext_xtal_mux
27 #define clk_fin_hpll clk_ext_xtal_mux
28
29 extern struct clk clk_ext_xtal_mux;
30 extern struct clk clk_xusbxti;
31 extern struct clk clk_48m;
32 extern struct clk s5p_clk_27m;
33 extern struct clk clk_fout_apll;
34 extern struct clk clk_fout_bpll;
35 extern struct clk clk_fout_cpll;
36 extern struct clk clk_fout_mpll;
37 extern struct clk clk_fout_epll;
38 extern struct clk clk_fout_dpll;
39 extern struct clk clk_fout_vpll;
40 extern struct clk clk_arm;
41 extern struct clk clk_vpll;
42
43 extern struct clksrc_sources clk_src_apll;
44 extern struct clksrc_sources clk_src_bpll;
45 extern struct clksrc_sources clk_src_cpll;
46 extern struct clksrc_sources clk_src_mpll;
47 extern struct clksrc_sources clk_src_epll;
48 extern struct clksrc_sources clk_src_dpll;
49
50 extern int s5p_gatectrl(void __iomem *reg, struct clk *clk, int enable);
51
52 /* Common EPLL operations for S5P platform */
53 extern int s5p_epll_enable(struct clk *clk, int enable);
54 extern unsigned long s5p_epll_get_rate(struct clk *clk);
55
56 /* SPDIF clk operations common for S5PC100/V210/C110 and Exynos4 */
57 extern int s5p_spdif_set_rate(struct clk *clk, unsigned long rate);
58 extern unsigned long s5p_spdif_get_rate(struct clk *clk);
59
60 extern struct clk_ops s5p_sclk_spdif_ops;
61 #endif /* __ASM_PLAT_S5P_CLOCK_H */