diff options
Diffstat (limited to 'arch/arm/mach-clps711x')
24 files changed, 947 insertions, 12 deletions
diff --git a/arch/arm/mach-clps711x/autcpu12.c b/arch/arm/mach-clps711x/autcpu12.c index 25d18b738bd8..474616dcd7a6 100644 --- a/arch/arm/mach-clps711x/autcpu12.c +++ b/arch/arm/mach-clps711x/autcpu12.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <linux/string.h> | 23 | #include <linux/string.h> |
24 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
25 | 25 | ||
26 | #include <asm/arch/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <asm/sizes.h> | 27 | #include <asm/sizes.h> |
28 | #include <asm/io.h> | 28 | #include <asm/io.h> |
29 | #include <asm/setup.h> | 29 | #include <asm/setup.h> |
@@ -33,7 +33,7 @@ | |||
33 | #include <asm/page.h> | 33 | #include <asm/page.h> |
34 | 34 | ||
35 | #include <asm/mach/map.h> | 35 | #include <asm/mach/map.h> |
36 | #include <asm/arch/autcpu12.h> | 36 | #include <mach/autcpu12.h> |
37 | 37 | ||
38 | #include "common.h" | 38 | #include "common.h" |
39 | 39 | ||
diff --git a/arch/arm/mach-clps711x/cdb89712.c b/arch/arm/mach-clps711x/cdb89712.c index 8520cb0fdab7..aa02aa5a01f4 100644 --- a/arch/arm/mach-clps711x/cdb89712.c +++ b/arch/arm/mach-clps711x/cdb89712.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <linux/string.h> | 23 | #include <linux/string.h> |
24 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
25 | 25 | ||
26 | #include <asm/arch/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | 27 | #include <asm/io.h> |
28 | #include <asm/pgtable.h> | 28 | #include <asm/pgtable.h> |
29 | #include <asm/page.h> | 29 | #include <asm/page.h> |
diff --git a/arch/arm/mach-clps711x/ceiva.c b/arch/arm/mach-clps711x/ceiva.c index 9444ab1ffaa5..8ada20184978 100644 --- a/arch/arm/mach-clps711x/ceiva.c +++ b/arch/arm/mach-clps711x/ceiva.c | |||
@@ -27,7 +27,7 @@ | |||
27 | 27 | ||
28 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
29 | 29 | ||
30 | #include <asm/arch/hardware.h> | 30 | #include <mach/hardware.h> |
31 | #include <asm/page.h> | 31 | #include <asm/page.h> |
32 | #include <asm/pgtable.h> | 32 | #include <asm/pgtable.h> |
33 | #include <asm/sizes.h> | 33 | #include <asm/sizes.h> |
diff --git a/arch/arm/mach-clps711x/edb7211-mm.c b/arch/arm/mach-clps711x/edb7211-mm.c index 06f64ec57ae4..c58e32ec4c5d 100644 --- a/arch/arm/mach-clps711x/edb7211-mm.c +++ b/arch/arm/mach-clps711x/edb7211-mm.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | 24 | ||
25 | #include <asm/arch/hardware.h> | 25 | #include <mach/hardware.h> |
26 | #include <asm/page.h> | 26 | #include <asm/page.h> |
27 | #include <asm/pgtable.h> | 27 | #include <asm/pgtable.h> |
28 | #include <asm/sizes.h> | 28 | #include <asm/sizes.h> |
diff --git a/arch/arm/mach-clps711x/fortunet.c b/arch/arm/mach-clps711x/fortunet.c index c457a35de4ec..7122b3d21043 100644 --- a/arch/arm/mach-clps711x/fortunet.c +++ b/arch/arm/mach-clps711x/fortunet.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | #include <linux/initrd.h> | 24 | #include <linux/initrd.h> |
25 | 25 | ||
26 | #include <asm/arch/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
28 | #include <asm/setup.h> | 28 | #include <asm/setup.h> |
29 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-clps711x/include/mach/autcpu12.h b/arch/arm/mach-clps711x/include/mach/autcpu12.h new file mode 100644 index 000000000000..1588a365f610 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/autcpu12.h | |||
@@ -0,0 +1,78 @@ | |||
1 | /* | ||
2 | * AUTCPU12 specific defines | ||
3 | * | ||
4 | * (c) 2001 Thomas Gleixner, autronix automation <gleixner@autronix.de> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | #ifndef __ASM_ARCH_AUTCPU12_H | ||
21 | #define __ASM_ARCH_AUTCPU12_H | ||
22 | |||
23 | /* | ||
24 | * The CS8900A ethernet chip has its I/O registers wired to chip select 2 | ||
25 | * (nCS2). This is the mapping for it. | ||
26 | */ | ||
27 | #define AUTCPU12_PHYS_CS8900A CS2_PHYS_BASE /* physical */ | ||
28 | #define AUTCPU12_VIRT_CS8900A (0xfe000000) /* virtual */ | ||
29 | |||
30 | /* | ||
31 | * The flash bank is wired to chip select 0 | ||
32 | */ | ||
33 | #define AUTCPU12_PHYS_FLASH CS0_PHYS_BASE /* physical */ | ||
34 | |||
35 | /* offset for device specific information structure */ | ||
36 | #define AUTCPU12_LCDINFO_OFFS (0x00010000) | ||
37 | /* | ||
38 | * Videomemory is the internal SRAM (CS 6) | ||
39 | */ | ||
40 | #define AUTCPU12_PHYS_VIDEO CS6_PHYS_BASE | ||
41 | #define AUTCPU12_VIRT_VIDEO (0xfd000000) | ||
42 | |||
43 | /* | ||
44 | * All special IO's are tied to CS1 | ||
45 | */ | ||
46 | #define AUTCPU12_PHYS_CHAR_LCD CS1_PHYS_BASE +0x00000000 /* physical */ | ||
47 | |||
48 | #define AUTCPU12_PHYS_NVRAM CS1_PHYS_BASE +0x02000000 /* physical */ | ||
49 | |||
50 | #define AUTCPU12_PHYS_CSAUX1 CS1_PHYS_BASE +0x04000000 /* physical */ | ||
51 | |||
52 | #define AUTCPU12_PHYS_SMC CS1_PHYS_BASE +0x06000000 /* physical */ | ||
53 | |||
54 | #define AUTCPU12_PHYS_CAN CS1_PHYS_BASE +0x08000000 /* physical */ | ||
55 | |||
56 | #define AUTCPU12_PHYS_TOUCH CS1_PHYS_BASE +0x0A000000 /* physical */ | ||
57 | |||
58 | #define AUTCPU12_PHYS_IO CS1_PHYS_BASE +0x0C000000 /* physical */ | ||
59 | |||
60 | #define AUTCPU12_PHYS_LPT CS1_PHYS_BASE +0x0E000000 /* physical */ | ||
61 | |||
62 | /* | ||
63 | * defines for smartmedia card access | ||
64 | */ | ||
65 | #define AUTCPU12_SMC_RDY (1<<2) | ||
66 | #define AUTCPU12_SMC_ALE (1<<3) | ||
67 | #define AUTCPU12_SMC_CLE (1<<4) | ||
68 | #define AUTCPU12_SMC_PORT_OFFSET PBDR | ||
69 | #define AUTCPU12_SMC_SELECT_OFFSET 0x10 | ||
70 | /* | ||
71 | * defines for lcd contrast | ||
72 | */ | ||
73 | #define AUTCPU12_DPOT_PORT_OFFSET PEDR | ||
74 | #define AUTCPU12_DPOT_CS (1<<0) | ||
75 | #define AUTCPU12_DPOT_CLK (1<<1) | ||
76 | #define AUTCPU12_DPOT_UD (1<<2) | ||
77 | |||
78 | #endif | ||
diff --git a/arch/arm/mach-clps711x/include/mach/debug-macro.S b/arch/arm/mach-clps711x/include/mach/debug-macro.S new file mode 100644 index 000000000000..64baf9f87408 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/debug-macro.S | |||
@@ -0,0 +1,46 @@ | |||
1 | /* arch/arm/mach-clps711x/include/mach/debug-macro.S | ||
2 | * | ||
3 | * Debugging macro include header | ||
4 | * | ||
5 | * Copyright (C) 1994-1999 Russell King | ||
6 | * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | * | ||
12 | */ | ||
13 | |||
14 | #include <asm/hardware/clps7111.h> | ||
15 | |||
16 | .macro addruart,rx | ||
17 | mrc p15, 0, \rx, c1, c0 | ||
18 | tst \rx, #1 @ MMU enabled? | ||
19 | moveq \rx, #CLPS7111_PHYS_BASE | ||
20 | movne \rx, #CLPS7111_VIRT_BASE | ||
21 | #ifndef CONFIG_DEBUG_CLPS711X_UART2 | ||
22 | add \rx, \rx, #0x0000 @ UART1 | ||
23 | #else | ||
24 | add \rx, \rx, #0x1000 @ UART2 | ||
25 | #endif | ||
26 | .endm | ||
27 | |||
28 | .macro senduart,rd,rx | ||
29 | str \rd, [\rx, #0x0480] @ UARTDR | ||
30 | .endm | ||
31 | |||
32 | .macro waituart,rd,rx | ||
33 | 1001: ldr \rd, [\rx, #0x0140] @ SYSFLGx | ||
34 | tst \rd, #1 << 11 @ UBUSYx | ||
35 | bne 1001b | ||
36 | .endm | ||
37 | |||
38 | .macro busyuart,rd,rx | ||
39 | tst \rx, #0x1000 @ UART2 does not have CTS here | ||
40 | bne 1002f | ||
41 | 1001: ldr \rd, [\rx, #0x0140] @ SYSFLGx | ||
42 | tst \rd, #1 << 8 @ CTS | ||
43 | bne 1001b | ||
44 | 1002: | ||
45 | .endm | ||
46 | |||
diff --git a/arch/arm/mach-clps711x/include/mach/dma.h b/arch/arm/mach-clps711x/include/mach/dma.h new file mode 100644 index 000000000000..0d620e869536 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/dma.h | |||
@@ -0,0 +1,19 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/dma.h | ||
3 | * | ||
4 | * Copyright (C) 1997,1998 Russell King | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
diff --git a/arch/arm/mach-clps711x/include/mach/entry-macro.S b/arch/arm/mach-clps711x/include/mach/entry-macro.S new file mode 100644 index 000000000000..90fa2f70489f --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/entry-macro.S | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/entry-macro.S | ||
3 | * | ||
4 | * Low-level IRQ helper macros for CLPS711X-based platforms | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | #include <mach/hardware.h> | ||
11 | #include <asm/hardware/clps7111.h> | ||
12 | |||
13 | .macro disable_fiq | ||
14 | .endm | ||
15 | |||
16 | .macro get_irqnr_preamble, base, tmp | ||
17 | .endm | ||
18 | |||
19 | .macro arch_ret_to_user, tmp1, tmp2 | ||
20 | .endm | ||
21 | |||
22 | #if (INTSR2 - INTSR1) != (INTMR2 - INTMR1) | ||
23 | #error INTSR stride != INTMR stride | ||
24 | #endif | ||
25 | |||
26 | .macro get_irqnr_and_base, irqnr, stat, base, mask | ||
27 | mov \base, #CLPS7111_BASE | ||
28 | ldr \stat, [\base, #INTSR1] | ||
29 | ldr \mask, [\base, #INTMR1] | ||
30 | mov \irqnr, #4 | ||
31 | mov \mask, \mask, lsl #16 | ||
32 | and \stat, \stat, \mask, lsr #16 | ||
33 | movs \stat, \stat, lsr #4 | ||
34 | bne 1001f | ||
35 | |||
36 | add \base, \base, #INTSR2 - INTSR1 | ||
37 | ldr \stat, [\base, #INTSR1] | ||
38 | ldr \mask, [\base, #INTMR1] | ||
39 | mov \irqnr, #16 | ||
40 | mov \mask, \mask, lsl #16 | ||
41 | and \stat, \stat, \mask, lsr #16 | ||
42 | |||
43 | 1001: tst \stat, #255 | ||
44 | addeq \irqnr, \irqnr, #8 | ||
45 | moveq \stat, \stat, lsr #8 | ||
46 | tst \stat, #15 | ||
47 | addeq \irqnr, \irqnr, #4 | ||
48 | moveq \stat, \stat, lsr #4 | ||
49 | tst \stat, #3 | ||
50 | addeq \irqnr, \irqnr, #2 | ||
51 | moveq \stat, \stat, lsr #2 | ||
52 | tst \stat, #1 | ||
53 | addeq \irqnr, \irqnr, #1 | ||
54 | moveq \stat, \stat, lsr #1 | ||
55 | tst \stat, #1 @ bit 0 should be set | ||
56 | .endm | ||
57 | |||
58 | |||
diff --git a/arch/arm/mach-clps711x/include/mach/hardware.h b/arch/arm/mach-clps711x/include/mach/hardware.h new file mode 100644 index 000000000000..4c3e101b96c9 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/hardware.h | |||
@@ -0,0 +1,237 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/hardware.h | ||
3 | * | ||
4 | * This file contains the hardware definitions of the Prospector P720T. | ||
5 | * | ||
6 | * Copyright (C) 2000 Deep Blue Solutions Ltd. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
21 | */ | ||
22 | #ifndef __ASM_ARCH_HARDWARE_H | ||
23 | #define __ASM_ARCH_HARDWARE_H | ||
24 | |||
25 | |||
26 | #define CLPS7111_VIRT_BASE 0xff000000 | ||
27 | #define CLPS7111_BASE CLPS7111_VIRT_BASE | ||
28 | |||
29 | /* | ||
30 | * The physical addresses that the external chip select signals map to is | ||
31 | * dependent on the setting of the nMEDCHG signal on EP7211 and EP7212 | ||
32 | * processors. CONFIG_EP72XX_BOOT_ROM is only available if these | ||
33 | * processors are in use. | ||
34 | */ | ||
35 | #ifndef CONFIG_EP72XX_ROM_BOOT | ||
36 | #define CS0_PHYS_BASE (0x00000000) | ||
37 | #define CS1_PHYS_BASE (0x10000000) | ||
38 | #define CS2_PHYS_BASE (0x20000000) | ||
39 | #define CS3_PHYS_BASE (0x30000000) | ||
40 | #define CS4_PHYS_BASE (0x40000000) | ||
41 | #define CS5_PHYS_BASE (0x50000000) | ||
42 | #define CS6_PHYS_BASE (0x60000000) | ||
43 | #define CS7_PHYS_BASE (0x70000000) | ||
44 | #else | ||
45 | #define CS0_PHYS_BASE (0x70000000) | ||
46 | #define CS1_PHYS_BASE (0x60000000) | ||
47 | #define CS2_PHYS_BASE (0x50000000) | ||
48 | #define CS3_PHYS_BASE (0x40000000) | ||
49 | #define CS4_PHYS_BASE (0x30000000) | ||
50 | #define CS5_PHYS_BASE (0x20000000) | ||
51 | #define CS6_PHYS_BASE (0x10000000) | ||
52 | #define CS7_PHYS_BASE (0x00000000) | ||
53 | #endif | ||
54 | |||
55 | #if defined (CONFIG_ARCH_EP7211) | ||
56 | |||
57 | #define EP7211_VIRT_BASE CLPS7111_VIRT_BASE | ||
58 | #define EP7211_BASE CLPS7111_VIRT_BASE | ||
59 | #include <asm/hardware/ep7211.h> | ||
60 | |||
61 | #elif defined (CONFIG_ARCH_EP7212) | ||
62 | |||
63 | #define EP7212_VIRT_BASE CLPS7111_VIRT_BASE | ||
64 | #define EP7212_BASE CLPS7111_VIRT_BASE | ||
65 | #include <asm/hardware/ep7212.h> | ||
66 | |||
67 | #endif | ||
68 | |||
69 | #define SYSPLD_VIRT_BASE 0xfe000000 | ||
70 | #define SYSPLD_BASE SYSPLD_VIRT_BASE | ||
71 | |||
72 | #ifndef __ASSEMBLER__ | ||
73 | |||
74 | #define PCIO_BASE IO_BASE | ||
75 | |||
76 | #endif | ||
77 | |||
78 | |||
79 | #if defined (CONFIG_ARCH_AUTCPU12) | ||
80 | |||
81 | #define CS89712_VIRT_BASE CLPS7111_VIRT_BASE | ||
82 | #define CS89712_BASE CLPS7111_VIRT_BASE | ||
83 | |||
84 | #include <asm/hardware/clps7111.h> | ||
85 | #include <asm/hardware/ep7212.h> | ||
86 | #include <asm/hardware/cs89712.h> | ||
87 | |||
88 | #endif | ||
89 | |||
90 | |||
91 | #if defined (CONFIG_ARCH_CDB89712) | ||
92 | |||
93 | #include <asm/hardware/clps7111.h> | ||
94 | #include <asm/hardware/ep7212.h> | ||
95 | #include <asm/hardware/cs89712.h> | ||
96 | |||
97 | /* dynamic ioremap() areas */ | ||
98 | #define FLASH_START 0x00000000 | ||
99 | #define FLASH_SIZE 0x800000 | ||
100 | #define FLASH_WIDTH 4 | ||
101 | |||
102 | #define SRAM_START 0x60000000 | ||
103 | #define SRAM_SIZE 0xc000 | ||
104 | #define SRAM_WIDTH 4 | ||
105 | |||
106 | #define BOOTROM_START 0x70000000 | ||
107 | #define BOOTROM_SIZE 0x80 | ||
108 | #define BOOTROM_WIDTH 4 | ||
109 | |||
110 | |||
111 | /* static cdb89712_map_io() areas */ | ||
112 | #define REGISTER_START 0x80000000 | ||
113 | #define REGISTER_SIZE 0x4000 | ||
114 | #define REGISTER_BASE 0xff000000 | ||
115 | |||
116 | #define ETHER_START 0x20000000 | ||
117 | #define ETHER_SIZE 0x1000 | ||
118 | #define ETHER_BASE 0xfe000000 | ||
119 | |||
120 | #endif | ||
121 | |||
122 | |||
123 | #if defined (CONFIG_ARCH_EDB7211) | ||
124 | |||
125 | /* | ||
126 | * The extra 8 lines of the keyboard matrix are wired to chip select 3 (nCS3) | ||
127 | * and repeat across it. This is the mapping for it. | ||
128 | * | ||
129 | * In jumpered boot mode, nCS3 is mapped to 0x4000000, not 0x3000000. This | ||
130 | * was cause for much consternation and headscratching. This should probably | ||
131 | * be made a compile/run time kernel option. | ||
132 | */ | ||
133 | #define EP7211_PHYS_EXTKBD CS3_PHYS_BASE /* physical */ | ||
134 | |||
135 | #define EP7211_VIRT_EXTKBD (0xfd000000) /* virtual */ | ||
136 | |||
137 | |||
138 | /* | ||
139 | * The CS8900A ethernet chip has its I/O registers wired to chip select 2 | ||
140 | * (nCS2). This is the mapping for it. | ||
141 | * | ||
142 | * In jumpered boot mode, nCS2 is mapped to 0x5000000, not 0x2000000. This | ||
143 | * was cause for much consternation and headscratching. This should probably | ||
144 | * be made a compile/run time kernel option. | ||
145 | */ | ||
146 | #define EP7211_PHYS_CS8900A CS2_PHYS_BASE /* physical */ | ||
147 | |||
148 | #define EP7211_VIRT_CS8900A (0xfc000000) /* virtual */ | ||
149 | |||
150 | |||
151 | /* | ||
152 | * The two flash banks are wired to chip selects 0 and 1. This is the mapping | ||
153 | * for them. | ||
154 | * | ||
155 | * nCS0 and nCS1 are at 0x70000000 and 0x60000000, respectively, when running | ||
156 | * in jumpered boot mode. | ||
157 | */ | ||
158 | #define EP7211_PHYS_FLASH1 CS0_PHYS_BASE /* physical */ | ||
159 | #define EP7211_PHYS_FLASH2 CS1_PHYS_BASE /* physical */ | ||
160 | |||
161 | #define EP7211_VIRT_FLASH1 (0xfa000000) /* virtual */ | ||
162 | #define EP7211_VIRT_FLASH2 (0xfb000000) /* virtual */ | ||
163 | |||
164 | #endif /* CONFIG_ARCH_EDB7211 */ | ||
165 | |||
166 | |||
167 | /* | ||
168 | * Relevant bits in port D, which controls power to the various parts of | ||
169 | * the LCD on the EDB7211. | ||
170 | */ | ||
171 | #define EDB_PD1_LCD_DC_DC_EN (1<<1) | ||
172 | #define EDB_PD2_LCDEN (1<<2) | ||
173 | #define EDB_PD3_LCDBL (1<<3) | ||
174 | |||
175 | |||
176 | #if defined (CONFIG_ARCH_CEIVA) | ||
177 | |||
178 | #define CEIVA_VIRT_BASE CLPS7111_VIRT_BASE | ||
179 | #define CEIVA_BASE CLPS7111_VIRT_BASE | ||
180 | |||
181 | #include <asm/hardware/clps7111.h> | ||
182 | #include <asm/hardware/ep7212.h> | ||
183 | |||
184 | |||
185 | /* | ||
186 | * The two flash banks are wired to chip selects 0 and 1. This is the mapping | ||
187 | * for them. | ||
188 | * | ||
189 | * nCS0 and nCS1 are at 0x70000000 and 0x60000000, respectively, when running | ||
190 | * in jumpered boot mode. | ||
191 | */ | ||
192 | #define CEIVA_PHYS_FLASH1 CS0_PHYS_BASE /* physical */ | ||
193 | #define CEIVA_PHYS_FLASH2 CS1_PHYS_BASE /* physical */ | ||
194 | |||
195 | #define CEIVA_VIRT_FLASH1 (0xfa000000) /* virtual */ | ||
196 | #define CEIVA_VIRT_FLASH2 (0xfb000000) /* virtual */ | ||
197 | |||
198 | #define CEIVA_FLASH_SIZE 0x100000 | ||
199 | #define CEIVA_FLASH_WIDTH 2 | ||
200 | |||
201 | #define SRAM_START 0x60000000 | ||
202 | #define SRAM_SIZE 0xc000 | ||
203 | #define SRAM_WIDTH 4 | ||
204 | |||
205 | #define BOOTROM_START 0x70000000 | ||
206 | #define BOOTROM_SIZE 0x80 | ||
207 | #define BOOTROM_WIDTH 4 | ||
208 | |||
209 | /* | ||
210 | * SED1355 LCD controller | ||
211 | */ | ||
212 | #define CEIVA_PHYS_SED1355 CS2_PHYS_BASE | ||
213 | #define CEIVA_VIRT_SED1355 (0xfc000000) | ||
214 | |||
215 | /* | ||
216 | * Relevant bits in port D, which controls power to the various parts of | ||
217 | * the LCD on the Ceiva Photo Max, and reset to the LCD controller. | ||
218 | */ | ||
219 | |||
220 | // Reset line to SED1355 (must be high to operate) | ||
221 | #define CEIVA_PD1_LCDRST (1<<1) | ||
222 | // LCD panel enable (set to one, to enable LCD) | ||
223 | #define CEIVA_PD4_LCDEN (1<<4) | ||
224 | // Backlight (set to one, to turn on backlight | ||
225 | #define CEIVA_PD5_LCDBL (1<<5) | ||
226 | |||
227 | /* | ||
228 | * Relevant bits in port B, which report the status of the buttons. | ||
229 | */ | ||
230 | |||
231 | // White button | ||
232 | #define CEIVA_PB4_WHT_BTN (1<<4) | ||
233 | // Black button | ||
234 | #define CEIVA_PB0_BLK_BTN (1<<0) | ||
235 | #endif // #if defined (CONFIG_ARCH_CEIVA) | ||
236 | |||
237 | #endif | ||
diff --git a/arch/arm/mach-clps711x/include/mach/io.h b/arch/arm/mach-clps711x/include/mach/io.h new file mode 100644 index 000000000000..4c8440087679 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/io.h | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/io.h | ||
3 | * | ||
4 | * Copyright (C) 1999 ARM Limited | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | #ifndef __ASM_ARM_ARCH_IO_H | ||
21 | #define __ASM_ARM_ARCH_IO_H | ||
22 | |||
23 | #include <mach/hardware.h> | ||
24 | |||
25 | #define IO_SPACE_LIMIT 0xffffffff | ||
26 | |||
27 | #define __io(a) ((void __iomem *)(a)) | ||
28 | #define __mem_pci(a) (a) | ||
29 | |||
30 | /* | ||
31 | * We don't support ins[lb]/outs[lb]. Make them fault. | ||
32 | */ | ||
33 | #define __raw_readsb(p,d,l) do { *(int *)0 = 0; } while (0) | ||
34 | #define __raw_readsl(p,d,l) do { *(int *)0 = 0; } while (0) | ||
35 | #define __raw_writesb(p,d,l) do { *(int *)0 = 0; } while (0) | ||
36 | #define __raw_writesl(p,d,l) do { *(int *)0 = 0; } while (0) | ||
37 | |||
38 | #endif | ||
diff --git a/arch/arm/mach-clps711x/include/mach/irqs.h b/arch/arm/mach-clps711x/include/mach/irqs.h new file mode 100644 index 000000000000..30b7e97285a4 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/irqs.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/irqs.h | ||
3 | * | ||
4 | * Copyright (C) 2000 Deep Blue Solutions Ltd. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | |||
21 | /* | ||
22 | * Interrupts from INTSR1 | ||
23 | */ | ||
24 | #define IRQ_CSINT 4 | ||
25 | #define IRQ_EINT1 5 | ||
26 | #define IRQ_EINT2 6 | ||
27 | #define IRQ_EINT3 7 | ||
28 | #define IRQ_TC1OI 8 | ||
29 | #define IRQ_TC2OI 9 | ||
30 | #define IRQ_RTCMI 10 | ||
31 | #define IRQ_TINT 11 | ||
32 | #define IRQ_UTXINT1 12 | ||
33 | #define IRQ_URXINT1 13 | ||
34 | #define IRQ_UMSINT 14 | ||
35 | #define IRQ_SSEOTI 15 | ||
36 | |||
37 | #define INT1_IRQS (0x0000fff0) | ||
38 | #define INT1_ACK_IRQS (0x00004f10) | ||
39 | |||
40 | /* | ||
41 | * Interrupts from INTSR2 | ||
42 | */ | ||
43 | #define IRQ_KBDINT (16+0) /* bit 0 */ | ||
44 | #define IRQ_SS2RX (16+1) /* bit 1 */ | ||
45 | #define IRQ_SS2TX (16+2) /* bit 2 */ | ||
46 | #define IRQ_UTXINT2 (16+12) /* bit 12 */ | ||
47 | #define IRQ_URXINT2 (16+13) /* bit 13 */ | ||
48 | |||
49 | #define INT2_IRQS (0x30070000) | ||
50 | #define INT2_ACK_IRQS (0x00010000) | ||
51 | |||
52 | #define NR_IRQS 30 | ||
53 | |||
diff --git a/arch/arm/mach-clps711x/include/mach/memory.h b/arch/arm/mach-clps711x/include/mach/memory.h new file mode 100644 index 000000000000..71c2fa70c8e8 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/memory.h | |||
@@ -0,0 +1,94 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/memory.h | ||
3 | * | ||
4 | * Copyright (C) 1999 ARM Limited | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | #ifndef __ASM_ARCH_MEMORY_H | ||
21 | #define __ASM_ARCH_MEMORY_H | ||
22 | |||
23 | |||
24 | /* | ||
25 | * Physical DRAM offset. | ||
26 | */ | ||
27 | #define PHYS_OFFSET UL(0xc0000000) | ||
28 | |||
29 | /* | ||
30 | * Virtual view <-> DMA view memory address translations | ||
31 | * virt_to_bus: Used to translate the virtual address to an | ||
32 | * address suitable to be passed to set_dma_addr | ||
33 | * bus_to_virt: Used to convert an address for DMA operations | ||
34 | * to an address that the kernel can use. | ||
35 | */ | ||
36 | |||
37 | #if defined(CONFIG_ARCH_CDB89712) | ||
38 | |||
39 | #define __virt_to_bus(x) (x) | ||
40 | #define __bus_to_virt(x) (x) | ||
41 | |||
42 | #elif defined (CONFIG_ARCH_AUTCPU12) | ||
43 | |||
44 | #define __virt_to_bus(x) (x) | ||
45 | #define __bus_to_virt(x) (x) | ||
46 | |||
47 | #else | ||
48 | |||
49 | #define __virt_to_bus(x) ((x) - PAGE_OFFSET) | ||
50 | #define __bus_to_virt(x) ((x) + PAGE_OFFSET) | ||
51 | |||
52 | #endif | ||
53 | |||
54 | |||
55 | /* | ||
56 | * Like the SA1100, the EDB7211 has a large gap between physical RAM | ||
57 | * banks. In 2.2, the Psion (CL-PS7110) port added custom support for | ||
58 | * discontiguous physical memory. In 2.4, we can use the standard | ||
59 | * Linux NUMA support. | ||
60 | * | ||
61 | * This is not necessary for EP7211 implementations with only one used | ||
62 | * memory bank. For those systems, simply undefine CONFIG_DISCONTIGMEM. | ||
63 | */ | ||
64 | |||
65 | /* | ||
66 | * The PS7211 allows up to 256MB max per DRAM bank, but the EDB7211 | ||
67 | * uses only one of the two banks (bank #1). However, even within | ||
68 | * bank #1, memory is discontiguous. | ||
69 | * | ||
70 | * The EDB7211 has two 8MB DRAM areas with 8MB of empty space between | ||
71 | * them, so we use 24 for the node max shift to get 16MB node sizes. | ||
72 | */ | ||
73 | |||
74 | /* | ||
75 | * Because of the wide memory address space between physical RAM banks on the | ||
76 | * SA1100, it's much more convenient to use Linux's NUMA support to implement | ||
77 | * our memory map representation. Assuming all memory nodes have equal access | ||
78 | * characteristics, we then have generic discontiguous memory support. | ||
79 | * | ||
80 | * Of course, all this isn't mandatory for SA1100 implementations with only | ||
81 | * one used memory bank. For those, simply undefine CONFIG_DISCONTIGMEM. | ||
82 | * | ||
83 | * The nodes are matched with the physical memory bank addresses which are | ||
84 | * incidentally the same as virtual addresses. | ||
85 | * | ||
86 | * node 0: 0xc0000000 - 0xc7ffffff | ||
87 | * node 1: 0xc8000000 - 0xcfffffff | ||
88 | * node 2: 0xd0000000 - 0xd7ffffff | ||
89 | * node 3: 0xd8000000 - 0xdfffffff | ||
90 | */ | ||
91 | #define NODE_MEM_SIZE_BITS 24 | ||
92 | |||
93 | #endif | ||
94 | |||
diff --git a/arch/arm/mach-clps711x/include/mach/syspld.h b/arch/arm/mach-clps711x/include/mach/syspld.h new file mode 100644 index 000000000000..f7f4c1201898 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/syspld.h | |||
@@ -0,0 +1,121 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/syspld.h | ||
3 | * | ||
4 | * System Control PLD register definitions. | ||
5 | * | ||
6 | * Copyright (C) 2000 Deep Blue Solutions Ltd. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
21 | */ | ||
22 | #ifndef __ASM_ARCH_SYSPLD_H | ||
23 | #define __ASM_ARCH_SYSPLD_H | ||
24 | |||
25 | #define SYSPLD_PHYS_BASE (0x10000000) | ||
26 | |||
27 | #ifndef __ASSEMBLY__ | ||
28 | #include <asm/types.h> | ||
29 | |||
30 | #define SYSPLD_REG(type,off) (*(volatile type *)(SYSPLD_BASE + off)) | ||
31 | #else | ||
32 | #define SYSPLD_REG(type,off) (off) | ||
33 | #endif | ||
34 | |||
35 | #define PLD_INT SYSPLD_REG(u32, 0x000000) | ||
36 | #define PLD_INT_PENIRQ (1 << 5) | ||
37 | #define PLD_INT_UCB_IRQ (1 << 1) | ||
38 | #define PLD_INT_KBD_ATN (1 << 0) /* EINT1 */ | ||
39 | |||
40 | #define PLD_PWR SYSPLD_REG(u32, 0x000004) | ||
41 | #define PLD_PWR_EXT (1 << 5) | ||
42 | #define PLD_PWR_MODE (1 << 4) /* 1 = PWM, 0 = PFM */ | ||
43 | #define PLD_S4_ON (1 << 3) /* LCD bias voltage enable */ | ||
44 | #define PLD_S3_ON (1 << 2) /* LCD backlight enable */ | ||
45 | #define PLD_S2_ON (1 << 1) /* LCD 3V3 supply enable */ | ||
46 | #define PLD_S1_ON (1 << 0) /* LCD 3V supply enable */ | ||
47 | |||
48 | #define PLD_KBD SYSPLD_REG(u32, 0x000008) | ||
49 | #define PLD_KBD_WAKE (1 << 1) | ||
50 | #define PLD_KBD_EN (1 << 0) | ||
51 | |||
52 | #define PLD_SPI SYSPLD_REG(u32, 0x00000c) | ||
53 | #define PLD_SPI_EN (1 << 0) | ||
54 | |||
55 | #define PLD_IO SYSPLD_REG(u32, 0x000010) | ||
56 | #define PLD_IO_BOOTSEL (1 << 6) /* boot sel switch */ | ||
57 | #define PLD_IO_USER (1 << 5) /* user defined switch */ | ||
58 | #define PLD_IO_LED3 (1 << 4) | ||
59 | #define PLD_IO_LED2 (1 << 3) | ||
60 | #define PLD_IO_LED1 (1 << 2) | ||
61 | #define PLD_IO_LED0 (1 << 1) | ||
62 | #define PLD_IO_LEDEN (1 << 0) | ||
63 | |||
64 | #define PLD_IRDA SYSPLD_REG(u32, 0x000014) | ||
65 | #define PLD_IRDA_EN (1 << 0) | ||
66 | |||
67 | #define PLD_COM2 SYSPLD_REG(u32, 0x000018) | ||
68 | #define PLD_COM2_EN (1 << 0) | ||
69 | |||
70 | #define PLD_COM1 SYSPLD_REG(u32, 0x00001c) | ||
71 | #define PLD_COM1_EN (1 << 0) | ||
72 | |||
73 | #define PLD_AUD SYSPLD_REG(u32, 0x000020) | ||
74 | #define PLD_AUD_DIV1 (1 << 6) | ||
75 | #define PLD_AUD_DIV0 (1 << 5) | ||
76 | #define PLD_AUD_CLK_SEL1 (1 << 4) | ||
77 | #define PLD_AUD_CLK_SEL0 (1 << 3) | ||
78 | #define PLD_AUD_MIC_PWR (1 << 2) | ||
79 | #define PLD_AUD_MIC_GAIN (1 << 1) | ||
80 | #define PLD_AUD_CODEC_EN (1 << 0) | ||
81 | |||
82 | #define PLD_CF SYSPLD_REG(u32, 0x000024) | ||
83 | #define PLD_CF2_SLEEP (1 << 5) | ||
84 | #define PLD_CF1_SLEEP (1 << 4) | ||
85 | #define PLD_CF2_nPDREQ (1 << 3) | ||
86 | #define PLD_CF1_nPDREQ (1 << 2) | ||
87 | #define PLD_CF2_nIRQ (1 << 1) | ||
88 | #define PLD_CF1_nIRQ (1 << 0) | ||
89 | |||
90 | #define PLD_SDC SYSPLD_REG(u32, 0x000028) | ||
91 | #define PLD_SDC_INT_EN (1 << 2) | ||
92 | #define PLD_SDC_WP (1 << 1) | ||
93 | #define PLD_SDC_CD (1 << 0) | ||
94 | |||
95 | #define PLD_FPGA SYSPLD_REG(u32, 0x00002c) | ||
96 | |||
97 | #define PLD_CODEC SYSPLD_REG(u32, 0x400000) | ||
98 | #define PLD_CODEC_IRQ3 (1 << 4) | ||
99 | #define PLD_CODEC_IRQ2 (1 << 3) | ||
100 | #define PLD_CODEC_IRQ1 (1 << 2) | ||
101 | #define PLD_CODEC_EN (1 << 0) | ||
102 | |||
103 | #define PLD_BRITE SYSPLD_REG(u32, 0x400004) | ||
104 | #define PLD_BRITE_UP (1 << 1) | ||
105 | #define PLD_BRITE_DN (1 << 0) | ||
106 | |||
107 | #define PLD_LCDEN SYSPLD_REG(u32, 0x400008) | ||
108 | #define PLD_LCDEN_EN (1 << 0) | ||
109 | |||
110 | #define PLD_ID SYSPLD_REG(u32, 0x40000c) | ||
111 | |||
112 | #define PLD_TCH SYSPLD_REG(u32, 0x400010) | ||
113 | #define PLD_TCH_PENIRQ (1 << 1) | ||
114 | #define PLD_TCH_EN (1 << 0) | ||
115 | |||
116 | #define PLD_GPIO SYSPLD_REG(u32, 0x400014) | ||
117 | #define PLD_GPIO2 (1 << 2) | ||
118 | #define PLD_GPIO1 (1 << 1) | ||
119 | #define PLD_GPIO0 (1 << 0) | ||
120 | |||
121 | #endif | ||
diff --git a/arch/arm/mach-clps711x/include/mach/system.h b/arch/arm/mach-clps711x/include/mach/system.h new file mode 100644 index 000000000000..a8eade40317f --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/system.h | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/system.h | ||
3 | * | ||
4 | * Copyright (C) 2000 Deep Blue Solutions Ltd | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | #ifndef __ASM_ARCH_SYSTEM_H | ||
21 | #define __ASM_ARCH_SYSTEM_H | ||
22 | |||
23 | #include <mach/hardware.h> | ||
24 | #include <asm/hardware/clps7111.h> | ||
25 | #include <asm/io.h> | ||
26 | |||
27 | static inline void arch_idle(void) | ||
28 | { | ||
29 | clps_writel(1, HALT); | ||
30 | __asm__ __volatile__( | ||
31 | "mov r0, r0\n\ | ||
32 | mov r0, r0"); | ||
33 | } | ||
34 | |||
35 | static inline void arch_reset(char mode) | ||
36 | { | ||
37 | cpu_reset(0); | ||
38 | } | ||
39 | |||
40 | #endif | ||
diff --git a/arch/arm/mach-clps711x/include/mach/time.h b/arch/arm/mach-clps711x/include/mach/time.h new file mode 100644 index 000000000000..8fe283ccd1f3 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/time.h | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/time.h | ||
3 | * | ||
4 | * Copyright (C) 2000 Deep Blue Solutions Ltd. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | #include <asm/leds.h> | ||
21 | #include <asm/hardware/clps7111.h> | ||
22 | |||
23 | extern void clps711x_setup_timer(void); | ||
24 | |||
25 | /* | ||
26 | * IRQ handler for the timer | ||
27 | */ | ||
28 | static irqreturn_t | ||
29 | p720t_timer_interrupt(int irq, void *dev_id) | ||
30 | { | ||
31 | struct pt_regs *regs = get_irq_regs(); | ||
32 | do_leds(); | ||
33 | do_timer(1); | ||
34 | #ifndef CONFIG_SMP | ||
35 | update_process_times(user_mode(regs)); | ||
36 | #endif | ||
37 | do_profile(regs); | ||
38 | return IRQ_HANDLED; | ||
39 | } | ||
40 | |||
41 | /* | ||
42 | * Set up timer interrupt, and return the current time in seconds. | ||
43 | */ | ||
44 | void __init time_init(void) | ||
45 | { | ||
46 | clps711x_setup_timer(); | ||
47 | timer_irq.handler = p720t_timer_interrupt; | ||
48 | setup_irq(IRQ_TC2OI, &timer_irq); | ||
49 | } | ||
diff --git a/arch/arm/mach-clps711x/include/mach/timex.h b/arch/arm/mach-clps711x/include/mach/timex.h new file mode 100644 index 000000000000..ac8823ccff93 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/timex.h | |||
@@ -0,0 +1,23 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/timex.h | ||
3 | * | ||
4 | * Prospector 720T architecture timex specifications | ||
5 | * | ||
6 | * Copyright (C) 2000 Deep Blue Solutions Ltd. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
21 | */ | ||
22 | |||
23 | #define CLOCK_TICK_RATE 512000 | ||
diff --git a/arch/arm/mach-clps711x/include/mach/uncompress.h b/arch/arm/mach-clps711x/include/mach/uncompress.h new file mode 100644 index 000000000000..7164310dea7c --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/uncompress.h | |||
@@ -0,0 +1,59 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/uncompress.h | ||
3 | * | ||
4 | * Copyright (C) 2000 Deep Blue Solutions Ltd | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | #include <mach/io.h> | ||
21 | #include <mach/hardware.h> | ||
22 | #include <asm/hardware/clps7111.h> | ||
23 | |||
24 | #undef CLPS7111_BASE | ||
25 | #define CLPS7111_BASE CLPS7111_PHYS_BASE | ||
26 | |||
27 | #define __raw_readl(p) (*(unsigned long *)(p)) | ||
28 | #define __raw_writel(v,p) (*(unsigned long *)(p) = (v)) | ||
29 | |||
30 | #ifdef CONFIG_DEBUG_CLPS711X_UART2 | ||
31 | #define SYSFLGx SYSFLG2 | ||
32 | #define UARTDRx UARTDR2 | ||
33 | #else | ||
34 | #define SYSFLGx SYSFLG1 | ||
35 | #define UARTDRx UARTDR1 | ||
36 | #endif | ||
37 | |||
38 | /* | ||
39 | * This does not append a newline | ||
40 | */ | ||
41 | static inline void putc(int c) | ||
42 | { | ||
43 | while (clps_readl(SYSFLGx) & SYSFLG_UTXFF) | ||
44 | barrier(); | ||
45 | clps_writel(c, UARTDRx); | ||
46 | } | ||
47 | |||
48 | static inline void flush(void) | ||
49 | { | ||
50 | while (clps_readl(SYSFLGx) & SYSFLG_UBUSY) | ||
51 | barrier(); | ||
52 | } | ||
53 | |||
54 | /* | ||
55 | * nothing to do | ||
56 | */ | ||
57 | #define arch_decomp_setup() | ||
58 | |||
59 | #define arch_decomp_wdog() | ||
diff --git a/arch/arm/mach-clps711x/include/mach/vmalloc.h b/arch/arm/mach-clps711x/include/mach/vmalloc.h new file mode 100644 index 000000000000..ea6cc7beff28 --- /dev/null +++ b/arch/arm/mach-clps711x/include/mach/vmalloc.h | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-clps711x/include/mach/vmalloc.h | ||
3 | * | ||
4 | * Copyright (C) 2000 Deep Blue Solutions Ltd. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | #define VMALLOC_END (PAGE_OFFSET + 0x10000000) | ||
diff --git a/arch/arm/mach-clps711x/irq.c b/arch/arm/mach-clps711x/irq.c index 6954a7a49156..38623cfcac5a 100644 --- a/arch/arm/mach-clps711x/irq.c +++ b/arch/arm/mach-clps711x/irq.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
22 | 22 | ||
23 | #include <asm/mach/irq.h> | 23 | #include <asm/mach/irq.h> |
24 | #include <asm/arch/hardware.h> | 24 | #include <mach/hardware.h> |
25 | #include <asm/io.h> | 25 | #include <asm/io.h> |
26 | #include <asm/irq.h> | 26 | #include <asm/irq.h> |
27 | 27 | ||
diff --git a/arch/arm/mach-clps711x/mm.c b/arch/arm/mach-clps711x/mm.c index 43c2fa8f4817..a7b4591205a3 100644 --- a/arch/arm/mach-clps711x/mm.c +++ b/arch/arm/mach-clps711x/mm.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <linux/bootmem.h> | 25 | #include <linux/bootmem.h> |
26 | 26 | ||
27 | #include <asm/sizes.h> | 27 | #include <asm/sizes.h> |
28 | #include <asm/arch/hardware.h> | 28 | #include <mach/hardware.h> |
29 | #include <asm/pgtable.h> | 29 | #include <asm/pgtable.h> |
30 | #include <asm/page.h> | 30 | #include <asm/page.h> |
31 | #include <asm/mach/map.h> | 31 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-clps711x/p720t-leds.c b/arch/arm/mach-clps711x/p720t-leds.c index a9b9c5b847e2..262c3c361453 100644 --- a/arch/arm/mach-clps711x/p720t-leds.c +++ b/arch/arm/mach-clps711x/p720t-leds.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | 24 | ||
25 | #include <asm/arch/hardware.h> | 25 | #include <mach/hardware.h> |
26 | #include <asm/io.h> | 26 | #include <asm/io.h> |
27 | #include <asm/leds.h> | 27 | #include <asm/leds.h> |
28 | #include <asm/system.h> | 28 | #include <asm/system.h> |
diff --git a/arch/arm/mach-clps711x/p720t.c b/arch/arm/mach-clps711x/p720t.c index 80d8fd28b2f1..f51f97d4f212 100644 --- a/arch/arm/mach-clps711x/p720t.c +++ b/arch/arm/mach-clps711x/p720t.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <linux/string.h> | 23 | #include <linux/string.h> |
24 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
25 | 25 | ||
26 | #include <asm/arch/hardware.h> | 26 | #include <mach/hardware.h> |
27 | #include <asm/io.h> | 27 | #include <asm/io.h> |
28 | #include <asm/pgtable.h> | 28 | #include <asm/pgtable.h> |
29 | #include <asm/page.h> | 29 | #include <asm/page.h> |
@@ -32,7 +32,7 @@ | |||
32 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
33 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
34 | #include <asm/mach/map.h> | 34 | #include <asm/mach/map.h> |
35 | #include <asm/arch/syspld.h> | 35 | #include <mach/syspld.h> |
36 | 36 | ||
37 | #include "common.h" | 37 | #include "common.h" |
38 | 38 | ||
diff --git a/arch/arm/mach-clps711x/time.c b/arch/arm/mach-clps711x/time.c index d922a891b1ad..ef1fcd17189e 100644 --- a/arch/arm/mach-clps711x/time.c +++ b/arch/arm/mach-clps711x/time.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
23 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
24 | 24 | ||
25 | #include <asm/arch/hardware.h> | 25 | #include <mach/hardware.h> |
26 | #include <asm/irq.h> | 26 | #include <asm/irq.h> |
27 | #include <asm/leds.h> | 27 | #include <asm/leds.h> |
28 | #include <asm/io.h> | 28 | #include <asm/io.h> |