aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s3c64xx/clock.c
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2008-10-31 12:14:36 -0400
committerBen Dooks <ben-linux@fluff.org>2008-12-15 18:36:29 -0500
commit3627379fc6b3e2b531b371af97d8ce0040fc3646 (patch)
tree7c48c02e4973fa6c1e521c62343fa397ff6c2824 /arch/arm/plat-s3c64xx/clock.c
parent1451325ced5f9b1a3e5da07521deb049e32cb15a (diff)
[ARM] S3C6XX: Add enable for clk_48
Add apropriate enable call for clk_48m. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/plat-s3c64xx/clock.c')
-rw-r--r--arch/arm/plat-s3c64xx/clock.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c
index 2d2e83a036c4..523da0cb55c5 100644
--- a/arch/arm/plat-s3c64xx/clock.c
+++ b/arch/arm/plat-s3c64xx/clock.c
@@ -22,6 +22,7 @@
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23#include <mach/map.h> 23#include <mach/map.h>
24 24
25#include <plat/regs-sys.h>
25#include <plat/regs-clock.h> 26#include <plat/regs-clock.h>
26#include <plat/cpu.h> 27#include <plat/cpu.h>
27#include <plat/devs.h> 28#include <plat/devs.h>
@@ -33,10 +34,31 @@ struct clk clk_27m = {
33 .rate = 27000000, 34 .rate = 27000000,
34}; 35};
35 36
37static int clk_48m_ctrl(struct clk *clk, int enable)
38{
39 unsigned long flags;
40 u32 val;
41
42 /* can't rely on clock lock, this register has other usages */
43 local_irq_save(flags);
44
45 val = __raw_readl(S3C64XX_OTHERS);
46 if (enable)
47 val |= S3C64XX_OTHERS_USBMASK;
48 else
49 val &= ~S3C64XX_OTHERS_USBMASK;
50
51 __raw_writel(val, S3C64XX_OTHERS);
52 local_irq_restore(flags);
53
54 return 0;
55}
56
36struct clk clk_48m = { 57struct clk clk_48m = {
37 .name = "clk_48m", 58 .name = "clk_48m",
38 .id = -1, 59 .id = -1,
39 .rate = 48000000, 60 .rate = 48000000,
61 .enable = clk_48m_ctrl,
40}; 62};
41 63
42static int inline s3c64xx_gate(void __iomem *reg, 64static int inline s3c64xx_gate(void __iomem *reg,