summaryrefslogtreecommitdiff
path: root/arch/arm/mach-u300/core.c
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@stericsson.com>2010-08-05 10:58:13 +0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-08-11 01:10:55 +0400
commit379aae5d6c3d8d9751d85a8022e68a90df13a7ae (patch)
treee4484124e084be47d26cb43287f99edbd887d615 /arch/arm/mach-u300/core.c
parentc2fab1242a16f8e66b680d664322c3811e7b003d (diff)
downloadlinux-379aae5d6c3d8d9751d85a8022e68a90df13a7ae.tar.xz
ARM: 6295/1: fix U300 apb_pclk split
This fixes a regression due to the new apb_pclk stuff in the U300 platform, makes it run by splitting the apb clock off the single UART clocks. For the MMCI and PL022 clocks we don't split them: these are actually hardwired to the same clock terminal and will thus simply have a double reference count and will be referenced twice. We also move clock registration to .init_irq() so they are available early enough for probing to be successful and remove the earlier quirk to clock primecells during PrimeCell registration. 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.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c
index 653b3e0ab7ba..b18976370824 100644
--- a/arch/arm/mach-u300/core.c
+++ b/arch/arm/mach-u300/core.c
@@ -1479,6 +1479,9 @@ void __init u300_init_irq(void)
u32 mask[2] = {0, 0};
int i;
+ /* initialize clocking early, we want to clock the INTCON */
+ u300_clock_init();
+
for (i = 0; i < NR_IRQS; i++)
set_bit(i, (unsigned long *) &mask[0]);
u300_enable_intcon_clock();
@@ -1635,12 +1638,10 @@ void __init u300_init_devices(void)
u300_spi_init(&pl022_device);
/* Register the AMBA devices in the AMBA bus abstraction layer */
- u300_clock_primecells();
for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
struct amba_device *d = amba_devs[i];
amba_device_register(d, &iomem_resource);
}
- u300_unclock_primecells();
u300_assign_physmem();