-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Paul Walmsley
committed
Jan 29, 2010
1 parent
4921464
commit 87a1b26
Showing
4 changed files
with
66 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
/* | ||
* OMAP2xxx osc_clk-specific clock code | ||
* | ||
* Copyright (C) 2005-2008 Texas Instruments, Inc. | ||
* Copyright (C) 2004-2010 Nokia Corporation | ||
* | ||
* Contacts: | ||
* Richard Woodruff <r-woodruff2@ti.com> | ||
* Paul Walmsley | ||
* | ||
* Based on earlier work by Tuukka Tikkanen, Tony Lindgren, | ||
* Gordon McNutt and RidgeRun, Inc. | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
#undef DEBUG | ||
|
||
#include <linux/module.h> | ||
#include <linux/kernel.h> | ||
#include <linux/errno.h> | ||
#include <linux/clk.h> | ||
#include <linux/io.h> | ||
|
||
#include <plat/clock.h> | ||
|
||
#include "clock.h" | ||
#include "clock2xxx.h" | ||
#include "prm.h" | ||
#include "prm-regbits-24xx.h" | ||
|
||
static int omap2_enable_osc_ck(struct clk *clk) | ||
{ | ||
u32 pcc; | ||
|
||
pcc = __raw_readl(prcm_clksrc_ctrl); | ||
|
||
__raw_writel(pcc & ~OMAP_AUTOEXTCLKMODE_MASK, prcm_clksrc_ctrl); | ||
|
||
return 0; | ||
} | ||
|
||
static void omap2_disable_osc_ck(struct clk *clk) | ||
{ | ||
u32 pcc; | ||
|
||
pcc = __raw_readl(prcm_clksrc_ctrl); | ||
|
||
__raw_writel(pcc | OMAP_AUTOEXTCLKMODE_MASK, prcm_clksrc_ctrl); | ||
} | ||
|
||
const struct clkops clkops_oscck = { | ||
.enable = omap2_enable_osc_ck, | ||
.disable = omap2_disable_osc_ck, | ||
}; | ||
|
||
unsigned long omap2_osc_clk_recalc(struct clk *clk) | ||
{ | ||
return omap2xxx_get_apll_clkin() * omap2xxx_get_sysclkdiv(); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters