ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / arch / arm / mach-tbox / core.c
1 /*
2  *  linux/arch/arm/mm/mm-tbox.c
3  *
4  *  Copyright (C) 1998, 1999, 2000 Phil Blundell
5  *  Copyright (C) 1998-1999 Russell King
6  *
7  *  Extra MM routines for the Tbox architecture
8  */
9 #include <linux/kernel.h>
10 #include <linux/mm.h>
11 #include <linux/init.h>
12
13 #include <asm/elf.h>
14 #include <asm/setup.h>
15 #include <asm/mach-types.h>
16 #include <asm/io.h>
17 #include <asm/pgtable.h>
18 #include <asm/page.h>
19
20 #include <asm/mach/arch.h>
21 #include <asm/mach/map.h>
22
23 extern unsigned long soft_irq_mask;
24
25 static void tbox_mask_irq(unsigned int irq)
26 {
27         __raw_writel(0, INTCONT + (irq << 2));
28         soft_irq_mask &= ~(1<<irq);
29 }
30
31 static void tbox_unmask_irq(unsigned int irq)
32 {
33         soft_irq_mask |= (1<<irq);
34         __raw_writel(1, INTCONT + (irq << 2));
35 }
36  
37 static void tbox_init_irq(void)
38 {
39         unsigned int i;
40
41         /* Disable all interrupts initially. */
42         for (i = 0; i < NR_IRQS; i++) {
43                 if (i <= 10 || (i >= 12 && i <= 13)) {
44                         irq_desc[i].valid       = 1;
45                         irq_desc[i].probe_ok    = 0;
46                         irq_desc[i].mask_ack    = tbox_mask_irq;
47                         irq_desc[i].mask        = tbox_mask_irq;
48                         irq_desc[i].unmask      = tbox_unmask_irq;
49                         tbox_mask_irq(i);
50                 } else {
51                         irq_desc[i].valid       = 0;
52                         irq_desc[i].probe_ok    = 0;
53                 }
54         }
55 }
56
57 static struct map_desc tbox_io_desc[] __initdata = {
58         /* See hardware.h for details */
59         { IO_BASE,      IO_START,       0x00100000, MT_DEVICE }
60 };
61
62 static void __init tbox_map_io(void)
63 {
64         iotable_init(tbox_io_desc, ARRAY_SIZE(tbox_io_desc));
65 }
66
67 MACHINE_START(TBOX, "unknown-TBOX")
68         MAINTAINER("Philip Blundell")
69         BOOT_MEM(0x80000000, 0x00400000, 0xe0000000)
70         MAPIO(tbox_map_io)
71         INITIRQ(tbox_init_irq)
72 MACHINE_END
73