summaryrefslogtreecommitdiff
path: root/arch/arm/mach-w90x900/clock.c
diff options
context:
space:
mode:
authorwanzongshun <mcuos.com@gmail.com>2009-07-14 18:10:43 +0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-07-17 16:38:17 +0400
commitdb58e90fdbe9d12b431ae8d8e856961ce75d74f0 (patch)
tree3367a0abc6e955ecb16cbc8f33873a015b70230c /arch/arm/mach-w90x900/clock.c
parentd2c241955095b129459985a8c02d85b70984b945 (diff)
downloadlinux-db58e90fdbe9d12b431ae8d8e856961ce75d74f0.tar.xz
[ARM] 5602/1: Add sub clock api for w90p910 platform
Add sub clock api for w90p910 platform. Signed-off-by: Wan ZongShun <mcuos.com@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-w90x900/clock.c')
-rw-r--r--arch/arm/mach-w90x900/clock.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-w90x900/clock.c b/arch/arm/mach-w90x900/clock.c
index f420613cd395..49cf1fbc14eb 100644
--- a/arch/arm/mach-w90x900/clock.c
+++ b/arch/arm/mach-w90x900/clock.c
@@ -25,6 +25,8 @@
#include "clock.h"
+#define SUBCLK 0x24
+
static DEFINE_SPINLOCK(clocks_lock);
int clk_enable(struct clk *clk)
@@ -68,6 +70,22 @@ void w90x900_clk_enable(struct clk *clk, int enable)
__raw_writel(clken, W90X900_VA_CLKPWR);
}
+void w90x900_subclk_enable(struct clk *clk, int enable)
+{
+ unsigned int clocks = clk->cken;
+ unsigned long clken;
+
+ clken = __raw_readl(W90X900_VA_CLKPWR + SUBCLK);
+
+ if (enable)
+ clken |= clocks;
+ else
+ clken &= ~clocks;
+
+ __raw_writel(clken, W90X900_VA_CLKPWR + SUBCLK);
+}
+
+
void clks_register(struct clk_lookup *clks, size_t num)
{
int i;