diff options
author | Nobuhiro Iwamatsu <nobuhiro.iwamatsu.zh@hitachi.com> | 2007-04-25 22:51:00 -0400 |
---|---|---|
committer | Paul Mundt <lethal@hera.kernel.org> | 2007-05-06 22:11:56 -0400 |
commit | 2a8ff4596cde3ec2a51980288ebb28a0d196d19a (patch) | |
tree | a895745a2a0bf676a6740c0529175cf430dee489 /arch/sh/kernel/cpu/irq | |
parent | 005a336e71e9e3ea356f9afca5d66318d6901319 (diff) |
sh: Solution Engine SH7705 board and CPU updates.
This fixes up SH7705 CPU support and the SE7705 board
for some of the recent changes.
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.zh@hitachi.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/cpu/irq')
-rw-r--r-- | arch/sh/kernel/cpu/irq/Makefile | 2 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/irq/pint.c | 56 |
2 files changed, 55 insertions, 3 deletions
diff --git a/arch/sh/kernel/cpu/irq/Makefile b/arch/sh/kernel/cpu/irq/Makefile index 0049d217561..1c23308cfc2 100644 --- a/arch/sh/kernel/cpu/irq/Makefile +++ b/arch/sh/kernel/cpu/irq/Makefile | |||
@@ -4,6 +4,6 @@ | |||
4 | obj-y += imask.o | 4 | obj-y += imask.o |
5 | 5 | ||
6 | obj-$(CONFIG_CPU_HAS_IPR_IRQ) += ipr.o | 6 | obj-$(CONFIG_CPU_HAS_IPR_IRQ) += ipr.o |
7 | obj-$(CONFIG_CPU_HAS_PINT_IRQ) += pint.o | 7 | obj-$(CONFIG_CPU_HAS_PINT_IRQ) += pint.o |
8 | obj-$(CONFIG_CPU_HAS_MASKREG_IRQ) += maskreg.o | 8 | obj-$(CONFIG_CPU_HAS_MASKREG_IRQ) += maskreg.o |
9 | obj-$(CONFIG_CPU_HAS_INTC2_IRQ) += intc2.o | 9 | obj-$(CONFIG_CPU_HAS_INTC2_IRQ) += intc2.o |
diff --git a/arch/sh/kernel/cpu/irq/pint.c b/arch/sh/kernel/cpu/irq/pint.c index f60007783a2..67602685df1 100644 --- a/arch/sh/kernel/cpu/irq/pint.c +++ b/arch/sh/kernel/cpu/irq/pint.c | |||
@@ -18,6 +18,58 @@ | |||
18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
19 | #include <asm/machvec.h> | 19 | #include <asm/machvec.h> |
20 | 20 | ||
21 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) | ||
22 | #define INTC_INTER 0xA4000014UL | ||
23 | #define INTC_IPRD 0xA4000018UL | ||
24 | #define INTC_ICR2 0xA4000012UL | ||
25 | |||
26 | /* PFC */ | ||
27 | #define PORT_PACR 0xA4000100UL | ||
28 | #define PORT_PBCR 0xA4000102UL | ||
29 | #define PORT_PCCR 0xA4000104UL | ||
30 | #define PORT_PDCR 0xA4000106UL | ||
31 | #define PORT_PECR 0xA4000108UL | ||
32 | #define PORT_PFCR 0xA400010AUL | ||
33 | #define PORT_PGCR 0xA400010CUL | ||
34 | #define PORT_PHCR 0xA400010EUL | ||
35 | #define PORT_PJCR 0xA4000110UL | ||
36 | #define PORT_PKCR 0xA4000112UL | ||
37 | #define PORT_PLCR 0xA4000114UL | ||
38 | #define PORT_PMCR 0xA4000118UL | ||
39 | #define PORT_PNCR 0xA400011AUL | ||
40 | #define PORT_PECR2 0xA4050148UL | ||
41 | #define PORT_PFCR2 0xA405014AUL | ||
42 | #define PORT_PNCR2 0xA405015AUL | ||
43 | |||
44 | /* I/O port */ | ||
45 | #define PORT_PADR 0xA4000120UL | ||
46 | #define PORT_PBDR 0xA4000122UL | ||
47 | #define PORT_PCDR 0xA4000124UL | ||
48 | #define PORT_PDDR 0xA4000126UL | ||
49 | #define PORT_PEDR 0xA4000128UL | ||
50 | #define PORT_PFDR 0xA400012AUL | ||
51 | #define PORT_PGDR 0xA400012CUL | ||
52 | #define PORT_PHDR 0xA400012EUL | ||
53 | #define PORT_PJDR 0xA4000130UL | ||
54 | #define PORT_PKDR 0xA4000132UL | ||
55 | #define PORT_PLDR 0xA4000134UL | ||
56 | #define PORT_PMDR 0xA4000138UL | ||
57 | #define PORT_PNDR 0xA400013AUL | ||
58 | |||
59 | #define PINT0_IRQ 40 | ||
60 | #define PINT8_IRQ 41 | ||
61 | #define PINT_IRQ_BASE 86 | ||
62 | |||
63 | #define PINT0_IPR_ADDR INTC_IPRD | ||
64 | #define PINT0_IPR_POS 3 | ||
65 | #define PINT0_PRIORITY 2 | ||
66 | |||
67 | #define PINT8_IPR_ADDR INTC_IPRD | ||
68 | #define PINT8_IPR_POS 2 | ||
69 | #define PINT8_PRIORITY 2 | ||
70 | |||
71 | #endif /* CONFIG_CPU_SUBTYPE_SH7705 */ | ||
72 | |||
21 | static unsigned char pint_map[256]; | 73 | static unsigned char pint_map[256]; |
22 | static unsigned long portcr_mask; | 74 | static unsigned long portcr_mask; |
23 | 75 | ||
@@ -126,7 +178,7 @@ int ipr_irq_demux(int irq) | |||
126 | unsigned long creg, dreg, d, sav; | 178 | unsigned long creg, dreg, d, sav; |
127 | 179 | ||
128 | if (irq == PINT0_IRQ) { | 180 | if (irq == PINT0_IRQ) { |
129 | #if defined(CONFIG_CPU_SUBTYPE_SH7707) | 181 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) || defined(CONFIG_CPU_SUBTYPE_SH7707) |
130 | creg = PORT_PACR; | 182 | creg = PORT_PACR; |
131 | dreg = PORT_PADR; | 183 | dreg = PORT_PADR; |
132 | #else | 184 | #else |
@@ -144,7 +196,7 @@ int ipr_irq_demux(int irq) | |||
144 | 196 | ||
145 | return PINT_IRQ_BASE + pint_map[d]; | 197 | return PINT_IRQ_BASE + pint_map[d]; |
146 | } else if (irq == PINT8_IRQ) { | 198 | } else if (irq == PINT8_IRQ) { |
147 | #if defined(CONFIG_CPU_SUBTYPE_SH7707) | 199 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) || defined(CONFIG_CPU_SUBTYPE_SH7707) |
148 | creg = PORT_PBCR; | 200 | creg = PORT_PBCR; |
149 | dreg = PORT_PBDR; | 201 | dreg = PORT_PBDR; |
150 | #else | 202 | #else |