diff options
Diffstat (limited to 'arch/arm/plat-omap/include')
-rw-r--r-- | arch/arm/plat-omap/include/mach/clock.h | 8 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/common.h | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/control.h | 7 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/cpu.h | 21 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/debug-macro.S | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/dma.h | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/entry-macro.S | 46 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/hardware.h | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/io.h | 37 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/irqs.h | 89 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/memory.h | 3 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/omap44xx.h | 46 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/serial.h | 16 |
13 files changed, 264 insertions, 14 deletions
diff --git a/arch/arm/plat-omap/include/mach/clock.h b/arch/arm/plat-omap/include/mach/clock.h index 073a2c5569f0..c20e02ec3034 100644 --- a/arch/arm/plat-omap/include/mach/clock.h +++ b/arch/arm/plat-omap/include/mach/clock.h | |||
@@ -22,7 +22,8 @@ struct clkops { | |||
22 | void (*disable)(struct clk *); | 22 | void (*disable)(struct clk *); |
23 | }; | 23 | }; |
24 | 24 | ||
25 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) | 25 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ |
26 | defined(CONFIG_ARCH_OMAP4) | ||
26 | 27 | ||
27 | struct clksel_rate { | 28 | struct clksel_rate { |
28 | u32 val; | 29 | u32 val; |
@@ -51,7 +52,7 @@ struct dpll_data { | |||
51 | u8 max_divider; | 52 | u8 max_divider; |
52 | u32 max_tolerance; | 53 | u32 max_tolerance; |
53 | u16 max_multiplier; | 54 | u16 max_multiplier; |
54 | # if defined(CONFIG_ARCH_OMAP3) | 55 | #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4) |
55 | u8 modes; | 56 | u8 modes; |
56 | void __iomem *autoidle_reg; | 57 | void __iomem *autoidle_reg; |
57 | void __iomem *idlest_reg; | 58 | void __iomem *idlest_reg; |
@@ -83,7 +84,8 @@ struct clk { | |||
83 | void (*init)(struct clk *); | 84 | void (*init)(struct clk *); |
84 | __u8 enable_bit; | 85 | __u8 enable_bit; |
85 | __s8 usecount; | 86 | __s8 usecount; |
86 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) | 87 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ |
88 | defined(CONFIG_ARCH_OMAP4) | ||
87 | u8 fixed_div; | 89 | u8 fixed_div; |
88 | void __iomem *clksel_reg; | 90 | void __iomem *clksel_reg; |
89 | u32 clksel_mask; | 91 | u32 clksel_mask; |
diff --git a/arch/arm/plat-omap/include/mach/common.h b/arch/arm/plat-omap/include/mach/common.h index 0ecf36deb17b..4b188334c666 100644 --- a/arch/arm/plat-omap/include/mach/common.h +++ b/arch/arm/plat-omap/include/mach/common.h | |||
@@ -62,6 +62,7 @@ struct omap_globals { | |||
62 | void omap2_set_globals_242x(void); | 62 | void omap2_set_globals_242x(void); |
63 | void omap2_set_globals_243x(void); | 63 | void omap2_set_globals_243x(void); |
64 | void omap2_set_globals_343x(void); | 64 | void omap2_set_globals_343x(void); |
65 | void omap2_set_globals_443x(void); | ||
65 | 66 | ||
66 | /* These get called from omap2_set_globals_xxxx(), do not call these */ | 67 | /* These get called from omap2_set_globals_xxxx(), do not call these */ |
67 | void omap2_set_globals_tap(struct omap_globals *); | 68 | void omap2_set_globals_tap(struct omap_globals *); |
diff --git a/arch/arm/plat-omap/include/mach/control.h b/arch/arm/plat-omap/include/mach/control.h index 269147f3836f..f45ec621da96 100644 --- a/arch/arm/plat-omap/include/mach/control.h +++ b/arch/arm/plat-omap/include/mach/control.h | |||
@@ -1,9 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/plat-omap/include/mach/control.h | 2 | * arch/arm/plat-omap/include/mach/control.h |
3 | * | 3 | * |
4 | * OMAP2/3 System Control Module definitions | 4 | * OMAP2/3/4 System Control Module definitions |
5 | * | 5 | * |
6 | * Copyright (C) 2007-2008 Texas Instruments, Inc. | 6 | * Copyright (C) 2007-2009 Texas Instruments, Inc. |
7 | * Copyright (C) 2007-2008 Nokia Corporation | 7 | * Copyright (C) 2007-2008 Nokia Corporation |
8 | * | 8 | * |
9 | * Written by Paul Walmsley | 9 | * Written by Paul Walmsley |
@@ -190,7 +190,8 @@ | |||
190 | #define OMAP2_PBIASLITEVMODE0 (1 << 0) | 190 | #define OMAP2_PBIASLITEVMODE0 (1 << 0) |
191 | 191 | ||
192 | #ifndef __ASSEMBLY__ | 192 | #ifndef __ASSEMBLY__ |
193 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) | 193 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ |
194 | defined(CONFIG_ARCH_OMAP4) | ||
194 | extern void __iomem *omap_ctrl_base_get(void); | 195 | extern void __iomem *omap_ctrl_base_get(void); |
195 | extern u8 omap_ctrl_readb(u16 offset); | 196 | extern u8 omap_ctrl_readb(u16 offset); |
196 | extern u16 omap_ctrl_readw(u16 offset); | 197 | extern u16 omap_ctrl_readw(u16 offset); |
diff --git a/arch/arm/plat-omap/include/mach/cpu.h b/arch/arm/plat-omap/include/mach/cpu.h index 98b144252364..fc60c4ebcc28 100644 --- a/arch/arm/plat-omap/include/mach/cpu.h +++ b/arch/arm/plat-omap/include/mach/cpu.h | |||
@@ -5,8 +5,12 @@ | |||
5 | * | 5 | * |
6 | * Copyright (C) 2004, 2008 Nokia Corporation | 6 | * Copyright (C) 2004, 2008 Nokia Corporation |
7 | * | 7 | * |
8 | * Copyright (C) 2009 Texas Instruments. | ||
9 | * | ||
8 | * Written by Tony Lindgren <tony.lindgren@nokia.com> | 10 | * Written by Tony Lindgren <tony.lindgren@nokia.com> |
9 | * | 11 | * |
12 | * Added OMAP4 specific defines - Santosh Shilimkar<santosh.shilimkar@ti.com> | ||
13 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | 14 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of the GNU General Public License as published by | 15 | * it under the terms of the GNU General Public License as published by |
12 | * the Free Software Foundation; either version 2 of the License, or | 16 | * the Free Software Foundation; either version 2 of the License, or |
@@ -155,6 +159,8 @@ IS_OMAP_SUBCLASS(343x, 0x343) | |||
155 | #define cpu_is_omap243x() 0 | 159 | #define cpu_is_omap243x() 0 |
156 | #define cpu_is_omap34xx() 0 | 160 | #define cpu_is_omap34xx() 0 |
157 | #define cpu_is_omap343x() 0 | 161 | #define cpu_is_omap343x() 0 |
162 | #define cpu_is_omap44xx() 0 | ||
163 | #define cpu_is_omap443x() 0 | ||
158 | 164 | ||
159 | #if defined(MULTI_OMAP1) | 165 | #if defined(MULTI_OMAP1) |
160 | # if defined(CONFIG_ARCH_OMAP730) | 166 | # if defined(CONFIG_ARCH_OMAP730) |
@@ -348,12 +354,21 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
348 | # define cpu_is_omap3430() is_omap3430() | 354 | # define cpu_is_omap3430() is_omap3430() |
349 | #endif | 355 | #endif |
350 | 356 | ||
357 | # if defined(CONFIG_ARCH_OMAP4) | ||
358 | # undef cpu_is_omap44xx | ||
359 | # undef cpu_is_omap443x | ||
360 | # define cpu_is_omap44xx() 1 | ||
361 | # define cpu_is_omap443x() 1 | ||
362 | # endif | ||
363 | |||
351 | /* Macros to detect if we have OMAP1 or OMAP2 */ | 364 | /* Macros to detect if we have OMAP1 or OMAP2 */ |
352 | #define cpu_class_is_omap1() (cpu_is_omap7xx() || cpu_is_omap15xx() || \ | 365 | #define cpu_class_is_omap1() (cpu_is_omap7xx() || cpu_is_omap15xx() || \ |
353 | cpu_is_omap16xx()) | 366 | cpu_is_omap16xx()) |
354 | #define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx()) | 367 | #define cpu_class_is_omap2() (cpu_is_omap24xx() || cpu_is_omap34xx() || \ |
368 | cpu_is_omap44xx()) | ||
355 | 369 | ||
356 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) | 370 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ |
371 | defined(CONFIG_ARCH_OMAP4) | ||
357 | 372 | ||
358 | /* Various silicon revisions for omap2 */ | 373 | /* Various silicon revisions for omap2 */ |
359 | #define OMAP242X_CLASS 0x24200024 | 374 | #define OMAP242X_CLASS 0x24200024 |
@@ -370,6 +385,8 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
370 | #define OMAP3430_REV_ES3_0 0x34303034 | 385 | #define OMAP3430_REV_ES3_0 0x34303034 |
371 | #define OMAP3430_REV_ES3_1 0x34304034 | 386 | #define OMAP3430_REV_ES3_1 0x34304034 |
372 | 387 | ||
388 | #define OMAP443X_CLASS 0x44300034 | ||
389 | |||
373 | /* | 390 | /* |
374 | * omap_chip bits | 391 | * omap_chip bits |
375 | * | 392 | * |
diff --git a/arch/arm/plat-omap/include/mach/debug-macro.S b/arch/arm/plat-omap/include/mach/debug-macro.S index 1b11f5c6a2d9..ac24050e3416 100644 --- a/arch/arm/plat-omap/include/mach/debug-macro.S +++ b/arch/arm/plat-omap/include/mach/debug-macro.S | |||
@@ -36,7 +36,7 @@ | |||
36 | add \rx, \rx, #0x00004000 @ UART 3 | 36 | add \rx, \rx, #0x00004000 @ UART 3 |
37 | #endif | 37 | #endif |
38 | 38 | ||
39 | #elif CONFIG_ARCH_OMAP3 | 39 | #elif defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4) |
40 | moveq \rx, #0x48000000 @ physical base address | 40 | moveq \rx, #0x48000000 @ physical base address |
41 | movne \rx, #0xd8000000 @ virtual base | 41 | movne \rx, #0xd8000000 @ virtual base |
42 | orr \rx, \rx, #0x0006a000 | 42 | orr \rx, \rx, #0x0006a000 |
diff --git a/arch/arm/plat-omap/include/mach/dma.h b/arch/arm/plat-omap/include/mach/dma.h index 19df76f97ab3..8c1eae88737e 100644 --- a/arch/arm/plat-omap/include/mach/dma.h +++ b/arch/arm/plat-omap/include/mach/dma.h | |||
@@ -48,6 +48,7 @@ | |||
48 | /* Hardware registers for omap2 and omap3 */ | 48 | /* Hardware registers for omap2 and omap3 */ |
49 | #define OMAP24XX_DMA4_BASE (L4_24XX_BASE + 0x56000) | 49 | #define OMAP24XX_DMA4_BASE (L4_24XX_BASE + 0x56000) |
50 | #define OMAP34XX_DMA4_BASE (L4_34XX_BASE + 0x56000) | 50 | #define OMAP34XX_DMA4_BASE (L4_34XX_BASE + 0x56000) |
51 | #define OMAP44XX_DMA4_BASE (L4_44XX_BASE + 0x56000) | ||
51 | 52 | ||
52 | #define OMAP_DMA4_REVISION 0x00 | 53 | #define OMAP_DMA4_REVISION 0x00 |
53 | #define OMAP_DMA4_GCR 0x78 | 54 | #define OMAP_DMA4_GCR 0x78 |
diff --git a/arch/arm/plat-omap/include/mach/entry-macro.S b/arch/arm/plat-omap/include/mach/entry-macro.S index 33256a0e9a28..00f45c01390d 100644 --- a/arch/arm/plat-omap/include/mach/entry-macro.S +++ b/arch/arm/plat-omap/include/mach/entry-macro.S | |||
@@ -3,6 +3,9 @@ | |||
3 | * | 3 | * |
4 | * Low-level IRQ helper macros for OMAP-based platforms | 4 | * Low-level IRQ helper macros for OMAP-based platforms |
5 | * | 5 | * |
6 | * Copyright (C) 2009 Texas Instruments | ||
7 | * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com> | ||
8 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | 9 | * This file is licensed under the terms of the GNU General Public |
7 | * License version 2. This program is licensed "as is" without any | 10 | * License version 2. This program is licensed "as is" without any |
8 | * warranty of any kind, whether express or implied. | 11 | * warranty of any kind, whether express or implied. |
@@ -10,6 +13,7 @@ | |||
10 | #include <mach/hardware.h> | 13 | #include <mach/hardware.h> |
11 | #include <mach/io.h> | 14 | #include <mach/io.h> |
12 | #include <mach/irqs.h> | 15 | #include <mach/irqs.h> |
16 | #include <asm/hardware/gic.h> | ||
13 | 17 | ||
14 | #if defined(CONFIG_ARCH_OMAP1) | 18 | #if defined(CONFIG_ARCH_OMAP1) |
15 | 19 | ||
@@ -56,7 +60,8 @@ | |||
56 | .endm | 60 | .endm |
57 | 61 | ||
58 | #endif | 62 | #endif |
59 | #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) | 63 | #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) || \ |
64 | defined(CONFIG_ARCH_OMAP4) | ||
60 | 65 | ||
61 | #include <mach/omap24xx.h> | 66 | #include <mach/omap24xx.h> |
62 | #include <mach/omap34xx.h> | 67 | #include <mach/omap34xx.h> |
@@ -67,7 +72,9 @@ | |||
67 | #elif defined(CONFIG_ARCH_OMAP34XX) | 72 | #elif defined(CONFIG_ARCH_OMAP34XX) |
68 | #define OMAP2_VA_IC_BASE IO_ADDRESS(OMAP34XX_IC_BASE) | 73 | #define OMAP2_VA_IC_BASE IO_ADDRESS(OMAP34XX_IC_BASE) |
69 | #endif | 74 | #endif |
70 | 75 | #if defined(CONFIG_ARCH_OMAP4) | |
76 | #include <mach/omap44xx.h> | ||
77 | #endif | ||
71 | #define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt offset */ | 78 | #define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt offset */ |
72 | #define ACTIVEIRQ_MASK 0x7f /* Active interrupt bits */ | 79 | #define ACTIVEIRQ_MASK 0x7f /* Active interrupt bits */ |
73 | 80 | ||
@@ -80,6 +87,7 @@ | |||
80 | .macro arch_ret_to_user, tmp1, tmp2 | 87 | .macro arch_ret_to_user, tmp1, tmp2 |
81 | .endm | 88 | .endm |
82 | 89 | ||
90 | #ifndef CONFIG_ARCH_OMAP4 | ||
83 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | 91 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp |
84 | ldr \base, =OMAP2_VA_IC_BASE | 92 | ldr \base, =OMAP2_VA_IC_BASE |
85 | ldr \irqnr, [\base, #0x98] /* IRQ pending reg 1 */ | 93 | ldr \irqnr, [\base, #0x98] /* IRQ pending reg 1 */ |
@@ -95,6 +103,40 @@ | |||
95 | and \irqnr, \irqnr, #ACTIVEIRQ_MASK /* Clear spurious bits */ | 103 | and \irqnr, \irqnr, #ACTIVEIRQ_MASK /* Clear spurious bits */ |
96 | 104 | ||
97 | .endm | 105 | .endm |
106 | #else | ||
107 | /* | ||
108 | * The interrupt numbering scheme is defined in the | ||
109 | * interrupt controller spec. To wit: | ||
110 | * | ||
111 | * Interrupts 0-15 are IPI | ||
112 | * 16-28 are reserved | ||
113 | * 29-31 are local. We allow 30 to be used for the watchdog. | ||
114 | * 32-1020 are global | ||
115 | * 1021-1022 are reserved | ||
116 | * 1023 is "spurious" (no interrupt) | ||
117 | * | ||
118 | * For now, we ignore all local interrupts so only return an | ||
119 | * interrupt if it's between 30 and 1020. The test_for_ipi | ||
120 | * routine below will pick up on IPIs. | ||
121 | * A simple read from the controller will tell us the number | ||
122 | * of the highest priority enabled interrupt. | ||
123 | * We then just need to check whether it is in the | ||
124 | * valid range for an IRQ (30-1020 inclusive). | ||
125 | */ | ||
126 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
127 | ldr \base, =OMAP44XX_VA_GIC_CPU_BASE | ||
128 | ldr \irqstat, [\base, #GIC_CPU_INTACK] | ||
129 | |||
130 | ldr \tmp, =1021 | ||
131 | |||
132 | bic \irqnr, \irqstat, #0x1c00 | ||
133 | |||
134 | cmp \irqnr, #29 | ||
135 | cmpcc \irqnr, \irqnr | ||
136 | cmpne \irqnr, \tmp | ||
137 | cmpcs \irqnr, \irqnr | ||
138 | .endm | ||
139 | #endif | ||
98 | 140 | ||
99 | .macro irq_prio_table | 141 | .macro irq_prio_table |
100 | .endm | 142 | .endm |
diff --git a/arch/arm/plat-omap/include/mach/hardware.h b/arch/arm/plat-omap/include/mach/hardware.h index 3dc423ed3e80..26c1fbff08aa 100644 --- a/arch/arm/plat-omap/include/mach/hardware.h +++ b/arch/arm/plat-omap/include/mach/hardware.h | |||
@@ -285,5 +285,6 @@ | |||
285 | #include "omap16xx.h" | 285 | #include "omap16xx.h" |
286 | #include "omap24xx.h" | 286 | #include "omap24xx.h" |
287 | #include "omap34xx.h" | 287 | #include "omap34xx.h" |
288 | #include "omap44xx.h" | ||
288 | 289 | ||
289 | #endif /* __ASM_ARCH_OMAP_HARDWARE_H */ | 290 | #endif /* __ASM_ARCH_OMAP_HARDWARE_H */ |
diff --git a/arch/arm/plat-omap/include/mach/io.h b/arch/arm/plat-omap/include/mach/io.h index 0610d7e2b3d7..3b2814720569 100644 --- a/arch/arm/plat-omap/include/mach/io.h +++ b/arch/arm/plat-omap/include/mach/io.h | |||
@@ -6,6 +6,9 @@ | |||
6 | * Copied from arch/arm/mach-sa1100/include/mach/io.h | 6 | * Copied from arch/arm/mach-sa1100/include/mach/io.h |
7 | * Copyright (C) 1997-1999 Russell King | 7 | * Copyright (C) 1997-1999 Russell King |
8 | * | 8 | * |
9 | * Copyright (C) 2009 Texas Instruments | ||
10 | * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com> | ||
11 | * | ||
9 | * This program is free software; you can redistribute it and/or modify it | 12 | * This program is free software; you can redistribute it and/or modify it |
10 | * under the terms of the GNU General Public License as published by the | 13 | * under the terms of the GNU General Public License as published by the |
11 | * Free Software Foundation; either version 2 of the License, or (at your | 14 | * Free Software Foundation; either version 2 of the License, or (at your |
@@ -157,6 +160,40 @@ | |||
157 | #define DSP_MMU_34XX_VIRT 0xe2000000 | 160 | #define DSP_MMU_34XX_VIRT 0xe2000000 |
158 | #define DSP_MMU_34XX_SIZE SZ_4K | 161 | #define DSP_MMU_34XX_SIZE SZ_4K |
159 | 162 | ||
163 | |||
164 | #elif defined(CONFIG_ARCH_OMAP4) | ||
165 | /* We map both L3 and L4 on OMAP4 */ | ||
166 | #define L3_44XX_PHYS L3_44XX_BASE | ||
167 | #define L3_44XX_VIRT 0xd4000000 | ||
168 | #define L3_44XX_SIZE SZ_1M | ||
169 | |||
170 | #define L4_44XX_PHYS L4_44XX_BASE | ||
171 | #define L4_44XX_VIRT 0xda000000 | ||
172 | #define L4_44XX_SIZE SZ_4M | ||
173 | |||
174 | |||
175 | #define L4_WK_44XX_PHYS L4_WK_44XX_BASE | ||
176 | #define L4_WK_44XX_VIRT 0xda300000 | ||
177 | #define L4_WK_44XX_SIZE SZ_1M | ||
178 | |||
179 | #define L4_PER_44XX_PHYS L4_PER_44XX_BASE | ||
180 | #define L4_PER_44XX_VIRT 0xd8000000 | ||
181 | #define L4_PER_44XX_SIZE SZ_4M | ||
182 | |||
183 | #define L4_EMU_44XX_PHYS L4_EMU_44XX_BASE | ||
184 | #define L4_EMU_44XX_VIRT 0xe4000000 | ||
185 | #define L4_EMU_44XX_SIZE SZ_64M | ||
186 | |||
187 | #define OMAP44XX_GPMC_PHYS OMAP44XX_GPMC_BASE | ||
188 | #define OMAP44XX_GPMC_VIRT 0xe0000000 | ||
189 | #define OMAP44XX_GPMC_SIZE SZ_1M | ||
190 | |||
191 | |||
192 | #define IO_OFFSET 0x90000000 | ||
193 | #define __IO_ADDRESS(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ | ||
194 | #define __OMAP2_IO_ADDRESS(pa) ((pa) + IO_OFFSET)/* Works for L3 and L4 */ | ||
195 | #define io_v2p(va) ((va) - IO_OFFSET)/* Works for L3 and L4 */ | ||
196 | |||
160 | #endif | 197 | #endif |
161 | 198 | ||
162 | #define IO_ADDRESS(pa) IOMEM(__IO_ADDRESS(pa)) | 199 | #define IO_ADDRESS(pa) IOMEM(__IO_ADDRESS(pa)) |
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h index 7f57ee66f364..5bc331e93cf2 100644 --- a/arch/arm/plat-omap/include/mach/irqs.h +++ b/arch/arm/plat-omap/include/mach/irqs.h | |||
@@ -4,6 +4,9 @@ | |||
4 | * Copyright (C) Greg Lonnon 2001 | 4 | * Copyright (C) Greg Lonnon 2001 |
5 | * Updated for OMAP-1610 by Tony Lindgren <tony@atomide.com> | 5 | * Updated for OMAP-1610 by Tony Lindgren <tony@atomide.com> |
6 | * | 6 | * |
7 | * Copyright (C) 2009 Texas Instruments | ||
8 | * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com> | ||
9 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU General Public License as published by | 11 | * it under the terms of the GNU General Public License as published by |
9 | * the Free Software Foundation; either version 2 of the License, or | 12 | * the Free Software Foundation; either version 2 of the License, or |
@@ -422,6 +425,92 @@ | |||
422 | 425 | ||
423 | #define INT_34XX_BENCH_MPU_EMUL 3 | 426 | #define INT_34XX_BENCH_MPU_EMUL 3 |
424 | 427 | ||
428 | |||
429 | #define IRQ_GIC_START 32 | ||
430 | |||
431 | #define INT_44XX_BENCH_MPU_EMUL (3 + IRQ_GIC_START) | ||
432 | #define INT_44XX_SSM_ABORT_IRQ (6 + IRQ_GIC_START) | ||
433 | #define INT_44XX_SYS_NIRQ (7 + IRQ_GIC_START) | ||
434 | #define INT_44XX_D2D_FW_IRQ (8 + IRQ_GIC_START) | ||
435 | #define INT_44XX_PRCM_MPU_IRQ (11 + IRQ_GIC_START) | ||
436 | #define INT_44XX_SDMA_IRQ0 (12 + IRQ_GIC_START) | ||
437 | #define INT_44XX_SDMA_IRQ1 (13 + IRQ_GIC_START) | ||
438 | #define INT_44XX_SDMA_IRQ2 (14 + IRQ_GIC_START) | ||
439 | #define INT_44XX_SDMA_IRQ3 (15 + IRQ_GIC_START) | ||
440 | #define INT_44XX_ISS_IRQ (24 + IRQ_GIC_START) | ||
441 | #define INT_44XX_DSS_IRQ (25 + IRQ_GIC_START) | ||
442 | #define INT_44XX_MAIL_U0_MPU (26 + IRQ_GIC_START) | ||
443 | #define INT_44XX_DSP_MMU (28 + IRQ_GIC_START) | ||
444 | #define INT_44XX_GPTIMER1 (37 + IRQ_GIC_START) | ||
445 | #define INT_44XX_GPTIMER2 (38 + IRQ_GIC_START) | ||
446 | #define INT_44XX_GPTIMER3 (39 + IRQ_GIC_START) | ||
447 | #define INT_44XX_GPTIMER4 (40 + IRQ_GIC_START) | ||
448 | #define INT_44XX_GPTIMER5 (41 + IRQ_GIC_START) | ||
449 | #define INT_44XX_GPTIMER6 (42 + IRQ_GIC_START) | ||
450 | #define INT_44XX_GPTIMER7 (43 + IRQ_GIC_START) | ||
451 | #define INT_44XX_GPTIMER8 (44 + IRQ_GIC_START) | ||
452 | #define INT_44XX_GPTIMER9 (45 + IRQ_GIC_START) | ||
453 | #define INT_44XX_GPTIMER10 (46 + IRQ_GIC_START) | ||
454 | #define INT_44XX_GPTIMER11 (47 + IRQ_GIC_START) | ||
455 | #define INT_44XX_GPTIMER12 (95 + IRQ_GIC_START) | ||
456 | #define INT_44XX_SHA1MD5 (51 + IRQ_GIC_START) | ||
457 | #define INT_44XX_I2C1_IRQ (56 + IRQ_GIC_START) | ||
458 | #define INT_44XX_I2C2_IRQ (57 + IRQ_GIC_START) | ||
459 | #define INT_44XX_HDQ_IRQ (58 + IRQ_GIC_START) | ||
460 | #define INT_44XX_SPI1_IRQ (65 + IRQ_GIC_START) | ||
461 | #define INT_44XX_SPI2_IRQ (66 + IRQ_GIC_START) | ||
462 | #define INT_44XX_HSI_1_IRQ0 (67 + IRQ_GIC_START) | ||
463 | #define INT_44XX_HSI_2_IRQ1 (68 + IRQ_GIC_START) | ||
464 | #define INT_44XX_HSI_1_DMAIRQ (71 + IRQ_GIC_START) | ||
465 | #define INT_44XX_UART1_IRQ (72 + IRQ_GIC_START) | ||
466 | #define INT_44XX_UART2_IRQ (73 + IRQ_GIC_START) | ||
467 | #define INT_44XX_UART3_IRQ (74 + IRQ_GIC_START) | ||
468 | #define INT_44XX_UART4_IRQ (70 + IRQ_GIC_START) | ||
469 | #define INT_44XX_USB_IRQ_NISO (76 + IRQ_GIC_START) | ||
470 | #define INT_44XX_USB_IRQ_ISO (77 + IRQ_GIC_START) | ||
471 | #define INT_44XX_USB_IRQ_HGEN (78 + IRQ_GIC_START) | ||
472 | #define INT_44XX_USB_IRQ_HSOF (79 + IRQ_GIC_START) | ||
473 | #define INT_44XX_USB_IRQ_OTG (80 + IRQ_GIC_START) | ||
474 | #define INT_44XX_MCBSP4_IRQ_TX (81 + IRQ_GIC_START) | ||
475 | #define INT_44XX_MCBSP4_IRQ_RX (82 + IRQ_GIC_START) | ||
476 | #define INT_44XX_MMC_IRQ (83 + IRQ_GIC_START) | ||
477 | #define INT_44XX_MMC2_IRQ (86 + IRQ_GIC_START) | ||
478 | #define INT_44XX_MCBSP2_IRQ_TX (89 + IRQ_GIC_START) | ||
479 | #define INT_44XX_MCBSP2_IRQ_RX (90 + IRQ_GIC_START) | ||
480 | #define INT_44XX_SPI3_IRQ (91 + IRQ_GIC_START) | ||
481 | #define INT_44XX_SPI5_IRQ (69 + IRQ_GIC_START) | ||
482 | |||
483 | #define INT_44XX_MCBSP5_IRQ (16 + IRQ_GIC_START) | ||
484 | #define INT_44xX_MCBSP1_IRQ (17 + IRQ_GIC_START) | ||
485 | #define INT_44XX_MCBSP2_IRQ (22 + IRQ_GIC_START) | ||
486 | #define INT_44XX_MCBSP3_IRQ (23 + IRQ_GIC_START) | ||
487 | #define INT_44XX_MCBSP4_IRQ (27 + IRQ_GIC_START) | ||
488 | #define INT_44XX_HS_USB_MC (92 + IRQ_GIC_START) | ||
489 | #define INT_44XX_HS_USB_DMA (93 + IRQ_GIC_START) | ||
490 | |||
491 | #define INT_44XX_GPIO_BANK1 (29 + IRQ_GIC_START) | ||
492 | #define INT_44XX_GPIO_BANK2 (30 + IRQ_GIC_START) | ||
493 | #define INT_44XX_GPIO_BANK3 (31 + IRQ_GIC_START) | ||
494 | #define INT_44XX_GPIO_BANK4 (32 + IRQ_GIC_START) | ||
495 | #define INT_44XX_GPIO_BANK5 (33 + IRQ_GIC_START) | ||
496 | #define INT_44XX_GPIO_BANK6 (34 + IRQ_GIC_START) | ||
497 | #define INT_44XX_USIM_IRQ (35 + IRQ_GIC_START) | ||
498 | #define INT_44XX_WDT3_IRQ (36 + IRQ_GIC_START) | ||
499 | #define INT_44XX_SPI4_IRQ (48 + IRQ_GIC_START) | ||
500 | #define INT_44XX_SHA1MD52_IRQ (49 + IRQ_GIC_START) | ||
501 | #define INT_44XX_FPKA_READY_IRQ (50 + IRQ_GIC_START) | ||
502 | #define INT_44XX_SHA1MD51_IRQ (51 + IRQ_GIC_START) | ||
503 | #define INT_44XX_RNG_IRQ (52 + IRQ_GIC_START) | ||
504 | #define INT_44XX_I2C3_IRQ (61 + IRQ_GIC_START) | ||
505 | #define INT_44XX_FPKA_ERROR_IRQ (64 + IRQ_GIC_START) | ||
506 | #define INT_44XX_PBIAS_IRQ (75 + IRQ_GIC_START) | ||
507 | #define INT_44XX_OHCI_IRQ (76 + IRQ_GIC_START) | ||
508 | #define INT_44XX_EHCI_IRQ (77 + IRQ_GIC_START) | ||
509 | #define INT_44XX_TLL_IRQ (78 + IRQ_GIC_START) | ||
510 | #define INT_44XX_PARTHASH_IRQ (79 + IRQ_GIC_START) | ||
511 | #define INT_44XX_MMC3_IRQ (94 + IRQ_GIC_START) | ||
512 | |||
513 | |||
425 | /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and | 514 | /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and |
426 | * 16 MPUIO lines */ | 515 | * 16 MPUIO lines */ |
427 | #define OMAP_MAX_GPIO_LINES 192 | 516 | #define OMAP_MAX_GPIO_LINES 192 |
diff --git a/arch/arm/plat-omap/include/mach/memory.h b/arch/arm/plat-omap/include/mach/memory.h index 99ed564d9277..9ad41dc484c1 100644 --- a/arch/arm/plat-omap/include/mach/memory.h +++ b/arch/arm/plat-omap/include/mach/memory.h | |||
@@ -38,7 +38,8 @@ | |||
38 | */ | 38 | */ |
39 | #if defined(CONFIG_ARCH_OMAP1) | 39 | #if defined(CONFIG_ARCH_OMAP1) |
40 | #define PHYS_OFFSET UL(0x10000000) | 40 | #define PHYS_OFFSET UL(0x10000000) |
41 | #elif defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) | 41 | #elif defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ |
42 | defined(CONFIG_ARCH_OMAP4) | ||
42 | #define PHYS_OFFSET UL(0x80000000) | 43 | #define PHYS_OFFSET UL(0x80000000) |
43 | #endif | 44 | #endif |
44 | 45 | ||
diff --git a/arch/arm/plat-omap/include/mach/omap44xx.h b/arch/arm/plat-omap/include/mach/omap44xx.h new file mode 100644 index 000000000000..15dec7f1c7c0 --- /dev/null +++ b/arch/arm/plat-omap/include/mach/omap44xx.h | |||
@@ -0,0 +1,46 @@ | |||
1 | /*: | ||
2 | * Address mappings and base address for OMAP4 interconnects | ||
3 | * and peripherals. | ||
4 | * | ||
5 | * Copyright (C) 2009 Texas Instruments | ||
6 | * | ||
7 | * Author: Santosh Shilimkar <santosh.shilimkar@ti.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | #ifndef __ASM_ARCH_OMAP44XX_H | ||
14 | #define __ASM_ARCH_OMAP44XX_H | ||
15 | |||
16 | /* | ||
17 | * Please place only base defines here and put the rest in device | ||
18 | * specific headers. | ||
19 | */ | ||
20 | #define L4_44XX_BASE 0x4a000000 | ||
21 | #define L4_WK_44XX_BASE 0x4a300000 | ||
22 | #define L4_PER_44XX_BASE 0x48000000 | ||
23 | #define L4_EMU_44XX_BASE 0x54000000 | ||
24 | #define L3_44XX_BASE 0x44000000 | ||
25 | #define OMAP4430_32KSYNCT_BASE 0x4a304000 | ||
26 | #define OMAP4430_CM_BASE 0x4a004000 | ||
27 | #define OMAP4430_PRM_BASE 0x48306000 | ||
28 | #define OMAP44XX_GPMC_BASE 0x50000000 | ||
29 | #define OMAP443X_SCM_BASE 0x4a002000 | ||
30 | #define OMAP443X_CTRL_BASE OMAP443X_SCM_BASE | ||
31 | #define OMAP44XX_IC_BASE 0x48200000 | ||
32 | #define OMAP44XX_IVA_INTC_BASE 0x40000000 | ||
33 | #define IRQ_SIR_IRQ 0x0040 | ||
34 | #define OMAP44XX_GIC_DIST_BASE 0x48241000 | ||
35 | #define OMAP44XX_GIC_CPU_BASE 0x48240100 | ||
36 | #define OMAP44XX_VA_GIC_CPU_BASE IO_ADDRESS(OMAP44XX_GIC_CPU_BASE) | ||
37 | #define OMAP44XX_SCU_BASE 0x48240000 | ||
38 | #define OMAP44XX_VA_SCU_BASE IO_ADDRESS(OMAP44XX_SCU_BASE) | ||
39 | #define OMAP44XX_LOCAL_TWD_BASE 0x48240600 | ||
40 | #define OMAP44XX_VA_LOCAL_TWD_BASE IO_ADDRESS(OMAP44XX_LOCAL_TWD_BASE) | ||
41 | #define OMAP44XX_LOCAL_TWD_SIZE 0x00000100 | ||
42 | #define OMAP44XX_WKUPGEN_BASE 0x48281000 | ||
43 | #define OMAP44XX_VA_WKUPGEN_BASE IO_ADDRESS(OMAP44XX_WKUPGEN_BASE) | ||
44 | |||
45 | #endif /* __ASM_ARCH_OMAP44XX_H */ | ||
46 | |||
diff --git a/arch/arm/plat-omap/include/mach/serial.h b/arch/arm/plat-omap/include/mach/serial.h index 8a676a04be48..e37894e423bd 100644 --- a/arch/arm/plat-omap/include/mach/serial.h +++ b/arch/arm/plat-omap/include/mach/serial.h | |||
@@ -1,5 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/plat-omap/include/mach/serial.h | 2 | * arch/arm/plat-omap/include/mach/serial.h |
3 | * | ||
4 | * Copyright (C) 2009 Texas Instruments | ||
5 | * Addded OMAP4 support- Santosh Shilimkar <santosh.shilimkar@ti.com> | ||
3 | * | 6 | * |
4 | * This program is distributed in the hope that it will be useful, | 7 | * This program is distributed in the hope that it will be useful, |
5 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
@@ -15,19 +18,28 @@ | |||
15 | #define OMAP_UART1_BASE 0xfffb0000 | 18 | #define OMAP_UART1_BASE 0xfffb0000 |
16 | #define OMAP_UART2_BASE 0xfffb0800 | 19 | #define OMAP_UART2_BASE 0xfffb0800 |
17 | #define OMAP_UART3_BASE 0xfffb9800 | 20 | #define OMAP_UART3_BASE 0xfffb9800 |
21 | #define OMAP_MAX_NR_PORTS 3 | ||
18 | #elif defined(CONFIG_ARCH_OMAP2) | 22 | #elif defined(CONFIG_ARCH_OMAP2) |
19 | /* OMAP2 serial ports */ | 23 | /* OMAP2 serial ports */ |
20 | #define OMAP_UART1_BASE 0x4806a000 | 24 | #define OMAP_UART1_BASE 0x4806a000 |
21 | #define OMAP_UART2_BASE 0x4806c000 | 25 | #define OMAP_UART2_BASE 0x4806c000 |
22 | #define OMAP_UART3_BASE 0x4806e000 | 26 | #define OMAP_UART3_BASE 0x4806e000 |
27 | #define OMAP_MAX_NR_PORTS 3 | ||
23 | #elif defined(CONFIG_ARCH_OMAP3) | 28 | #elif defined(CONFIG_ARCH_OMAP3) |
24 | /* OMAP3 serial ports */ | 29 | /* OMAP3 serial ports */ |
25 | #define OMAP_UART1_BASE 0x4806a000 | 30 | #define OMAP_UART1_BASE 0x4806a000 |
26 | #define OMAP_UART2_BASE 0x4806c000 | 31 | #define OMAP_UART2_BASE 0x4806c000 |
27 | #define OMAP_UART3_BASE 0x49020000 | 32 | #define OMAP_UART3_BASE 0x49020000 |
33 | #define OMAP_MAX_NR_PORTS 3 | ||
34 | #elif defined(CONFIG_ARCH_OMAP4) | ||
35 | /* OMAP4 serial ports */ | ||
36 | #define OMAP_UART1_BASE 0x4806a000 | ||
37 | #define OMAP_UART2_BASE 0x4806c000 | ||
38 | #define OMAP_UART3_BASE 0x48020000 | ||
39 | #define OMAP_UART4_BASE 0x4806e000 | ||
40 | #define OMAP_MAX_NR_PORTS 4 | ||
28 | #endif | 41 | #endif |
29 | 42 | ||
30 | #define OMAP_MAX_NR_PORTS 3 | ||
31 | #define OMAP1510_BASE_BAUD (12000000/16) | 43 | #define OMAP1510_BASE_BAUD (12000000/16) |
32 | #define OMAP16XX_BASE_BAUD (48000000/16) | 44 | #define OMAP16XX_BASE_BAUD (48000000/16) |
33 | #define OMAP24XX_BASE_BAUD (48000000/16) | 45 | #define OMAP24XX_BASE_BAUD (48000000/16) |