aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-integrator/common.h1
-rw-r--r--arch/arm/mach-integrator/core.c6
-rw-r--r--arch/arm/mach-integrator/integrator_ap.c2
-rw-r--r--arch/arm/mach-integrator/integrator_cp.c1
4 files changed, 6 insertions, 4 deletions
diff --git a/arch/arm/mach-integrator/common.h b/arch/arm/mach-integrator/common.h
index 899561d8db28..c4338e2fc631 100644
--- a/arch/arm/mach-integrator/common.h
+++ b/arch/arm/mach-integrator/common.h
@@ -1,3 +1,4 @@
1void integrator_init_early(void); 1void integrator_init_early(void);
2int integrator_init(bool is_cp);
2void integrator_reserve(void); 3void integrator_reserve(void);
3void integrator_restart(char, const char *); 4void integrator_restart(char, const char *);
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
index 3fa6c51390da..5ba4bc8c0aa3 100644
--- a/arch/arm/mach-integrator/core.c
+++ b/arch/arm/mach-integrator/core.c
@@ -61,7 +61,7 @@ static struct amba_device *amba_devs[] __initdata = {
61 &kmi1_device, 61 &kmi1_device,
62}; 62};
63 63
64static int __init integrator_init(void) 64int __init integrator_init(bool is_cp)
65{ 65{
66 int i; 66 int i;
67 67
@@ -70,7 +70,7 @@ static int __init integrator_init(void)
70 * hard-code them. The Integator/CP and forward have proper cell IDs. 70 * hard-code them. The Integator/CP and forward have proper cell IDs.
71 * Else we leave them undefined to the bus driver can autoprobe them. 71 * Else we leave them undefined to the bus driver can autoprobe them.
72 */ 72 */
73 if (machine_is_integrator()) { 73 if (!is_cp) {
74 rtc_device.periphid = 0x00041030; 74 rtc_device.periphid = 0x00041030;
75 uart0_device.periphid = 0x00041010; 75 uart0_device.periphid = 0x00041010;
76 uart1_device.periphid = 0x00041010; 76 uart1_device.periphid = 0x00041010;
@@ -86,8 +86,6 @@ static int __init integrator_init(void)
86 return 0; 86 return 0;
87} 87}
88 88
89arch_initcall(integrator_init);
90
91/* 89/*
92 * On the Integrator platform, the port RTS and DTR are provided by 90 * On the Integrator platform, the port RTS and DTR are provided by
93 * bits in the following SC_CTRLS register bits: 91 * bits in the following SC_CTRLS register bits:
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index 3b2267529f5e..ff966d83281c 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -312,6 +312,8 @@ static void __init ap_init(void)
312 312
313 lm_device_register(lmdev); 313 lm_device_register(lmdev);
314 } 314 }
315
316 integrator_init(false);
315} 317}
316 318
317/* 319/*
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 82d5c837cc74..2b40bc10b388 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -366,6 +366,7 @@ static void __init intcp_init(void)
366 struct amba_device *d = amba_devs[i]; 366 struct amba_device *d = amba_devs[i];
367 amba_device_register(d, &iomem_resource); 367 amba_device_register(d, &iomem_resource);
368 } 368 }
369 integrator_init(true);
369} 370}
370 371
371#define TIMER0_VA_BASE __io_address(INTEGRATOR_TIMER0_BASE) 372#define TIMER0_VA_BASE __io_address(INTEGRATOR_TIMER0_BASE)