summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorColin Tuckley <colin.tuckley@arm.com>2008-11-10 14:10:11 +0000
committerCatalin Marinas <catalin.marinas@arm.com>2008-11-10 14:10:11 +0000
commit68c3d93586223f7aeb04a815686b4d04146a2ada (patch)
tree736b2a5388426a3b73007cc5dd848047069e6723 /arch/arm
parent0173a3265b228da319ceb9c1ec6a5682fd1b2d92 (diff)
RealView: Use the correct oscillator for the CLCD on PB1176
On PB1176, oscillator 0 rather than 4 should be used. Signed-off-by: Colin Tuckley <colin.tuckley@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-realview/core.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 2f04d54711e7..702d81549c91 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -33,6 +33,7 @@
#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/leds.h>
+#include <asm/mach-types.h>
#include <asm/hardware/arm_timer.h>
#include <asm/hardware/icst307.h>
@@ -177,9 +178,14 @@ static const struct icst307_params realview_oscvco_params = {
static void realview_oscvco_set(struct clk *clk, struct icst307_vco vco)
{
void __iomem *sys_lock = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_LOCK_OFFSET;
- void __iomem *sys_osc = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC4_OFFSET;
+ void __iomem *sys_osc;
u32 val;
+ if (machine_is_realview_pb1176())
+ sys_osc = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC0_OFFSET;
+ else
+ sys_osc = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC4_OFFSET;
+
val = readl(sys_osc) & ~0x7ffff;
val |= vco.v | (vco.r << 9) | (vco.s << 16);