aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-realview/realview_pb11mp.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-realview/realview_pb11mp.c')
-rw-r--r--arch/arm/mach-realview/realview_pb11mp.c34
1 files changed, 32 insertions, 2 deletions
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c
index 3e02731af959..7fbefbbebaf0 100644
--- a/arch/arm/mach-realview/realview_pb11mp.c
+++ b/arch/arm/mach-realview/realview_pb11mp.c
@@ -31,8 +31,8 @@
31#include <asm/irq.h> 31#include <asm/irq.h>
32#include <asm/leds.h> 32#include <asm/leds.h>
33#include <asm/mach-types.h> 33#include <asm/mach-types.h>
34#include <asm/pmu.h>
34#include <asm/hardware/gic.h> 35#include <asm/hardware/gic.h>
35#include <asm/hardware/icst307.h>
36#include <asm/hardware/cache-l2x0.h> 36#include <asm/hardware/cache-l2x0.h>
37#include <asm/localtimer.h> 37#include <asm/localtimer.h>
38 38
@@ -45,7 +45,6 @@
45#include <mach/irqs.h> 45#include <mach/irqs.h>
46 46
47#include "core.h" 47#include "core.h"
48#include "clock.h"
49 48
50static struct map_desc realview_pb11mp_io_desc[] __initdata = { 49static struct map_desc realview_pb11mp_io_desc[] __initdata = {
51 { 50 {
@@ -260,6 +259,36 @@ static struct resource realview_pb11mp_isp1761_resources[] = {
260 }, 259 },
261}; 260};
262 261
262static struct resource pmu_resources[] = {
263 [0] = {
264 .start = IRQ_TC11MP_PMU_CPU0,
265 .end = IRQ_TC11MP_PMU_CPU0,
266 .flags = IORESOURCE_IRQ,
267 },
268 [1] = {
269 .start = IRQ_TC11MP_PMU_CPU1,
270 .end = IRQ_TC11MP_PMU_CPU1,
271 .flags = IORESOURCE_IRQ,
272 },
273 [2] = {
274 .start = IRQ_TC11MP_PMU_CPU2,
275 .end = IRQ_TC11MP_PMU_CPU2,
276 .flags = IORESOURCE_IRQ,
277 },
278 [3] = {
279 .start = IRQ_TC11MP_PMU_CPU3,
280 .end = IRQ_TC11MP_PMU_CPU3,
281 .flags = IORESOURCE_IRQ,
282 },
283};
284
285static struct platform_device pmu_device = {
286 .name = "arm-pmu",
287 .id = ARM_PMU_DEVICE_CPU,
288 .num_resources = ARRAY_SIZE(pmu_resources),
289 .resource = pmu_resources,
290};
291
263static void __init gic_init_irq(void) 292static void __init gic_init_irq(void)
264{ 293{
265 unsigned int pldctrl; 294 unsigned int pldctrl;
@@ -329,6 +358,7 @@ static void __init realview_pb11mp_init(void)
329 platform_device_register(&realview_i2c_device); 358 platform_device_register(&realview_i2c_device);
330 platform_device_register(&realview_cf_device); 359 platform_device_register(&realview_cf_device);
331 realview_usb_register(realview_pb11mp_isp1761_resources); 360 realview_usb_register(realview_pb11mp_isp1761_resources);
361 platform_device_register(&pmu_device);
332 362
333 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { 363 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
334 struct amba_device *d = amba_devs[i]; 364 struct amba_device *d = amba_devs[i];