blob: 8364b4bea8b8f5e3add2e8a3fa454a0314ec8d9f [file] [log] [blame]
Kukjin Kime90a0f32011-09-28 21:06:52 +09001/* linux/arch/arm/plat-samsung/include/plat/s5p-clock.h
Kukjin Kim1a0e8a52010-01-14 08:13:37 +09002 *
Kukjin Kim3109e552010-09-01 15:35:30 +09003 * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd.
4 * http://www.samsung.com
Kukjin Kim1a0e8a52010-01-14 08:13:37 +09005 *
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
Kukjin Kim87b3c6e2012-01-22 21:46:13 +090021#define clk_fin_bpll clk_ext_xtal_mux
22#define clk_fin_cpll clk_ext_xtal_mux
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090023#define clk_fin_mpll clk_ext_xtal_mux
24#define clk_fin_epll clk_ext_xtal_mux
Kukjin Kim3109e552010-09-01 15:35:30 +090025#define clk_fin_dpll clk_ext_xtal_mux
Kukjin Kim0c1945d2010-02-24 16:40:36 +090026#define clk_fin_vpll clk_ext_xtal_mux
Thomas Abrahama443a632010-05-14 16:27:28 +090027#define clk_fin_hpll clk_ext_xtal_mux
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090028
29extern struct clk clk_ext_xtal_mux;
Thomas Abrahamf001d5b2010-04-19 20:05:08 +090030extern struct clk clk_xusbxti;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090031extern struct clk clk_48m;
Thomas Abrahama443a632010-05-14 16:27:28 +090032extern struct clk s5p_clk_27m;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090033extern struct clk clk_fout_apll;
Kukjin Kim87b3c6e2012-01-22 21:46:13 +090034extern struct clk clk_fout_bpll;
Kisoo Yu57b317f2012-04-24 14:54:15 -070035extern struct clk clk_fout_bpll_div2;
Kukjin Kim87b3c6e2012-01-22 21:46:13 +090036extern struct clk clk_fout_cpll;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090037extern struct clk clk_fout_mpll;
Kisoo Yu57b317f2012-04-24 14:54:15 -070038extern struct clk clk_fout_mpll_div2;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090039extern struct clk clk_fout_epll;
Kukjin Kim3109e552010-09-01 15:35:30 +090040extern struct clk clk_fout_dpll;
Thomas Abrahamf445dbd2010-05-17 09:38:52 +090041extern struct clk clk_fout_vpll;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090042extern struct clk clk_arm;
Kukjin Kim0c1945d2010-02-24 16:40:36 +090043extern struct clk clk_vpll;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090044
45extern struct clksrc_sources clk_src_apll;
Kukjin Kim87b3c6e2012-01-22 21:46:13 +090046extern struct clksrc_sources clk_src_bpll;
Kisoo Yu57b317f2012-04-24 14:54:15 -070047extern struct clksrc_sources clk_src_bpll_fout;
Kukjin Kim87b3c6e2012-01-22 21:46:13 +090048extern struct clksrc_sources clk_src_cpll;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090049extern struct clksrc_sources clk_src_mpll;
Kisoo Yu57b317f2012-04-24 14:54:15 -070050extern struct clksrc_sources clk_src_mpll_fout;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090051extern struct clksrc_sources clk_src_epll;
Kukjin Kim3109e552010-09-01 15:35:30 +090052extern struct clksrc_sources clk_src_dpll;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090053
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090054extern int s5p_gatectrl(void __iomem *reg, struct clk *clk, int enable);
55
Seungwhan Yound4b34c62010-10-14 10:39:08 +090056/* Common EPLL operations for S5P platform */
57extern int s5p_epll_enable(struct clk *clk, int enable);
58extern unsigned long s5p_epll_get_rate(struct clk *clk);
59
Naveen Krishna Chatradhi65f5eaa2011-07-18 14:44:19 +090060/* SPDIF clk operations common for S5PC100/V210/C110 and Exynos4 */
61extern int s5p_spdif_set_rate(struct clk *clk, unsigned long rate);
62extern unsigned long s5p_spdif_get_rate(struct clk *clk);
63
64extern struct clk_ops s5p_sclk_spdif_ops;
Kukjin Kim1a0e8a52010-01-14 08:13:37 +090065#endif /* __ASM_PLAT_S5P_CLOCK_H */