aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/clock2xxx.c
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2010-01-26 22:13:07 -0500
committerPaul Walmsley <paul@pwsan.com>2010-01-28 20:13:49 -0500
commit87a1b26c2d31dce62758b78c077ff5a1b5a52ab8 (patch)
tree6ff4a11929f981b1d1280c1e0d1ff92a97717728 /arch/arm/mach-omap2/clock2xxx.c
parent49214640f52506fbba00eb998fc39f10653a840a (diff)
OMAP2xxx clock: move osc_clk code into mach-omap2/clkt2xxx_osc.c
Move the osc_clk clock functions from clock2xxx.c to mach-omap2/clkt2xxx_osc. This is intended to make the clock code easier to understand, since all of the functions needed to manage the osc_clk are now located in their own file, rather than being mixed with other, unrelated functions. Clock debugging is also now more finely-grained, since the DEBUG macro can now be defined for osc_clk clocks alone. This should reduce unnecessary console noise when debugging. Also, if at some future point the mach-omap2/ directory is split into OMAP2/3/4 variants, this clkt file can be placed in the mach-omap2xxx/ directory, rather than shared with other chip types that don't use this clock type. Thanks to Alexander Shishkin <virtuoso@slind.org> for his comments to improve the patch description. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Alexander Shishkin <virtuoso@slind.org>
Diffstat (limited to 'arch/arm/mach-omap2/clock2xxx.c')
-rw-r--r--arch/arm/mach-omap2/clock2xxx.c34
1 files changed, 2 insertions, 32 deletions
diff --git a/arch/arm/mach-omap2/clock2xxx.c b/arch/arm/mach-omap2/clock2xxx.c
index 88077e746966..62c3b022a1e9 100644
--- a/arch/arm/mach-omap2/clock2xxx.c
+++ b/arch/arm/mach-omap2/clock2xxx.c
@@ -79,31 +79,6 @@ const struct clkops clkops_omap2430_i2chs_wait = {
79 .find_companion = omap2_clk_dflt_find_companion, 79 .find_companion = omap2_clk_dflt_find_companion,
80}; 80};
81 81
82static int omap2_enable_osc_ck(struct clk *clk)
83{
84 u32 pcc;
85
86 pcc = __raw_readl(prcm_clksrc_ctrl);
87
88 __raw_writel(pcc & ~OMAP_AUTOEXTCLKMODE_MASK, prcm_clksrc_ctrl);
89
90 return 0;
91}
92
93static void omap2_disable_osc_ck(struct clk *clk)
94{
95 u32 pcc;
96
97 pcc = __raw_readl(prcm_clksrc_ctrl);
98
99 __raw_writel(pcc | OMAP_AUTOEXTCLKMODE_MASK, prcm_clksrc_ctrl);
100}
101
102const struct clkops clkops_oscck = {
103 .enable = omap2_enable_osc_ck,
104 .disable = omap2_disable_osc_ck,
105};
106
107#ifdef OLD_CK 82#ifdef OLD_CK
108/* Recalculate SYST_CLK */ 83/* Recalculate SYST_CLK */
109static void omap2_sys_clk_recalc(struct clk *clk) 84static void omap2_sys_clk_recalc(struct clk *clk)
@@ -116,7 +91,7 @@ static void omap2_sys_clk_recalc(struct clk *clk)
116} 91}
117#endif /* OLD_CK */ 92#endif /* OLD_CK */
118 93
119static u32 omap2_get_sysclkdiv(void) 94u32 omap2xxx_get_sysclkdiv(void)
120{ 95{
121 u32 div; 96 u32 div;
122 97
@@ -127,14 +102,9 @@ static u32 omap2_get_sysclkdiv(void)
127 return div; 102 return div;
128} 103}
129 104
130unsigned long omap2_osc_clk_recalc(struct clk *clk)
131{
132 return omap2xxx_get_apll_clkin() * omap2_get_sysclkdiv();
133}
134
135unsigned long omap2_sys_clk_recalc(struct clk *clk) 105unsigned long omap2_sys_clk_recalc(struct clk *clk)
136{ 106{
137 return clk->parent->rate / omap2_get_sysclkdiv(); 107 return clk->parent->rate / omap2xxx_get_sysclkdiv();
138} 108}
139 109
140/* 110/*