diff options
Diffstat (limited to 'arch/arm/mach-exynos4/include')
-rw-r--r-- | arch/arm/mach-exynos4/include/mach/entry-macro.S | 29 | ||||
-rw-r--r-- | arch/arm/mach-exynos4/include/mach/irqs.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-exynos4/include/mach/map.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos4/include/mach/regs-mct.h | 5 |
4 files changed, 29 insertions, 8 deletions
diff --git a/arch/arm/mach-exynos4/include/mach/entry-macro.S b/arch/arm/mach-exynos4/include/mach/entry-macro.S index d7a1e281ce7a..4c9adbd87eac 100644 --- a/arch/arm/mach-exynos4/include/mach/entry-macro.S +++ b/arch/arm/mach-exynos4/include/mach/entry-macro.S | |||
@@ -17,12 +17,25 @@ | |||
17 | .endm | 17 | .endm |
18 | 18 | ||
19 | .macro get_irqnr_preamble, base, tmp | 19 | .macro get_irqnr_preamble, base, tmp |
20 | ldr \base, =gic_cpu_base_addr | 20 | mov \tmp, #0 |
21 | |||
22 | mrc p15, 0, \base, c0, c0, 5 | ||
23 | and \base, \base, #3 | ||
24 | cmp \base, #0 | ||
25 | beq 1f | ||
26 | |||
27 | ldr \tmp, =gic_bank_offset | ||
28 | ldr \tmp, [\tmp] | ||
29 | cmp \base, #1 | ||
30 | beq 1f | ||
31 | |||
32 | cmp \base, #2 | ||
33 | addeq \tmp, \tmp, \tmp | ||
34 | addne \tmp, \tmp, \tmp, LSL #1 | ||
35 | |||
36 | 1: ldr \base, =gic_cpu_base_addr | ||
21 | ldr \base, [\base] | 37 | ldr \base, [\base] |
22 | mrc p15, 0, \tmp, c0, c0, 5 | 38 | add \base, \base, \tmp |
23 | and \tmp, \tmp, #3 | ||
24 | cmp \tmp, #1 | ||
25 | addeq \base, \base, #EXYNOS4_GIC_BANK_OFFSET | ||
26 | .endm | 39 | .endm |
27 | 40 | ||
28 | .macro arch_ret_to_user, tmp1, tmp2 | 41 | .macro arch_ret_to_user, tmp1, tmp2 |
@@ -80,4 +93,10 @@ | |||
80 | /* As above, this assumes that irqstat and base are preserved.. */ | 93 | /* As above, this assumes that irqstat and base are preserved.. */ |
81 | 94 | ||
82 | .macro test_for_ltirq, irqnr, irqstat, base, tmp | 95 | .macro test_for_ltirq, irqnr, irqstat, base, tmp |
96 | bic \irqnr, \irqstat, #0x1c00 | ||
97 | mov \tmp, #0 | ||
98 | cmp \irqnr, #28 | ||
99 | moveq \tmp, #1 | ||
100 | streq \irqstat, [\base, #GIC_CPU_EOI] | ||
101 | cmp \tmp, #0 | ||
83 | .endm | 102 | .endm |
diff --git a/arch/arm/mach-exynos4/include/mach/irqs.h b/arch/arm/mach-exynos4/include/mach/irqs.h index f8952f8f3757..2d3f6bcd9bc0 100644 --- a/arch/arm/mach-exynos4/include/mach/irqs.h +++ b/arch/arm/mach-exynos4/include/mach/irqs.h | |||
@@ -19,6 +19,8 @@ | |||
19 | 19 | ||
20 | #define IRQ_PPI(x) S5P_IRQ(x+16) | 20 | #define IRQ_PPI(x) S5P_IRQ(x+16) |
21 | 21 | ||
22 | #define IRQ_MCT_LOCALTIMER IRQ_PPI(12) | ||
23 | |||
22 | /* SPI: Shared Peripheral Interrupt */ | 24 | /* SPI: Shared Peripheral Interrupt */ |
23 | 25 | ||
24 | #define IRQ_SPI(x) S5P_IRQ(x+32) | 26 | #define IRQ_SPI(x) S5P_IRQ(x+32) |
diff --git a/arch/arm/mach-exynos4/include/mach/map.h b/arch/arm/mach-exynos4/include/mach/map.h index 7073ac730855..9f97eb8499ee 100644 --- a/arch/arm/mach-exynos4/include/mach/map.h +++ b/arch/arm/mach-exynos4/include/mach/map.h | |||
@@ -62,7 +62,6 @@ | |||
62 | 62 | ||
63 | #define EXYNOS4_PA_GIC_CPU 0x10480000 | 63 | #define EXYNOS4_PA_GIC_CPU 0x10480000 |
64 | #define EXYNOS4_PA_GIC_DIST 0x10490000 | 64 | #define EXYNOS4_PA_GIC_DIST 0x10490000 |
65 | #define EXYNOS4_GIC_BANK_OFFSET 0x8000 | ||
66 | 65 | ||
67 | #define EXYNOS4_PA_COREPERI 0x10500000 | 66 | #define EXYNOS4_PA_COREPERI 0x10500000 |
68 | #define EXYNOS4_PA_TWD 0x10500600 | 67 | #define EXYNOS4_PA_TWD 0x10500600 |
diff --git a/arch/arm/mach-exynos4/include/mach/regs-mct.h b/arch/arm/mach-exynos4/include/mach/regs-mct.h index ca9c8434b023..80dd02ad6d61 100644 --- a/arch/arm/mach-exynos4/include/mach/regs-mct.h +++ b/arch/arm/mach-exynos4/include/mach/regs-mct.h | |||
@@ -31,8 +31,9 @@ | |||
31 | #define EXYNOS4_MCT_G_INT_ENB EXYNOS4_MCTREG(0x248) | 31 | #define EXYNOS4_MCT_G_INT_ENB EXYNOS4_MCTREG(0x248) |
32 | #define EXYNOS4_MCT_G_WSTAT EXYNOS4_MCTREG(0x24C) | 32 | #define EXYNOS4_MCT_G_WSTAT EXYNOS4_MCTREG(0x24C) |
33 | 33 | ||
34 | #define EXYNOS4_MCT_L0_BASE EXYNOS4_MCTREG(0x300) | 34 | #define _EXYNOS4_MCT_L_BASE EXYNOS4_MCTREG(0x300) |
35 | #define EXYNOS4_MCT_L1_BASE EXYNOS4_MCTREG(0x400) | 35 | #define EXYNOS4_MCT_L_BASE(x) (_EXYNOS4_MCT_L_BASE + (0x100 * x)) |
36 | #define EXYNOS4_MCT_L_MASK (0xffffff00) | ||
36 | 37 | ||
37 | #define MCT_L_TCNTB_OFFSET (0x00) | 38 | #define MCT_L_TCNTB_OFFSET (0x00) |
38 | #define MCT_L_ICNTB_OFFSET (0x08) | 39 | #define MCT_L_ICNTB_OFFSET (0x08) |