diff options
author | Zebediah C. McClure <zmc@lurian.net> | 2009-03-23 21:07:39 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2009-03-23 21:07:39 -0400 |
commit | ae302f40061235f6bc58ae9ba02aa849d60223b5 (patch) | |
tree | 72eb784c839a5630d794224eab66d4693af5610d /arch/arm/plat-omap | |
parent | 6b0147cda6a9d8c236cd04fb35b44de828d8a7eb (diff) |
[OMAP850] Add base support for omap850 cpu
Add base support for omap850 cpu.
Signed-off-by: Zebediah C. McClure <zmc@lurian.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/include/mach/cpu.h | 35 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/omap850.h | 102 |
2 files changed, 133 insertions, 4 deletions
diff --git a/arch/arm/plat-omap/include/mach/cpu.h b/arch/arm/plat-omap/include/mach/cpu.h index a8e1178a9468..366f829edb14 100644 --- a/arch/arm/plat-omap/include/mach/cpu.h +++ b/arch/arm/plat-omap/include/mach/cpu.h | |||
@@ -56,6 +56,14 @@ unsigned int omap_rev(void); | |||
56 | # define OMAP_NAME omap730 | 56 | # define OMAP_NAME omap730 |
57 | # endif | 57 | # endif |
58 | #endif | 58 | #endif |
59 | #ifdef CONFIG_ARCH_OMAP850 | ||
60 | # ifdef OMAP_NAME | ||
61 | # undef MULTI_OMAP1 | ||
62 | # define MULTI_OMAP1 | ||
63 | # else | ||
64 | # define OMAP_NAME omap850 | ||
65 | # endif | ||
66 | #endif | ||
59 | #ifdef CONFIG_ARCH_OMAP15XX | 67 | #ifdef CONFIG_ARCH_OMAP15XX |
60 | # ifdef OMAP_NAME | 68 | # ifdef OMAP_NAME |
61 | # undef MULTI_OMAP1 | 69 | # undef MULTI_OMAP1 |
@@ -105,7 +113,7 @@ unsigned int omap_rev(void); | |||
105 | /* | 113 | /* |
106 | * Macros to group OMAP into cpu classes. | 114 | * Macros to group OMAP into cpu classes. |
107 | * These can be used in most places. | 115 | * These can be used in most places. |
108 | * cpu_is_omap7xx(): True for OMAP730 | 116 | * cpu_is_omap7xx(): True for OMAP730, OMAP850 |
109 | * cpu_is_omap15xx(): True for OMAP1510, OMAP5910 and OMAP310 | 117 | * cpu_is_omap15xx(): True for OMAP1510, OMAP5910 and OMAP310 |
110 | * cpu_is_omap16xx(): True for OMAP1610, OMAP5912 and OMAP1710 | 118 | * cpu_is_omap16xx(): True for OMAP1610, OMAP5912 and OMAP1710 |
111 | * cpu_is_omap24xx(): True for OMAP2420, OMAP2422, OMAP2423, OMAP2430 | 119 | * cpu_is_omap24xx(): True for OMAP2420, OMAP2422, OMAP2423, OMAP2430 |
@@ -153,6 +161,10 @@ IS_OMAP_SUBCLASS(343x, 0x343) | |||
153 | # undef cpu_is_omap7xx | 161 | # undef cpu_is_omap7xx |
154 | # define cpu_is_omap7xx() is_omap7xx() | 162 | # define cpu_is_omap7xx() is_omap7xx() |
155 | # endif | 163 | # endif |
164 | # if defined(CONFIG_ARCH_OMAP850) | ||
165 | # undef cpu_is_omap7xx | ||
166 | # define cpu_is_omap7xx() is_omap7xx() | ||
167 | # endif | ||
156 | # if defined(CONFIG_ARCH_OMAP15XX) | 168 | # if defined(CONFIG_ARCH_OMAP15XX) |
157 | # undef cpu_is_omap15xx | 169 | # undef cpu_is_omap15xx |
158 | # define cpu_is_omap15xx() is_omap15xx() | 170 | # define cpu_is_omap15xx() is_omap15xx() |
@@ -166,6 +178,10 @@ IS_OMAP_SUBCLASS(343x, 0x343) | |||
166 | # undef cpu_is_omap7xx | 178 | # undef cpu_is_omap7xx |
167 | # define cpu_is_omap7xx() 1 | 179 | # define cpu_is_omap7xx() 1 |
168 | # endif | 180 | # endif |
181 | # if defined(CONFIG_ARCH_OMAP850) | ||
182 | # undef cpu_is_omap7xx | ||
183 | # define cpu_is_omap7xx() 1 | ||
184 | # endif | ||
169 | # if defined(CONFIG_ARCH_OMAP15XX) | 185 | # if defined(CONFIG_ARCH_OMAP15XX) |
170 | # undef cpu_is_omap15xx | 186 | # undef cpu_is_omap15xx |
171 | # define cpu_is_omap15xx() 1 | 187 | # define cpu_is_omap15xx() 1 |
@@ -219,6 +235,7 @@ IS_OMAP_SUBCLASS(343x, 0x343) | |||
219 | * These are only rarely needed. | 235 | * These are only rarely needed. |
220 | * cpu_is_omap330(): True for OMAP330 | 236 | * cpu_is_omap330(): True for OMAP330 |
221 | * cpu_is_omap730(): True for OMAP730 | 237 | * cpu_is_omap730(): True for OMAP730 |
238 | * cpu_is_omap850(): True for OMAP850 | ||
222 | * cpu_is_omap1510(): True for OMAP1510 | 239 | * cpu_is_omap1510(): True for OMAP1510 |
223 | * cpu_is_omap1610(): True for OMAP1610 | 240 | * cpu_is_omap1610(): True for OMAP1610 |
224 | * cpu_is_omap1611(): True for OMAP1611 | 241 | * cpu_is_omap1611(): True for OMAP1611 |
@@ -241,6 +258,7 @@ static inline int is_omap ##type (void) \ | |||
241 | 258 | ||
242 | IS_OMAP_TYPE(310, 0x0310) | 259 | IS_OMAP_TYPE(310, 0x0310) |
243 | IS_OMAP_TYPE(730, 0x0730) | 260 | IS_OMAP_TYPE(730, 0x0730) |
261 | IS_OMAP_TYPE(850, 0x0850) | ||
244 | IS_OMAP_TYPE(1510, 0x1510) | 262 | IS_OMAP_TYPE(1510, 0x1510) |
245 | IS_OMAP_TYPE(1610, 0x1610) | 263 | IS_OMAP_TYPE(1610, 0x1610) |
246 | IS_OMAP_TYPE(1611, 0x1611) | 264 | IS_OMAP_TYPE(1611, 0x1611) |
@@ -255,6 +273,7 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
255 | 273 | ||
256 | #define cpu_is_omap310() 0 | 274 | #define cpu_is_omap310() 0 |
257 | #define cpu_is_omap730() 0 | 275 | #define cpu_is_omap730() 0 |
276 | #define cpu_is_omap850() 0 | ||
258 | #define cpu_is_omap1510() 0 | 277 | #define cpu_is_omap1510() 0 |
259 | #define cpu_is_omap1610() 0 | 278 | #define cpu_is_omap1610() 0 |
260 | #define cpu_is_omap5912() 0 | 279 | #define cpu_is_omap5912() 0 |
@@ -272,12 +291,22 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
272 | # undef cpu_is_omap730 | 291 | # undef cpu_is_omap730 |
273 | # define cpu_is_omap730() is_omap730() | 292 | # define cpu_is_omap730() is_omap730() |
274 | # endif | 293 | # endif |
294 | # if defined(CONFIG_ARCH_OMAP850) | ||
295 | # undef cpu_is_omap850 | ||
296 | # define cpu_is_omap850() is_omap850() | ||
297 | # endif | ||
275 | #else | 298 | #else |
276 | # if defined(CONFIG_ARCH_OMAP730) | 299 | # if defined(CONFIG_ARCH_OMAP730) |
277 | # undef cpu_is_omap730 | 300 | # undef cpu_is_omap730 |
278 | # define cpu_is_omap730() 1 | 301 | # define cpu_is_omap730() 1 |
279 | # endif | 302 | # endif |
280 | #endif | 303 | #endif |
304 | #else | ||
305 | # if defined(CONFIG_ARCH_OMAP850) | ||
306 | # undef cpu_is_omap850 | ||
307 | # define cpu_is_omap850() 1 | ||
308 | # endif | ||
309 | #endif | ||
281 | 310 | ||
282 | /* | 311 | /* |
283 | * Whether we have MULTI_OMAP1 or not, we still need to distinguish | 312 | * Whether we have MULTI_OMAP1 or not, we still need to distinguish |
@@ -320,7 +349,7 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
320 | #endif | 349 | #endif |
321 | 350 | ||
322 | /* Macros to detect if we have OMAP1 or OMAP2 */ | 351 | /* Macros to detect if we have OMAP1 or OMAP2 */ |
323 | #define cpu_class_is_omap1() (cpu_is_omap730() || cpu_is_omap15xx() || \ | 352 | #define cpu_class_is_omap1() (cpu_is_omap7xx() || cpu_is_omap15xx() || \ |
324 | cpu_is_omap16xx()) | 353 | cpu_is_omap16xx()) |
325 | #define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx()) | 354 | #define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx()) |
326 | 355 | ||
@@ -378,5 +407,3 @@ int omap_type(void); | |||
378 | void omap2_check_revision(void); | 407 | void omap2_check_revision(void); |
379 | 408 | ||
380 | #endif /* defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) */ | 409 | #endif /* defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) */ |
381 | |||
382 | #endif | ||
diff --git a/arch/arm/plat-omap/include/mach/omap850.h b/arch/arm/plat-omap/include/mach/omap850.h new file mode 100644 index 000000000000..c33f67981712 --- /dev/null +++ b/arch/arm/plat-omap/include/mach/omap850.h | |||
@@ -0,0 +1,102 @@ | |||
1 | /* arch/arm/plat-omap/include/mach/omap850.h | ||
2 | * | ||
3 | * Hardware definitions for TI OMAP850 processor. | ||
4 | * | ||
5 | * Derived from omap730.h by Zebediah C. McClure <zmc@lurian.net> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | * | ||
12 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
13 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
14 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
15 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
16 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
17 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
18 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
19 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
20 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
21 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
22 | * | ||
23 | * You should have received a copy of the GNU General Public License along | ||
24 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
25 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
26 | */ | ||
27 | |||
28 | #ifndef __ASM_ARCH_OMAP850_H | ||
29 | #define __ASM_ARCH_OMAP850_H | ||
30 | |||
31 | /* | ||
32 | * ---------------------------------------------------------------------------- | ||
33 | * Base addresses | ||
34 | * ---------------------------------------------------------------------------- | ||
35 | */ | ||
36 | |||
37 | /* Syntax: XX_BASE = Virtual base address, XX_START = Physical base address */ | ||
38 | |||
39 | #define OMAP850_DSP_BASE 0xE0000000 | ||
40 | #define OMAP850_DSP_SIZE 0x50000 | ||
41 | #define OMAP850_DSP_START 0xE0000000 | ||
42 | |||
43 | #define OMAP850_DSPREG_BASE 0xE1000000 | ||
44 | #define OMAP850_DSPREG_SIZE SZ_128K | ||
45 | #define OMAP850_DSPREG_START 0xE1000000 | ||
46 | |||
47 | /* | ||
48 | * ---------------------------------------------------------------------------- | ||
49 | * OMAP850 specific configuration registers | ||
50 | * ---------------------------------------------------------------------------- | ||
51 | */ | ||
52 | #define OMAP850_CONFIG_BASE 0xfffe1000 | ||
53 | #define OMAP850_IO_CONF_0 0xfffe1070 | ||
54 | #define OMAP850_IO_CONF_1 0xfffe1074 | ||
55 | #define OMAP850_IO_CONF_2 0xfffe1078 | ||
56 | #define OMAP850_IO_CONF_3 0xfffe107c | ||
57 | #define OMAP850_IO_CONF_4 0xfffe1080 | ||
58 | #define OMAP850_IO_CONF_5 0xfffe1084 | ||
59 | #define OMAP850_IO_CONF_6 0xfffe1088 | ||
60 | #define OMAP850_IO_CONF_7 0xfffe108c | ||
61 | #define OMAP850_IO_CONF_8 0xfffe1090 | ||
62 | #define OMAP850_IO_CONF_9 0xfffe1094 | ||
63 | #define OMAP850_IO_CONF_10 0xfffe1098 | ||
64 | #define OMAP850_IO_CONF_11 0xfffe109c | ||
65 | #define OMAP850_IO_CONF_12 0xfffe10a0 | ||
66 | #define OMAP850_IO_CONF_13 0xfffe10a4 | ||
67 | |||
68 | #define OMAP850_MODE_1 0xfffe1010 | ||
69 | #define OMAP850_MODE_2 0xfffe1014 | ||
70 | |||
71 | /* CSMI specials: in terms of base + offset */ | ||
72 | #define OMAP850_MODE2_OFFSET 0x14 | ||
73 | |||
74 | /* | ||
75 | * ---------------------------------------------------------------------------- | ||
76 | * OMAP850 traffic controller configuration registers | ||
77 | * ---------------------------------------------------------------------------- | ||
78 | */ | ||
79 | #define OMAP850_FLASH_CFG_0 0xfffecc10 | ||
80 | #define OMAP850_FLASH_ACFG_0 0xfffecc50 | ||
81 | #define OMAP850_FLASH_CFG_1 0xfffecc14 | ||
82 | #define OMAP850_FLASH_ACFG_1 0xfffecc54 | ||
83 | |||
84 | /* | ||
85 | * ---------------------------------------------------------------------------- | ||
86 | * OMAP850 DSP control registers | ||
87 | * ---------------------------------------------------------------------------- | ||
88 | */ | ||
89 | #define OMAP850_ICR_BASE 0xfffbb800 | ||
90 | #define OMAP850_DSP_M_CTL 0xfffbb804 | ||
91 | #define OMAP850_DSP_MMU_BASE 0xfffed200 | ||
92 | |||
93 | /* | ||
94 | * ---------------------------------------------------------------------------- | ||
95 | * OMAP850 PCC_UPLD configuration registers | ||
96 | * ---------------------------------------------------------------------------- | ||
97 | */ | ||
98 | #define OMAP850_PCC_UPLD_CTRL_BASE (0xfffe0900) | ||
99 | #define OMAP850_PCC_UPLD_CTRL (OMAP850_PCC_UPLD_CTRL_BASE + 0x00) | ||
100 | |||
101 | #endif /* __ASM_ARCH_OMAP850_H */ | ||
102 | |||