X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Farm%2Fmach-rpc%2Friscpc.c;h=d5a1a3af216c65c1ae3970dd63212cdbd6839866;hb=6f71f83334a552167ccbbd42fe5dd979428c89e4;hp=2f60dea2a8a1d69c4aaac9d71e4efa05afbb594d;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c index 2f60dea2a..d5a1a3af2 100644 --- a/arch/arm/mach-rpc/riscpc.c +++ b/arch/arm/mach-rpc/riscpc.c @@ -15,8 +15,7 @@ #include #include #include -#include -#include +#include #include #include @@ -67,11 +66,11 @@ __tagtable(ATAG_ACORN, parse_tag_acorn); static struct map_desc rpc_io_desc[] __initdata = { { SCREEN_BASE, SCREEN_START, 2*1048576, MT_DEVICE }, /* VRAM */ - { IO_BASE, IO_START, IO_SIZE , MT_DEVICE }, /* IO space */ + { IO_BASE, IO_START, IO_SIZE , MT_DEVICE }, /* IO space */ { EASI_BASE, EASI_START, EASI_SIZE, MT_DEVICE } /* EASI space */ }; -static void __init rpc_map_io(void) +void __init rpc_map_io(void) { iotable_init(rpc_io_desc, ARRAY_SIZE(rpc_io_desc)); @@ -86,86 +85,30 @@ static void __init rpc_map_io(void) elf_hwcap &= ~HWCAP_HALF; } -static struct resource acornfb_resources[] = { - { /* VIDC */ - .start = 0x03400000, - .end = 0x035fffff, - .flags = IORESOURCE_MEM, - }, { - .start = IRQ_VSYNCPULSE, - .end = IRQ_VSYNCPULSE, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct platform_device acornfb_device = { - .name = "acornfb", - .id = -1, - .dev = { - .coherent_dma_mask = 0xffffffff, - }, - .num_resources = ARRAY_SIZE(acornfb_resources), - .resource = acornfb_resources, -}; - -static struct resource iomd_resources[] = { - { - .start = 0x03200000, - .end = 0x0320ffff, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device iomd_device = { - .name = "iomd", - .id = -1, - .num_resources = ARRAY_SIZE(iomd_resources), - .resource = iomd_resources, -}; - -static struct platform_device kbd_device = { - .name = "kart", - .id = -1, - .dev = { - .parent = &iomd_device.dev, - }, -}; - -static struct plat_serial8250_port serial_platform_data[] = { - { - .mapbase = 0x03010fe0, - .irq = 10, - .uartclk = 1843200, - .regshift = 2, - .iotype = UPIO_MEM, - .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP | UPF_SKIP_TEST, - }, - { }, -}; +static irqreturn_t +rpc_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + timer_tick(regs); -static struct platform_device serial_device = { - .name = "serial8250", - .id = 0, - .dev = { - .platform_data = serial_platform_data, - }, -}; + return IRQ_HANDLED; +} -static struct platform_device *devs[] __initdata = { - &iomd_device, - &kbd_device, - &serial_device, - &acornfb_device, +static struct irqaction rpc_timer_irq = { + .name = "RiscPC Timer Tick", + .flags = SA_INTERRUPT, + .handler = rpc_timer_interrupt }; -static int __init rpc_init(void) +/* + * Set up timer interrupt. + */ +void __init rpc_init_time(void) { - return platform_add_devices(devs, ARRAY_SIZE(devs)); -} + extern void ioctime_init(void); + ioctime_init(); -arch_initcall(rpc_init); - -extern struct sys_timer ioc_timer; + setup_irq(IRQ_TIMER, &rpc_timer_irq); +} MACHINE_START(RISCPC, "Acorn-RiscPC") MAINTAINER("Russell King") @@ -175,5 +118,5 @@ MACHINE_START(RISCPC, "Acorn-RiscPC") DISABLE_PARPORT(1) MAPIO(rpc_map_io) INITIRQ(rpc_init_irq) - .timer = &ioc_timer, + INITTIME(rpc_init_time) MACHINE_END