diff options
author | Linus Walleij <linus.walleij@stericsson.com> | 2010-08-05 07:58:58 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-08-10 22:10:55 +0100 |
commit | b7276b236dcf400003179e77f5b4b4c05e1fb29c (patch) | |
tree | bd6d2ca778640be672356bf92808450dfa01bede /arch/arm/mach-u300/core.c | |
parent | 379aae5d6c3d8d9751d85a8022e68a90df13a7ae (diff) | |
download | op-kernel-dev-b7276b236dcf400003179e77f5b4b4c05e1fb29c.zip op-kernel-dev-b7276b236dcf400003179e77f5b4b4c05e1fb29c.tar.gz |
ARM: 6296/1: clock U300 intcon and timer properly
This removes the quirks to clock the U300 VIC and timer by custom
hooks and moves the control out to the clock framework where it
belongs. This is possible now that clocks are available early.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-u300/core.c')
-rw-r--r-- | arch/arm/mach-u300/core.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c index b189763..ea41c23 100644 --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c @@ -19,6 +19,8 @@ #include <linux/amba/bus.h> #include <linux/platform_device.h> #include <linux/gpio.h> +#include <linux/clk.h> +#include <linux/err.h> #include <mach/coh901318.h> #include <asm/types.h> @@ -1477,14 +1479,19 @@ static struct platform_device *platform_devs[] __initdata = { void __init u300_init_irq(void) { u32 mask[2] = {0, 0}; + struct clk *clk; int i; /* initialize clocking early, we want to clock the INTCON */ u300_clock_init(); + /* Clock the interrupt controller */ + clk = clk_get_sys("intcon", NULL); + BUG_ON(IS_ERR(clk)); + clk_enable(clk); + for (i = 0; i < NR_IRQS; i++) set_bit(i, (unsigned long *) &mask[0]); - u300_enable_intcon_clock(); vic_init((void __iomem *) U300_INTCON0_VBASE, 0, mask[0], mask[0]); vic_init((void __iomem *) U300_INTCON1_VBASE, 32, mask[1], mask[1]); } |