Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 123863
b: refs/heads/master
c: 3627379
h: refs/heads/master
i:
  123861: 7edf411
  123859: fe44fbd
  123855: d3db57b
v: v3
  • Loading branch information
Ben Dooks committed Dec 15, 2008
1 parent 53aa848 commit 82208ad
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1451325ced5f9b1a3e5da07521deb049e32cb15a
refs/heads/master: 3627379fc6b3e2b531b371af97d8ce0040fc3646
22 changes: 22 additions & 0 deletions trunk/arch/arm/plat-s3c64xx/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <mach/hardware.h>
#include <mach/map.h>

#include <plat/regs-sys.h>
#include <plat/regs-clock.h>
#include <plat/cpu.h>
#include <plat/devs.h>
Expand All @@ -33,10 +34,31 @@ struct clk clk_27m = {
.rate = 27000000,
};

static int clk_48m_ctrl(struct clk *clk, int enable)
{
unsigned long flags;
u32 val;

/* can't rely on clock lock, this register has other usages */
local_irq_save(flags);

val = __raw_readl(S3C64XX_OTHERS);
if (enable)
val |= S3C64XX_OTHERS_USBMASK;
else
val &= ~S3C64XX_OTHERS_USBMASK;

__raw_writel(val, S3C64XX_OTHERS);
local_irq_restore(flags);

return 0;
}

struct clk clk_48m = {
.name = "clk_48m",
.id = -1,
.rate = 48000000,
.enable = clk_48m_ctrl,
};

static int inline s3c64xx_gate(void __iomem *reg,
Expand Down
24 changes: 24 additions & 0 deletions trunk/arch/arm/plat-s3c64xx/include/plat/regs-sys.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/* arch/arm/plat-s3c64xx/include/plat/regs-sys.h
*
* Copyright 2008 Openmoko, Inc.
* Copyright 2008 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
* http://armlinux.simtec.co.uk/
*
* S3C64XX system register definitions
*
* 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.
*/

#ifndef __PLAT_REGS_SYS_H
#define __PLAT_REGS_SYS_H __FILE__

#define S3C_SYSREG(x) (S3C_VA_SYS + (x))

#define S3C64XX_OTHERS S3C_SYSREG(0x900)

#define S3C64XX_OTHERS_USBMASK (1 << 16)

#endif /* _PLAT_REGS_SYS_H */

0 comments on commit 82208ad

Please sign in to comment.