aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2012-05-18 05:13:27 -0400
committerPaul Mundt <lethal@linux-sh.org>2012-05-18 05:13:27 -0400
commitc1dbccc3c7cc70e8211a7ad6ba55ecbc18e77a5a (patch)
tree570fbd1ab42d12257a820460fae0e6e7bc891900 /arch/sh/kernel
parent00d6025e58c6e3b229e28cab721c568af5b1ae05 (diff)
parent58796ce67a80e8725220af83c5a550bf6a4dab12 (diff)
Merge branch 'sh/evt2irq-migration' into sh-latest
Conflicts: arch/sh/kernel/cpu/sh3/setup-sh770x.c arch/sh/kernel/cpu/sh3/setup-sh7710.c arch/sh/kernel/cpu/sh3/setup-sh7720.c arch/sh/kernel/cpu/sh4/setup-sh7750.c arch/sh/kernel/cpu/sh4a/setup-sh7343.c arch/sh/kernel/cpu/sh4a/setup-sh7366.c arch/sh/kernel/cpu/sh4a/setup-sh7722.c arch/sh/kernel/cpu/sh4a/setup-sh7723.c arch/sh/kernel/cpu/sh4a/setup-sh7724.c arch/sh/kernel/cpu/sh4a/setup-sh7757.c arch/sh/kernel/cpu/sh4a/setup-sh7763.c arch/sh/kernel/cpu/sh4a/setup-sh7770.c arch/sh/kernel/cpu/sh4a/setup-sh7785.c arch/sh/kernel/cpu/sh4a/setup-sh7786.c Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh7705.c9
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh770x.c11
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh7710.c11
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh7720.c32
-rw-r--r--arch/sh/kernel/cpu/sh4/setup-sh4-202.c12
-rw-r--r--arch/sh/kernel/cpu/sh4/setup-sh7750.c15
-rw-r--r--arch/sh/kernel/cpu/sh4/setup-sh7760.c26
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7343.c31
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7366.c23
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7722.c47
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7723.c47
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7724.c77
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7757.c86
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7763.c28
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7770.c39
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7780.c37
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7785.c37
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7786.c39
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-shx3.c28
19 files changed, 346 insertions, 289 deletions
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7705.c b/arch/sh/kernel/cpu/sh3/setup-sh7705.c
index 97416a597dd8..03e4c96f2b11 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh7705.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh7705.c
@@ -14,6 +14,7 @@
14#include <linux/serial.h> 14#include <linux/serial.h>
15#include <linux/serial_sci.h> 15#include <linux/serial_sci.h>
16#include <linux/sh_timer.h> 16#include <linux/sh_timer.h>
17#include <linux/sh_intc.h>
17#include <asm/rtc.h> 18#include <asm/rtc.h>
18#include <cpu/serial.h> 19#include <cpu/serial.h>
19 20
@@ -114,7 +115,7 @@ static struct resource rtc_resources[] = {
114 .flags = IORESOURCE_IO, 115 .flags = IORESOURCE_IO,
115 }, 116 },
116 [1] = { 117 [1] = {
117 .start = 20, 118 .start = evt2irq(0x480),
118 .flags = IORESOURCE_IRQ, 119 .flags = IORESOURCE_IRQ,
119 }, 120 },
120}; 121};
@@ -146,7 +147,7 @@ static struct resource tmu0_resources[] = {
146 .flags = IORESOURCE_MEM, 147 .flags = IORESOURCE_MEM,
147 }, 148 },
148 [1] = { 149 [1] = {
149 .start = 16, 150 .start = evt2irq(0x400),
150 .flags = IORESOURCE_IRQ, 151 .flags = IORESOURCE_IRQ,
151 }, 152 },
152}; 153};
@@ -174,7 +175,7 @@ static struct resource tmu1_resources[] = {
174 .flags = IORESOURCE_MEM, 175 .flags = IORESOURCE_MEM,
175 }, 176 },
176 [1] = { 177 [1] = {
177 .start = 17, 178 .start = evt2irq(0x420),
178 .flags = IORESOURCE_IRQ, 179 .flags = IORESOURCE_IRQ,
179 }, 180 },
180}; 181};
@@ -201,7 +202,7 @@ static struct resource tmu2_resources[] = {
201 .flags = IORESOURCE_MEM, 202 .flags = IORESOURCE_MEM,
202 }, 203 },
203 [1] = { 204 [1] = {
204 .start = 18, 205 .start = evt2irq(0x440),
205 .flags = IORESOURCE_IRQ, 206 .flags = IORESOURCE_IRQ,
206 }, 207 },
207}; 208};
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh770x.c b/arch/sh/kernel/cpu/sh3/setup-sh770x.c
index 50f95a32a8c5..ba26cd9ce69b 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh770x.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh770x.c
@@ -19,6 +19,7 @@
19#include <linux/serial.h> 19#include <linux/serial.h>
20#include <linux/serial_sci.h> 20#include <linux/serial_sci.h>
21#include <linux/sh_timer.h> 21#include <linux/sh_timer.h>
22#include <linux/sh_intc.h>
22#include <cpu/serial.h> 23#include <cpu/serial.h>
23 24
24enum { 25enum {
@@ -95,7 +96,7 @@ static struct resource rtc_resources[] = {
95 .flags = IORESOURCE_IO, 96 .flags = IORESOURCE_IO,
96 }, 97 },
97 [1] = { 98 [1] = {
98 .start = 20, 99 .start = evt2irq(0x480),
99 .flags = IORESOURCE_IRQ, 100 .flags = IORESOURCE_IRQ,
100 }, 101 },
101}; 102};
@@ -114,7 +115,7 @@ static struct plat_sci_port scif0_platform_data = {
114 .scscr = SCSCR_TE | SCSCR_RE, 115 .scscr = SCSCR_TE | SCSCR_RE,
115 .scbrr_algo_id = SCBRR_ALGO_2, 116 .scbrr_algo_id = SCBRR_ALGO_2,
116 .type = PORT_SCI, 117 .type = PORT_SCI,
117 .irqs = SCIx_IRQ_MUXED(evt2irq(0x4E0)), 118 .irqs = SCIx_IRQ_MUXED(evt2irq(0x4e0)),
118 .ops = &sh770x_sci_port_ops, 119 .ops = &sh770x_sci_port_ops,
119 .regshift = 1, 120 .regshift = 1,
120}; 121};
@@ -184,7 +185,7 @@ static struct resource tmu0_resources[] = {
184 .flags = IORESOURCE_MEM, 185 .flags = IORESOURCE_MEM,
185 }, 186 },
186 [1] = { 187 [1] = {
187 .start = 16, 188 .start = evt2irq(0x400),
188 .flags = IORESOURCE_IRQ, 189 .flags = IORESOURCE_IRQ,
189 }, 190 },
190}; 191};
@@ -212,7 +213,7 @@ static struct resource tmu1_resources[] = {
212 .flags = IORESOURCE_MEM, 213 .flags = IORESOURCE_MEM,
213 }, 214 },
214 [1] = { 215 [1] = {
215 .start = 17, 216 .start = evt2irq(0x420),
216 .flags = IORESOURCE_IRQ, 217 .flags = IORESOURCE_IRQ,
217 }, 218 },
218}; 219};
@@ -239,7 +240,7 @@ static struct resource tmu2_resources[] = {
239 .flags = IORESOURCE_MEM, 240 .flags = IORESOURCE_MEM,
240 }, 241 },
241 [1] = { 242 [1] = {
242 .start = 18, 243 .start = evt2irq(0x440),
243 .flags = IORESOURCE_IRQ, 244 .flags = IORESOURCE_IRQ,
244 }, 245 },
245}; 246};
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7710.c b/arch/sh/kernel/cpu/sh3/setup-sh7710.c
index 7ef248731820..93c9c5e24a7a 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh7710.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh7710.c
@@ -14,6 +14,7 @@
14#include <linux/serial.h> 14#include <linux/serial.h>
15#include <linux/serial_sci.h> 15#include <linux/serial_sci.h>
16#include <linux/sh_timer.h> 16#include <linux/sh_timer.h>
17#include <linux/sh_intc.h>
17#include <asm/rtc.h> 18#include <asm/rtc.h>
18 19
19enum { 20enum {
@@ -77,7 +78,7 @@ static struct resource rtc_resources[] = {
77 .flags = IORESOURCE_IO, 78 .flags = IORESOURCE_IO,
78 }, 79 },
79 [1] = { 80 [1] = {
80 .start = 20, 81 .start = evt2irq(0x480),
81 .flags = IORESOURCE_IRQ, 82 .flags = IORESOURCE_IRQ,
82 }, 83 },
83}; 84};
@@ -121,7 +122,7 @@ static struct plat_sci_port scif1_platform_data = {
121 SCSCR_CKE1 | SCSCR_CKE0, 122 SCSCR_CKE1 | SCSCR_CKE0,
122 .scbrr_algo_id = SCBRR_ALGO_2, 123 .scbrr_algo_id = SCBRR_ALGO_2,
123 .type = PORT_SCIF, 124 .type = PORT_SCIF,
124 .irqs = SCIx_IRQ_MUXED(evt2irq(0x900)), 125 .irqs = SCIx_IRQ_MUXED(evt2irq(0x900)),
125}; 126};
126 127
127static struct platform_device scif1_device = { 128static struct platform_device scif1_device = {
@@ -145,7 +146,7 @@ static struct resource tmu0_resources[] = {
145 .flags = IORESOURCE_MEM, 146 .flags = IORESOURCE_MEM,
146 }, 147 },
147 [1] = { 148 [1] = {
148 .start = 16, 149 .start = evt2irq(0x400),
149 .flags = IORESOURCE_IRQ, 150 .flags = IORESOURCE_IRQ,
150 }, 151 },
151}; 152};
@@ -173,7 +174,7 @@ static struct resource tmu1_resources[] = {
173 .flags = IORESOURCE_MEM, 174 .flags = IORESOURCE_MEM,
174 }, 175 },
175 [1] = { 176 [1] = {
176 .start = 17, 177 .start = evt2irq(0x420),
177 .flags = IORESOURCE_IRQ, 178 .flags = IORESOURCE_IRQ,
178 }, 179 },
179}; 180};
@@ -200,7 +201,7 @@ static struct resource tmu2_resources[] = {
200 .flags = IORESOURCE_MEM, 201 .flags = IORESOURCE_MEM,
201 }, 202 },
202 [1] = { 203 [1] = {
203 .start = 18, 204 .start = evt2irq(0x440),
204 .flags = IORESOURCE_IRQ, 205 .flags = IORESOURCE_IRQ,
205 }, 206 },
206}; 207};
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7720.c b/arch/sh/kernel/cpu/sh3/setup-sh7720.c
index b2557485d0ce..0c2f1b2c2e19 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh7720.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh7720.c
@@ -19,6 +19,7 @@
19#include <linux/io.h> 19#include <linux/io.h>
20#include <linux/serial_sci.h> 20#include <linux/serial_sci.h>
21#include <linux/sh_timer.h> 21#include <linux/sh_timer.h>
22#include <linux/sh_intc.h>
22#include <asm/rtc.h> 23#include <asm/rtc.h>
23#include <cpu/serial.h> 24#include <cpu/serial.h>
24 25
@@ -30,7 +31,7 @@ static struct resource rtc_resources[] = {
30 }, 31 },
31 [1] = { 32 [1] = {
32 /* Shared Period/Carry/Alarm IRQ */ 33 /* Shared Period/Carry/Alarm IRQ */
33 .start = 20, 34 .start = evt2irq(0x480),
34 .flags = IORESOURCE_IRQ, 35 .flags = IORESOURCE_IRQ,
35 }, 36 },
36}; 37};
@@ -55,7 +56,7 @@ static struct plat_sci_port scif0_platform_data = {
55 .scscr = SCSCR_RE | SCSCR_TE, 56 .scscr = SCSCR_RE | SCSCR_TE,
56 .scbrr_algo_id = SCBRR_ALGO_4, 57 .scbrr_algo_id = SCBRR_ALGO_4,
57 .type = PORT_SCIF, 58 .type = PORT_SCIF,
58 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC00)), 59 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc00)),
59 .ops = &sh7720_sci_port_ops, 60 .ops = &sh7720_sci_port_ops,
60 .regtype = SCIx_SH7705_SCIF_REGTYPE, 61 .regtype = SCIx_SH7705_SCIF_REGTYPE,
61}; 62};
@@ -74,7 +75,7 @@ static struct plat_sci_port scif1_platform_data = {
74 .scscr = SCSCR_RE | SCSCR_TE, 75 .scscr = SCSCR_RE | SCSCR_TE,
75 .scbrr_algo_id = SCBRR_ALGO_4, 76 .scbrr_algo_id = SCBRR_ALGO_4,
76 .type = PORT_SCIF, 77 .type = PORT_SCIF,
77 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC20)), 78 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc20)),
78 .ops = &sh7720_sci_port_ops, 79 .ops = &sh7720_sci_port_ops,
79 .regtype = SCIx_SH7705_SCIF_REGTYPE, 80 .regtype = SCIx_SH7705_SCIF_REGTYPE,
80}; 81};
@@ -94,13 +95,14 @@ static struct resource usb_ohci_resources[] = {
94 .flags = IORESOURCE_MEM, 95 .flags = IORESOURCE_MEM,
95 }, 96 },
96 [1] = { 97 [1] = {
97 .start = 67, 98 .start = evt2irq(0xa60),
98 .end = 67, 99 .end = evt2irq(0xa60),
99 .flags = IORESOURCE_IRQ, 100 .flags = IORESOURCE_IRQ,
100 }, 101 },
101}; 102};
102 103
103static u64 usb_ohci_dma_mask = 0xffffffffUL; 104static u64 usb_ohci_dma_mask = 0xffffffffUL;
105
104static struct platform_device usb_ohci_device = { 106static struct platform_device usb_ohci_device = {
105 .name = "sh_ohci", 107 .name = "sh_ohci",
106 .id = -1, 108 .id = -1,
@@ -121,8 +123,8 @@ static struct resource usbf_resources[] = {
121 }, 123 },
122 [1] = { 124 [1] = {
123 .name = "sh_udc", 125 .name = "sh_udc",
124 .start = 65, 126 .start = evt2irq(0xa20),
125 .end = 65, 127 .end = evt2irq(0xa20),
126 .flags = IORESOURCE_IRQ, 128 .flags = IORESOURCE_IRQ,
127 }, 129 },
128}; 130};
@@ -152,7 +154,7 @@ static struct resource cmt0_resources[] = {
152 .flags = IORESOURCE_MEM, 154 .flags = IORESOURCE_MEM,
153 }, 155 },
154 [1] = { 156 [1] = {
155 .start = 104, 157 .start = evt2irq(0xf00),
156 .flags = IORESOURCE_IRQ, 158 .flags = IORESOURCE_IRQ,
157 }, 159 },
158}; 160};
@@ -179,7 +181,7 @@ static struct resource cmt1_resources[] = {
179 .flags = IORESOURCE_MEM, 181 .flags = IORESOURCE_MEM,
180 }, 182 },
181 [1] = { 183 [1] = {
182 .start = 104, 184 .start = evt2irq(0xf00),
183 .flags = IORESOURCE_IRQ, 185 .flags = IORESOURCE_IRQ,
184 }, 186 },
185}; 187};
@@ -206,7 +208,7 @@ static struct resource cmt2_resources[] = {
206 .flags = IORESOURCE_MEM, 208 .flags = IORESOURCE_MEM,
207 }, 209 },
208 [1] = { 210 [1] = {
209 .start = 104, 211 .start = evt2irq(0xf00),
210 .flags = IORESOURCE_IRQ, 212 .flags = IORESOURCE_IRQ,
211 }, 213 },
212}; 214};
@@ -233,7 +235,7 @@ static struct resource cmt3_resources[] = {
233 .flags = IORESOURCE_MEM, 235 .flags = IORESOURCE_MEM,
234 }, 236 },
235 [1] = { 237 [1] = {
236 .start = 104, 238 .start = evt2irq(0xf00),
237 .flags = IORESOURCE_IRQ, 239 .flags = IORESOURCE_IRQ,
238 }, 240 },
239}; 241};
@@ -260,7 +262,7 @@ static struct resource cmt4_resources[] = {
260 .flags = IORESOURCE_MEM, 262 .flags = IORESOURCE_MEM,
261 }, 263 },
262 [1] = { 264 [1] = {
263 .start = 104, 265 .start = evt2irq(0xf00),
264 .flags = IORESOURCE_IRQ, 266 .flags = IORESOURCE_IRQ,
265 }, 267 },
266}; 268};
@@ -288,7 +290,7 @@ static struct resource tmu0_resources[] = {
288 .flags = IORESOURCE_MEM, 290 .flags = IORESOURCE_MEM,
289 }, 291 },
290 [1] = { 292 [1] = {
291 .start = 16, 293 .start = evt2irq(0x400),
292 .flags = IORESOURCE_IRQ, 294 .flags = IORESOURCE_IRQ,
293 }, 295 },
294}; 296};
@@ -316,7 +318,7 @@ static struct resource tmu1_resources[] = {
316 .flags = IORESOURCE_MEM, 318 .flags = IORESOURCE_MEM,
317 }, 319 },
318 [1] = { 320 [1] = {
319 .start = 17, 321 .start = evt2irq(0x420),
320 .flags = IORESOURCE_IRQ, 322 .flags = IORESOURCE_IRQ,
321 }, 323 },
322}; 324};
@@ -343,7 +345,7 @@ static struct resource tmu2_resources[] = {
343 .flags = IORESOURCE_MEM, 345 .flags = IORESOURCE_MEM,
344 }, 346 },
345 [1] = { 347 [1] = {
346 .start = 18, 348 .start = evt2irq(0x440),
347 .flags = IORESOURCE_IRQ, 349 .flags = IORESOURCE_IRQ,
348 }, 350 },
349}; 351};
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c
index 5b2833159b7d..2a5320aa73bb 100644
--- a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c
+++ b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c
@@ -13,6 +13,7 @@
13#include <linux/serial.h> 13#include <linux/serial.h>
14#include <linux/serial_sci.h> 14#include <linux/serial_sci.h>
15#include <linux/sh_timer.h> 15#include <linux/sh_timer.h>
16#include <linux/sh_intc.h>
16#include <linux/io.h> 17#include <linux/io.h>
17 18
18static struct plat_sci_port scif0_platform_data = { 19static struct plat_sci_port scif0_platform_data = {
@@ -21,7 +22,10 @@ static struct plat_sci_port scif0_platform_data = {
21 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 22 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
22 .scbrr_algo_id = SCBRR_ALGO_2, 23 .scbrr_algo_id = SCBRR_ALGO_2,
23 .type = PORT_SCIF, 24 .type = PORT_SCIF,
24 .irqs = { 40, 41, 43, 42 }, 25 .irqs = { evt2irq(0x700),
26 evt2irq(0x720),
27 evt2irq(0x760),
28 evt2irq(0x740) },
25}; 29};
26 30
27static struct platform_device scif0_device = { 31static struct platform_device scif0_device = {
@@ -45,7 +49,7 @@ static struct resource tmu0_resources[] = {
45 .flags = IORESOURCE_MEM, 49 .flags = IORESOURCE_MEM,
46 }, 50 },
47 [1] = { 51 [1] = {
48 .start = 16, 52 .start = evt2irq(0x400),
49 .flags = IORESOURCE_IRQ, 53 .flags = IORESOURCE_IRQ,
50 }, 54 },
51}; 55};
@@ -73,7 +77,7 @@ static struct resource tmu1_resources[] = {
73 .flags = IORESOURCE_MEM, 77 .flags = IORESOURCE_MEM,
74 }, 78 },
75 [1] = { 79 [1] = {
76 .start = 17, 80 .start = evt2irq(0x420),
77 .flags = IORESOURCE_IRQ, 81 .flags = IORESOURCE_IRQ,
78 }, 82 },
79}; 83};
@@ -100,7 +104,7 @@ static struct resource tmu2_resources[] = {
100 .flags = IORESOURCE_MEM, 104 .flags = IORESOURCE_MEM,
101 }, 105 },
102 [1] = { 106 [1] = {
103 .start = 18, 107 .start = evt2irq(0x440),
104 .flags = IORESOURCE_IRQ, 108 .flags = IORESOURCE_IRQ,
105 }, 109 },
106}; 110};
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7750.c b/arch/sh/kernel/cpu/sh4/setup-sh7750.c
index 56b3bdc0b285..04a45512596f 100644
--- a/arch/sh/kernel/cpu/sh4/setup-sh7750.c
+++ b/arch/sh/kernel/cpu/sh4/setup-sh7750.c
@@ -13,6 +13,7 @@
13#include <linux/serial.h> 13#include <linux/serial.h>
14#include <linux/io.h> 14#include <linux/io.h>
15#include <linux/sh_timer.h> 15#include <linux/sh_timer.h>
16#include <linux/sh_intc.h>
16#include <linux/serial_sci.h> 17#include <linux/serial_sci.h>
17#include <generated/machtypes.h> 18#include <generated/machtypes.h>
18 19
@@ -24,7 +25,7 @@ static struct resource rtc_resources[] = {
24 }, 25 },
25 [1] = { 26 [1] = {
26 /* Shared Period/Carry/Alarm IRQ */ 27 /* Shared Period/Carry/Alarm IRQ */
27 .start = 20, 28 .start = evt2irq(0x480),
28 .flags = IORESOURCE_IRQ, 29 .flags = IORESOURCE_IRQ,
29 }, 30 },
30}; 31};
@@ -43,7 +44,7 @@ static struct plat_sci_port sci_platform_data = {
43 .scscr = SCSCR_TE | SCSCR_RE, 44 .scscr = SCSCR_TE | SCSCR_RE,
44 .scbrr_algo_id = SCBRR_ALGO_2, 45 .scbrr_algo_id = SCBRR_ALGO_2,
45 .type = PORT_SCI, 46 .type = PORT_SCI,
46 .irqs = SCIx_IRQ_MUXED(evt2irq(0xE40)), 47 .irqs = SCIx_IRQ_MUXED(evt2irq(0x4e0)),
47 .regshift = 2, 48 .regshift = 2,
48}; 49};
49 50
@@ -85,7 +86,7 @@ static struct resource tmu0_resources[] = {
85 .flags = IORESOURCE_MEM, 86 .flags = IORESOURCE_MEM,
86 }, 87 },
87 [1] = { 88 [1] = {
88 .start = 16, 89 .start = evt2irq(0x400),
89 .flags = IORESOURCE_IRQ, 90 .flags = IORESOURCE_IRQ,
90 }, 91 },
91}; 92};
@@ -113,7 +114,7 @@ static struct resource tmu1_resources[] = {
113 .flags = IORESOURCE_MEM, 114 .flags = IORESOURCE_MEM,
114 }, 115 },
115 [1] = { 116 [1] = {
116 .start = 17, 117 .start = evt2irq(0x420),
117 .flags = IORESOURCE_IRQ, 118 .flags = IORESOURCE_IRQ,
118 }, 119 },
119}; 120};
@@ -140,7 +141,7 @@ static struct resource tmu2_resources[] = {
140 .flags = IORESOURCE_MEM, 141 .flags = IORESOURCE_MEM,
141 }, 142 },
142 [1] = { 143 [1] = {
143 .start = 18, 144 .start = evt2irq(0x440),
144 .flags = IORESOURCE_IRQ, 145 .flags = IORESOURCE_IRQ,
145 }, 146 },
146}; 147};
@@ -172,7 +173,7 @@ static struct resource tmu3_resources[] = {
172 .flags = IORESOURCE_MEM, 173 .flags = IORESOURCE_MEM,
173 }, 174 },
174 [1] = { 175 [1] = {
175 .start = 72, 176 .start = evt2irq(0xb00),
176 .flags = IORESOURCE_IRQ, 177 .flags = IORESOURCE_IRQ,
177 }, 178 },
178}; 179};
@@ -199,7 +200,7 @@ static struct resource tmu4_resources[] = {
199 .flags = IORESOURCE_MEM, 200 .flags = IORESOURCE_MEM,
200 }, 201 },
201 [1] = { 202 [1] = {
202 .start = 76, 203 .start = evt2irq(0xb80),
203 .flags = IORESOURCE_IRQ, 204 .flags = IORESOURCE_IRQ,
204 }, 205 },
205}; 206};
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7760.c b/arch/sh/kernel/cpu/sh4/setup-sh7760.c
index c0b4c774700e..98e075ada44e 100644
--- a/arch/sh/kernel/cpu/sh4/setup-sh7760.c
+++ b/arch/sh/kernel/cpu/sh4/setup-sh7760.c
@@ -11,6 +11,7 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <linux/sh_timer.h> 13#include <linux/sh_timer.h>
14#include <linux/sh_intc.h>
14#include <linux/serial_sci.h> 15#include <linux/serial_sci.h>
15#include <linux/io.h> 16#include <linux/io.h>
16 17
@@ -132,7 +133,10 @@ static struct plat_sci_port scif0_platform_data = {
132 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 133 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
133 .scbrr_algo_id = SCBRR_ALGO_2, 134 .scbrr_algo_id = SCBRR_ALGO_2,
134 .type = PORT_SCIF, 135 .type = PORT_SCIF,
135 .irqs = { 52, 53, 55, 54 }, 136 .irqs = { evt2irq(0x880),
137 evt2irq(0x8a0),
138 evt2irq(0x8e0),
139 evt2irq(0x8c0) },
136 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 140 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
137}; 141};
138 142
@@ -150,7 +154,10 @@ static struct plat_sci_port scif1_platform_data = {
150 .type = PORT_SCIF, 154 .type = PORT_SCIF,
151 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 155 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
152 .scbrr_algo_id = SCBRR_ALGO_2, 156 .scbrr_algo_id = SCBRR_ALGO_2,
153 .irqs = { 72, 73, 75, 74 }, 157 .irqs = { evt2irq(0xb00),
158 evt2irq(0xb20),
159 evt2irq(0xb60),
160 evt2irq(0xb40) },
154 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 161 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
155}; 162};
156 163
@@ -168,7 +175,10 @@ static struct plat_sci_port scif2_platform_data = {
168 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 175 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
169 .scbrr_algo_id = SCBRR_ALGO_2, 176 .scbrr_algo_id = SCBRR_ALGO_2,
170 .type = PORT_SCIF, 177 .type = PORT_SCIF,
171 .irqs = { 76, 77, 79, 78 }, 178 .irqs = { evt2irq(0xb80),
179 evt2irq(0xba0),
180 evt2irq(0xbe0),
181 evt2irq(0xbc0) },
172 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 182 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
173}; 183};
174 184
@@ -186,7 +196,9 @@ static struct plat_sci_port scif3_platform_data = {
186 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 196 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
187 .scbrr_algo_id = SCBRR_ALGO_2, 197 .scbrr_algo_id = SCBRR_ALGO_2,
188 .type = PORT_SCI, 198 .type = PORT_SCI,
189 .irqs = { 80, 81, 82, 0 }, 199 .irqs = { evt2irq(0xc00),
200 evt2irq(0xc20),
201 evt2irq(0xc40), },
190 .regshift = 2, 202 .regshift = 2,
191}; 203};
192 204
@@ -211,7 +223,7 @@ static struct resource tmu0_resources[] = {
211 .flags = IORESOURCE_MEM, 223 .flags = IORESOURCE_MEM,
212 }, 224 },
213 [1] = { 225 [1] = {
214 .start = 16, 226 .start = evt2irq(0x400),
215 .flags = IORESOURCE_IRQ, 227 .flags = IORESOURCE_IRQ,
216 }, 228 },
217}; 229};
@@ -239,7 +251,7 @@ static struct resource tmu1_resources[] = {
239 .flags = IORESOURCE_MEM, 251 .flags = IORESOURCE_MEM,
240 }, 252 },
241 [1] = { 253 [1] = {
242 .start = 17, 254 .start = evt2irq(0x420),
243 .flags = IORESOURCE_IRQ, 255 .flags = IORESOURCE_IRQ,
244 }, 256 },
245}; 257};
@@ -266,7 +278,7 @@ static struct resource tmu2_resources[] = {
266 .flags = IORESOURCE_MEM, 278 .flags = IORESOURCE_MEM,
267 }, 279 },
268 [1] = { 280 [1] = {
269 .start = 18, 281 .start = evt2irq(0x440),
270 .flags = IORESOURCE_IRQ, 282 .flags = IORESOURCE_IRQ,
271 }, 283 },
272}; 284};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
index 5773643b8a53..b91ea8300a3e 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
@@ -13,6 +13,7 @@
13#include <linux/serial_sci.h> 13#include <linux/serial_sci.h>
14#include <linux/uio_driver.h> 14#include <linux/uio_driver.h>
15#include <linux/sh_timer.h> 15#include <linux/sh_timer.h>
16#include <linux/sh_intc.h>
16#include <asm/clock.h> 17#include <asm/clock.h>
17 18
18/* Serial */ 19/* Serial */
@@ -22,7 +23,7 @@ static struct plat_sci_port scif0_platform_data = {
22 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, 23 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1,
23 .scbrr_algo_id = SCBRR_ALGO_2, 24 .scbrr_algo_id = SCBRR_ALGO_2,
24 .type = PORT_SCIF, 25 .type = PORT_SCIF,
25 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC00)), 26 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc00)),
26}; 27};
27 28
28static struct platform_device scif0_device = { 29static struct platform_device scif0_device = {
@@ -39,7 +40,7 @@ static struct plat_sci_port scif1_platform_data = {
39 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, 40 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1,
40 .scbrr_algo_id = SCBRR_ALGO_2, 41 .scbrr_algo_id = SCBRR_ALGO_2,
41 .type = PORT_SCIF, 42 .type = PORT_SCIF,
42 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC20)), 43 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc20)),
43}; 44};
44 45
45static struct platform_device scif1_device = { 46static struct platform_device scif1_device = {
@@ -56,7 +57,7 @@ static struct plat_sci_port scif2_platform_data = {
56 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, 57 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1,
57 .scbrr_algo_id = SCBRR_ALGO_2, 58 .scbrr_algo_id = SCBRR_ALGO_2,
58 .type = PORT_SCIF, 59 .type = PORT_SCIF,
59 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC40)), 60 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc40)),
60}; 61};
61 62
62static struct platform_device scif2_device = { 63static struct platform_device scif2_device = {
@@ -73,7 +74,7 @@ static struct plat_sci_port scif3_platform_data = {
73 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, 74 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1,
74 .scbrr_algo_id = SCBRR_ALGO_2, 75 .scbrr_algo_id = SCBRR_ALGO_2,
75 .type = PORT_SCIF, 76 .type = PORT_SCIF,
76 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC60)), 77 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc60)),
77}; 78};
78 79
79static struct platform_device scif3_device = { 80static struct platform_device scif3_device = {
@@ -92,8 +93,8 @@ static struct resource iic0_resources[] = {
92 .flags = IORESOURCE_MEM, 93 .flags = IORESOURCE_MEM,
93 }, 94 },
94 [1] = { 95 [1] = {
95 .start = 96, 96 .start = evt2irq(0xe00),
96 .end = 99, 97 .end = evt2irq(0xe60),
97 .flags = IORESOURCE_IRQ, 98 .flags = IORESOURCE_IRQ,
98 }, 99 },
99}; 100};
@@ -113,8 +114,8 @@ static struct resource iic1_resources[] = {
113 .flags = IORESOURCE_MEM, 114 .flags = IORESOURCE_MEM,
114 }, 115 },
115 [1] = { 116 [1] = {
116 .start = 44, 117 .start = evt2irq(0x780),
117 .end = 47, 118 .end = evt2irq(0x7e0),
118 .flags = IORESOURCE_IRQ, 119 .flags = IORESOURCE_IRQ,
119 }, 120 },
120}; 121};
@@ -129,7 +130,7 @@ static struct platform_device iic1_device = {
129static struct uio_info vpu_platform_data = { 130static struct uio_info vpu_platform_data = {
130 .name = "VPU4", 131 .name = "VPU4",
131 .version = "0", 132 .version = "0",
132 .irq = 60, 133 .irq = evt2irq(0x980),
133}; 134};
134 135
135static struct resource vpu_resources[] = { 136static struct resource vpu_resources[] = {
@@ -157,7 +158,7 @@ static struct platform_device vpu_device = {
157static struct uio_info veu_platform_data = { 158static struct uio_info veu_platform_data = {
158 .name = "VEU", 159 .name = "VEU",
159 .version = "0", 160 .version = "0",
160 .irq = 54, 161 .irq = evt2irq(0x8c0),
161}; 162};
162 163
163static struct resource veu_resources[] = { 164static struct resource veu_resources[] = {
@@ -185,7 +186,7 @@ static struct platform_device veu_device = {
185static struct uio_info jpu_platform_data = { 186static struct uio_info jpu_platform_data = {
186 .name = "JPU", 187 .name = "JPU",
187 .version = "0", 188 .version = "0",
188 .irq = 27, 189 .irq = evt2irq(0x560),
189}; 190};
190 191
191static struct resource jpu_resources[] = { 192static struct resource jpu_resources[] = {
@@ -224,7 +225,7 @@ static struct resource cmt_resources[] = {
224 .flags = IORESOURCE_MEM, 225 .flags = IORESOURCE_MEM,
225 }, 226 },
226 [1] = { 227 [1] = {
227 .start = 104, 228 .start = evt2irq(0xf00),
228 .flags = IORESOURCE_IRQ, 229 .flags = IORESOURCE_IRQ,
229 }, 230 },
230}; 231};
@@ -252,7 +253,7 @@ static struct resource tmu0_resources[] = {
252 .flags = IORESOURCE_MEM, 253 .flags = IORESOURCE_MEM,
253 }, 254 },
254 [1] = { 255 [1] = {
255 .start = 16, 256 .start = evt2irq(0x400),
256 .flags = IORESOURCE_IRQ, 257 .flags = IORESOURCE_IRQ,
257 }, 258 },
258}; 259};
@@ -280,7 +281,7 @@ static struct resource tmu1_resources[] = {
280 .flags = IORESOURCE_MEM, 281 .flags = IORESOURCE_MEM,
281 }, 282 },
282 [1] = { 283 [1] = {
283 .start = 17, 284 .start = evt2irq(0x420),
284 .flags = IORESOURCE_IRQ, 285 .flags = IORESOURCE_IRQ,
285 }, 286 },
286}; 287};
@@ -307,7 +308,7 @@ static struct resource tmu2_resources[] = {
307 .flags = IORESOURCE_MEM, 308 .flags = IORESOURCE_MEM,
308 }, 309 },
309 [1] = { 310 [1] = {
310 .start = 18, 311 .start = evt2irq(0x440),
311 .flags = IORESOURCE_IRQ, 312 .flags = IORESOURCE_IRQ,
312 }, 313 },
313}; 314};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
index 20f9e366a814..0bd09d51419f 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
@@ -15,6 +15,7 @@
15#include <linux/serial_sci.h> 15#include <linux/serial_sci.h>
16#include <linux/uio_driver.h> 16#include <linux/uio_driver.h>
17#include <linux/sh_timer.h> 17#include <linux/sh_timer.h>
18#include <linux/sh_intc.h>
18#include <linux/usb/r8a66597.h> 19#include <linux/usb/r8a66597.h>
19#include <asm/clock.h> 20#include <asm/clock.h>
20 21
@@ -25,7 +26,7 @@ static struct plat_sci_port scif0_platform_data = {
25 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 26 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
26 .scbrr_algo_id = SCBRR_ALGO_2, 27 .scbrr_algo_id = SCBRR_ALGO_2,
27 .type = PORT_SCIF, 28 .type = PORT_SCIF,
28 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC00)), 29 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc00)),
29}; 30};
30 31
31static struct platform_device scif0_device = { 32static struct platform_device scif0_device = {
@@ -44,8 +45,8 @@ static struct resource iic_resources[] = {
44 .flags = IORESOURCE_MEM, 45 .flags = IORESOURCE_MEM,
45 }, 46 },
46 [1] = { 47 [1] = {
47 .start = 96, 48 .start = evt2irq(0xe00),
48 .end = 99, 49 .end = evt2irq(0xe60),
49 .flags = IORESOURCE_IRQ, 50 .flags = IORESOURCE_IRQ,
50 }, 51 },
51}; 52};
@@ -68,8 +69,8 @@ static struct resource usb_host_resources[] = {
68 .flags = IORESOURCE_MEM, 69 .flags = IORESOURCE_MEM,
69 }, 70 },
70 [1] = { 71 [1] = {
71 .start = 65, 72 .start = evt2irq(0xa20),
72 .end = 65, 73 .end = evt2irq(0xa20),
73 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW, 74 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW,
74 }, 75 },
75}; 76};
@@ -89,7 +90,7 @@ static struct platform_device usb_host_device = {
89static struct uio_info vpu_platform_data = { 90static struct uio_info vpu_platform_data = {
90 .name = "VPU5", 91 .name = "VPU5",
91 .version = "0", 92 .version = "0",
92 .irq = 60, 93 .irq = evt2irq(0x980),
93}; 94};
94 95
95static struct resource vpu_resources[] = { 96static struct resource vpu_resources[] = {
@@ -117,7 +118,7 @@ static struct platform_device vpu_device = {
117static struct uio_info veu0_platform_data = { 118static struct uio_info veu0_platform_data = {
118 .name = "VEU", 119 .name = "VEU",
119 .version = "0", 120 .version = "0",
120 .irq = 54, 121 .irq = evt2irq(0x8c0),
121}; 122};
122 123
123static struct resource veu0_resources[] = { 124static struct resource veu0_resources[] = {
@@ -145,7 +146,7 @@ static struct platform_device veu0_device = {
145static struct uio_info veu1_platform_data = { 146static struct uio_info veu1_platform_data = {
146 .name = "VEU", 147 .name = "VEU",
147 .version = "0", 148 .version = "0",
148 .irq = 27, 149 .irq = evt2irq(0x560),
149}; 150};
150 151
151static struct resource veu1_resources[] = { 152static struct resource veu1_resources[] = {
@@ -184,7 +185,7 @@ static struct resource cmt_resources[] = {
184 .flags = IORESOURCE_MEM, 185 .flags = IORESOURCE_MEM,
185 }, 186 },
186 [1] = { 187 [1] = {
187 .start = 104, 188 .start = evt2irq(0xf00),
188 .flags = IORESOURCE_IRQ, 189 .flags = IORESOURCE_IRQ,
189 }, 190 },
190}; 191};
@@ -240,7 +241,7 @@ static struct resource tmu1_resources[] = {
240 .flags = IORESOURCE_MEM, 241 .flags = IORESOURCE_MEM,
241 }, 242 },
242 [1] = { 243 [1] = {
243 .start = 17, 244 .start = evt2irq(0x420),
244 .flags = IORESOURCE_IRQ, 245 .flags = IORESOURCE_IRQ,
245 }, 246 },
246}; 247};
@@ -267,7 +268,7 @@ static struct resource tmu2_resources[] = {
267 .flags = IORESOURCE_MEM, 268 .flags = IORESOURCE_MEM,
268 }, 269 },
269 [1] = { 270 [1] = {
270 .start = 18, 271 .start = evt2irq(0x440),
271 .flags = IORESOURCE_IRQ, 272 .flags = IORESOURCE_IRQ,
272 }, 273 },
273}; 274};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
index 34b2ee5805d3..0f5a21907da6 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
@@ -13,6 +13,7 @@
13#include <linux/serial.h> 13#include <linux/serial.h>
14#include <linux/serial_sci.h> 14#include <linux/serial_sci.h>
15#include <linux/sh_timer.h> 15#include <linux/sh_timer.h>
16#include <linux/sh_intc.h>
16#include <linux/uio_driver.h> 17#include <linux/uio_driver.h>
17#include <linux/usb/m66592.h> 18#include <linux/usb/m66592.h>
18 19
@@ -147,20 +148,20 @@ static struct resource sh7722_dmae_resources[] = {
147 }, 148 },
148 { 149 {
149 .name = "error_irq", 150 .name = "error_irq",
150 .start = 78, 151 .start = evt2irq(0xbc0),
151 .end = 78, 152 .end = evt2irq(0xbc0),
152 .flags = IORESOURCE_IRQ, 153 .flags = IORESOURCE_IRQ,
153 }, 154 },
154 { 155 {
155 /* IRQ for channels 0-3 */ 156 /* IRQ for channels 0-3 */
156 .start = 48, 157 .start = evt2irq(0x800),
157 .end = 51, 158 .end = evt2irq(0x860),
158 .flags = IORESOURCE_IRQ, 159 .flags = IORESOURCE_IRQ,
159 }, 160 },
160 { 161 {
161 /* IRQ for channels 4-5 */ 162 /* IRQ for channels 4-5 */
162 .start = 76, 163 .start = evt2irq(0xb80),
163 .end = 77, 164 .end = evt2irq(0xba0),
164 .flags = IORESOURCE_IRQ, 165 .flags = IORESOURCE_IRQ,
165 }, 166 },
166}; 167};
@@ -182,7 +183,7 @@ static struct plat_sci_port scif0_platform_data = {
182 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 183 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
183 .scbrr_algo_id = SCBRR_ALGO_2, 184 .scbrr_algo_id = SCBRR_ALGO_2,
184 .type = PORT_SCIF, 185 .type = PORT_SCIF,
185 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC00)), 186 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc00)),
186 .ops = &sh7722_sci_port_ops, 187 .ops = &sh7722_sci_port_ops,
187 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 188 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
188}; 189};
@@ -201,7 +202,7 @@ static struct plat_sci_port scif1_platform_data = {
201 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 202 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
202 .scbrr_algo_id = SCBRR_ALGO_2, 203 .scbrr_algo_id = SCBRR_ALGO_2,
203 .type = PORT_SCIF, 204 .type = PORT_SCIF,
204 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC20)), 205 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc20)),
205 .ops = &sh7722_sci_port_ops, 206 .ops = &sh7722_sci_port_ops,
206 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 207 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
207}; 208};
@@ -220,7 +221,7 @@ static struct plat_sci_port scif2_platform_data = {
220 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 221 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
221 .scbrr_algo_id = SCBRR_ALGO_2, 222 .scbrr_algo_id = SCBRR_ALGO_2,
222 .type = PORT_SCIF, 223 .type = PORT_SCIF,
223 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC40)), 224 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc40)),
224 .ops = &sh7722_sci_port_ops, 225 .ops = &sh7722_sci_port_ops,
225 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 226 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
226}; 227};
@@ -241,17 +242,17 @@ static struct resource rtc_resources[] = {
241 }, 242 },
242 [1] = { 243 [1] = {
243 /* Period IRQ */ 244 /* Period IRQ */
244 .start = 45, 245 .start = evt2irq(0x7a0),
245 .flags = IORESOURCE_IRQ, 246 .flags = IORESOURCE_IRQ,
246 }, 247 },
247 [2] = { 248 [2] = {
248 /* Carry IRQ */ 249 /* Carry IRQ */
249 .start = 46, 250 .start = evt2irq(0x7c0),
250 .flags = IORESOURCE_IRQ, 251 .flags = IORESOURCE_IRQ,
251 }, 252 },
252 [3] = { 253 [3] = {
253 /* Alarm IRQ */ 254 /* Alarm IRQ */
254 .start = 44, 255 .start = evt2irq(0x780),
255 .flags = IORESOURCE_IRQ, 256 .flags = IORESOURCE_IRQ,
256 }, 257 },
257}; 258};
@@ -275,8 +276,8 @@ static struct resource usbf_resources[] = {
275 .flags = IORESOURCE_MEM, 276 .flags = IORESOURCE_MEM,
276 }, 277 },
277 [1] = { 278 [1] = {
278 .start = 65, 279 .start = evt2irq(0xa20),
279 .end = 65, 280 .end = evt2irq(0xa20),
280 .flags = IORESOURCE_IRQ, 281 .flags = IORESOURCE_IRQ,
281 }, 282 },
282}; 283};
@@ -301,8 +302,8 @@ static struct resource iic_resources[] = {
301 .flags = IORESOURCE_MEM, 302 .flags = IORESOURCE_MEM,
302 }, 303 },
303 [1] = { 304 [1] = {
304 .start = 96, 305 .start = evt2irq(0xe00),
305 .end = 99, 306 .end = evt2irq(0xe60),
306 .flags = IORESOURCE_IRQ, 307 .flags = IORESOURCE_IRQ,
307 }, 308 },
308}; 309};
@@ -317,7 +318,7 @@ static struct platform_device iic_device = {
317static struct uio_info vpu_platform_data = { 318static struct uio_info vpu_platform_data = {
318 .name = "VPU4", 319 .name = "VPU4",
319 .version = "0", 320 .version = "0",
320 .irq = 60, 321 .irq = evt2irq(0x980),
321}; 322};
322 323
323static struct resource vpu_resources[] = { 324static struct resource vpu_resources[] = {
@@ -345,7 +346,7 @@ static struct platform_device vpu_device = {
345static struct uio_info veu_platform_data = { 346static struct uio_info veu_platform_data = {
346 .name = "VEU", 347 .name = "VEU",
347 .version = "0", 348 .version = "0",
348 .irq = 54, 349 .irq = evt2irq(0x8c0),
349}; 350};
350 351
351static struct resource veu_resources[] = { 352static struct resource veu_resources[] = {
@@ -373,7 +374,7 @@ static struct platform_device veu_device = {
373static struct uio_info jpu_platform_data = { 374static struct uio_info jpu_platform_data = {
374 .name = "JPU", 375 .name = "JPU",
375 .version = "0", 376 .version = "0",
376 .irq = 27, 377 .irq = evt2irq(0x560),
377}; 378};
378 379
379static struct resource jpu_resources[] = { 380static struct resource jpu_resources[] = {
@@ -412,7 +413,7 @@ static struct resource cmt_resources[] = {
412 .flags = IORESOURCE_MEM, 413 .flags = IORESOURCE_MEM,
413 }, 414 },
414 [1] = { 415 [1] = {
415 .start = 104, 416 .start = evt2irq(0xf00),
416 .flags = IORESOURCE_IRQ, 417 .flags = IORESOURCE_IRQ,
417 }, 418 },
418}; 419};
@@ -440,7 +441,7 @@ static struct resource tmu0_resources[] = {
440 .flags = IORESOURCE_MEM, 441 .flags = IORESOURCE_MEM,
441 }, 442 },
442 [1] = { 443 [1] = {
443 .start = 16, 444 .start = evt2irq(0x400),
444 .flags = IORESOURCE_IRQ, 445 .flags = IORESOURCE_IRQ,
445 }, 446 },
446}; 447};
@@ -468,7 +469,7 @@ static struct resource tmu1_resources[] = {
468 .flags = IORESOURCE_MEM, 469 .flags = IORESOURCE_MEM,
469 }, 470 },
470 [1] = { 471 [1] = {
471 .start = 17, 472 .start = evt2irq(0x420),
472 .flags = IORESOURCE_IRQ, 473 .flags = IORESOURCE_IRQ,
473 }, 474 },
474}; 475};
@@ -525,7 +526,7 @@ static struct resource siu_resources[] = {
525 .flags = IORESOURCE_MEM, 526 .flags = IORESOURCE_MEM,
526 }, 527 },
527 [1] = { 528 [1] = {
528 .start = 108, 529 .start = evt2irq(0xf80),
529 .flags = IORESOURCE_IRQ, 530 .flags = IORESOURCE_IRQ,
530 }, 531 },
531}; 532};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
index 3c1da7e3067d..28d6fd835fe0 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
@@ -15,6 +15,7 @@
15#include <linux/uio_driver.h> 15#include <linux/uio_driver.h>
16#include <linux/usb/r8a66597.h> 16#include <linux/usb/r8a66597.h>
17#include <linux/sh_timer.h> 17#include <linux/sh_timer.h>
18#include <linux/sh_intc.h>
18#include <linux/io.h> 19#include <linux/io.h>
19#include <asm/clock.h> 20#include <asm/clock.h>
20#include <asm/mmzone.h> 21#include <asm/mmzone.h>
@@ -28,7 +29,7 @@ static struct plat_sci_port scif0_platform_data = {
28 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 29 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
29 .scbrr_algo_id = SCBRR_ALGO_2, 30 .scbrr_algo_id = SCBRR_ALGO_2,
30 .type = PORT_SCIF, 31 .type = PORT_SCIF,
31 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC00)), 32 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc00)),
32 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 33 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
33}; 34};
34 35
@@ -47,7 +48,7 @@ static struct plat_sci_port scif1_platform_data = {
47 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 48 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
48 .scbrr_algo_id = SCBRR_ALGO_2, 49 .scbrr_algo_id = SCBRR_ALGO_2,
49 .type = PORT_SCIF, 50 .type = PORT_SCIF,
50 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC20)), 51 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc20)),
51 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 52 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
52}; 53};
53 54
@@ -66,7 +67,7 @@ static struct plat_sci_port scif2_platform_data = {
66 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 67 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
67 .scbrr_algo_id = SCBRR_ALGO_2, 68 .scbrr_algo_id = SCBRR_ALGO_2,
68 .type = PORT_SCIF, 69 .type = PORT_SCIF,
69 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC40)), 70 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc40)),
70 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 71 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
71}; 72};
72 73
@@ -85,7 +86,7 @@ static struct plat_sci_port scif3_platform_data = {
85 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 86 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
86 .scbrr_algo_id = SCBRR_ALGO_3, 87 .scbrr_algo_id = SCBRR_ALGO_3,
87 .type = PORT_SCIFA, 88 .type = PORT_SCIFA,
88 .irqs = { 56, 56, 56, 56 }, 89 .irqs = SCIx_IRQ_MUXED(evt2irq(0x900)),
89}; 90};
90 91
91static struct platform_device scif3_device = { 92static struct platform_device scif3_device = {
@@ -103,7 +104,7 @@ static struct plat_sci_port scif4_platform_data = {
103 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 104 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
104 .scbrr_algo_id = SCBRR_ALGO_3, 105 .scbrr_algo_id = SCBRR_ALGO_3,
105 .type = PORT_SCIFA, 106 .type = PORT_SCIFA,
106 .irqs = { 88, 88, 88, 88 }, 107 .irqs = SCIx_IRQ_MUXED(evt2irq(0xd00)),
107}; 108};
108 109
109static struct platform_device scif4_device = { 110static struct platform_device scif4_device = {
@@ -121,7 +122,7 @@ static struct plat_sci_port scif5_platform_data = {
121 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 122 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
122 .scbrr_algo_id = SCBRR_ALGO_3, 123 .scbrr_algo_id = SCBRR_ALGO_3,
123 .type = PORT_SCIFA, 124 .type = PORT_SCIFA,
124 .irqs = { 109, 109, 109, 109 }, 125 .irqs = SCIx_IRQ_MUXED(evt2irq(0xfa0)),
125}; 126};
126 127
127static struct platform_device scif5_device = { 128static struct platform_device scif5_device = {
@@ -135,7 +136,7 @@ static struct platform_device scif5_device = {
135static struct uio_info vpu_platform_data = { 136static struct uio_info vpu_platform_data = {
136 .name = "VPU5", 137 .name = "VPU5",
137 .version = "0", 138 .version = "0",
138 .irq = 60, 139 .irq = evt2irq(0x980),
139}; 140};
140 141
141static struct resource vpu_resources[] = { 142static struct resource vpu_resources[] = {
@@ -163,7 +164,7 @@ static struct platform_device vpu_device = {
163static struct uio_info veu0_platform_data = { 164static struct uio_info veu0_platform_data = {
164 .name = "VEU2H", 165 .name = "VEU2H",
165 .version = "0", 166 .version = "0",
166 .irq = 54, 167 .irq = evt2irq(0x8c0),
167}; 168};
168 169
169static struct resource veu0_resources[] = { 170static struct resource veu0_resources[] = {
@@ -191,7 +192,7 @@ static struct platform_device veu0_device = {
191static struct uio_info veu1_platform_data = { 192static struct uio_info veu1_platform_data = {
192 .name = "VEU2H", 193 .name = "VEU2H",
193 .version = "0", 194 .version = "0",
194 .irq = 27, 195 .irq = evt2irq(0x560),
195}; 196};
196 197
197static struct resource veu1_resources[] = { 198static struct resource veu1_resources[] = {
@@ -230,7 +231,7 @@ static struct resource cmt_resources[] = {
230 .flags = IORESOURCE_MEM, 231 .flags = IORESOURCE_MEM,
231 }, 232 },
232 [1] = { 233 [1] = {
233 .start = 104, 234 .start = evt2irq(0xf00),
234 .flags = IORESOURCE_IRQ, 235 .flags = IORESOURCE_IRQ,
235 }, 236 },
236}; 237};
@@ -258,7 +259,7 @@ static struct resource tmu0_resources[] = {
258 .flags = IORESOURCE_MEM, 259 .flags = IORESOURCE_MEM,
259 }, 260 },
260 [1] = { 261 [1] = {
261 .start = 16, 262 .start = evt2irq(0x400),
262 .flags = IORESOURCE_IRQ, 263 .flags = IORESOURCE_IRQ,
263 }, 264 },
264}; 265};
@@ -286,7 +287,7 @@ static struct resource tmu1_resources[] = {
286 .flags = IORESOURCE_MEM, 287 .flags = IORESOURCE_MEM,
287 }, 288 },
288 [1] = { 289 [1] = {
289 .start = 17, 290 .start = evt2irq(0x420),
290 .flags = IORESOURCE_IRQ, 291 .flags = IORESOURCE_IRQ,
291 }, 292 },
292}; 293};
@@ -313,7 +314,7 @@ static struct resource tmu2_resources[] = {
313 .flags = IORESOURCE_MEM, 314 .flags = IORESOURCE_MEM,
314 }, 315 },
315 [1] = { 316 [1] = {
316 .start = 18, 317 .start = evt2irq(0x440),
317 .flags = IORESOURCE_IRQ, 318 .flags = IORESOURCE_IRQ,
318 }, 319 },
319}; 320};
@@ -340,7 +341,7 @@ static struct resource tmu3_resources[] = {
340 .flags = IORESOURCE_MEM, 341 .flags = IORESOURCE_MEM,
341 }, 342 },
342 [1] = { 343 [1] = {
343 .start = 57, 344 .start = evt2irq(0x920),
344 .flags = IORESOURCE_IRQ, 345 .flags = IORESOURCE_IRQ,
345 }, 346 },
346}; 347};
@@ -367,7 +368,7 @@ static struct resource tmu4_resources[] = {
367 .flags = IORESOURCE_MEM, 368 .flags = IORESOURCE_MEM,
368 }, 369 },
369 [1] = { 370 [1] = {
370 .start = 58, 371 .start = evt2irq(0x940),
371 .flags = IORESOURCE_IRQ, 372 .flags = IORESOURCE_IRQ,
372 }, 373 },
373}; 374};
@@ -394,7 +395,7 @@ static struct resource tmu5_resources[] = {
394 .flags = IORESOURCE_MEM, 395 .flags = IORESOURCE_MEM,
395 }, 396 },
396 [1] = { 397 [1] = {
397 .start = 57, 398 .start = evt2irq(0x920),
398 .flags = IORESOURCE_IRQ, 399 .flags = IORESOURCE_IRQ,
399 }, 400 },
400}; 401};
@@ -417,17 +418,17 @@ static struct resource rtc_resources[] = {
417 }, 418 },
418 [1] = { 419 [1] = {
419 /* Period IRQ */ 420 /* Period IRQ */
420 .start = 69, 421 .start = evt2irq(0xaa0),
421 .flags = IORESOURCE_IRQ, 422 .flags = IORESOURCE_IRQ,
422 }, 423 },
423 [2] = { 424 [2] = {
424 /* Carry IRQ */ 425 /* Carry IRQ */
425 .start = 70, 426 .start = evt2irq(0xac0),
426 .flags = IORESOURCE_IRQ, 427 .flags = IORESOURCE_IRQ,
427 }, 428 },
428 [3] = { 429 [3] = {
429 /* Alarm IRQ */ 430 /* Alarm IRQ */
430 .start = 68, 431 .start = evt2irq(0xa80),
431 .flags = IORESOURCE_IRQ, 432 .flags = IORESOURCE_IRQ,
432 }, 433 },
433}; 434};
@@ -450,8 +451,8 @@ static struct resource sh7723_usb_host_resources[] = {
450 .flags = IORESOURCE_MEM, 451 .flags = IORESOURCE_MEM,
451 }, 452 },
452 [1] = { 453 [1] = {
453 .start = 65, 454 .start = evt2irq(0xa20),
454 .end = 65, 455 .end = evt2irq(0xa20),
455 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW, 456 .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW,
456 }, 457 },
457}; 458};
@@ -476,8 +477,8 @@ static struct resource iic_resources[] = {
476 .flags = IORESOURCE_MEM, 477 .flags = IORESOURCE_MEM,
477 }, 478 },
478 [1] = { 479 [1] = {
479 .start = 96, 480 .start = evt2irq(0xe00),
480 .end = 99, 481 .end = evt2irq(0xe60),
481 .flags = IORESOURCE_IRQ, 482 .flags = IORESOURCE_IRQ,
482 }, 483 },
483}; 484};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
index 20623baeb1c6..26b74c2f9496 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
@@ -20,6 +20,7 @@
20#include <linux/uio_driver.h> 20#include <linux/uio_driver.h>
21#include <linux/sh_dma.h> 21#include <linux/sh_dma.h>
22#include <linux/sh_timer.h> 22#include <linux/sh_timer.h>
23#include <linux/sh_intc.h>
23#include <linux/io.h> 24#include <linux/io.h>
24#include <linux/notifier.h> 25#include <linux/notifier.h>
25 26
@@ -215,20 +216,20 @@ static struct resource sh7724_dmae0_resources[] = {
215 }, 216 },
216 { 217 {
217 .name = "error_irq", 218 .name = "error_irq",
218 .start = 78, 219 .start = evt2irq(0xbc0),
219 .end = 78, 220 .end = evt2irq(0xbc0),
220 .flags = IORESOURCE_IRQ, 221 .flags = IORESOURCE_IRQ,
221 }, 222 },
222 { 223 {
223 /* IRQ for channels 0-3 */ 224 /* IRQ for channels 0-3 */
224 .start = 48, 225 .start = evt2irq(0x800),
225 .end = 51, 226 .end = evt2irq(0x860),
226 .flags = IORESOURCE_IRQ, 227 .flags = IORESOURCE_IRQ,
227 }, 228 },
228 { 229 {
229 /* IRQ for channels 4-5 */ 230 /* IRQ for channels 4-5 */
230 .start = 76, 231 .start = evt2irq(0xb80),
231 .end = 77, 232 .end = evt2irq(0xba0),
232 .flags = IORESOURCE_IRQ, 233 .flags = IORESOURCE_IRQ,
233 }, 234 },
234}; 235};
@@ -249,20 +250,20 @@ static struct resource sh7724_dmae1_resources[] = {
249 }, 250 },
250 { 251 {
251 .name = "error_irq", 252 .name = "error_irq",
252 .start = 74, 253 .start = evt2irq(0xb40),
253 .end = 74, 254 .end = evt2irq(0xb40),
254 .flags = IORESOURCE_IRQ, 255 .flags = IORESOURCE_IRQ,
255 }, 256 },
256 { 257 {
257 /* IRQ for channels 0-3 */ 258 /* IRQ for channels 0-3 */
258 .start = 40, 259 .start = evt2irq(0x700),
259 .end = 43, 260 .end = evt2irq(0x760),
260 .flags = IORESOURCE_IRQ, 261 .flags = IORESOURCE_IRQ,
261 }, 262 },
262 { 263 {
263 /* IRQ for channels 4-5 */ 264 /* IRQ for channels 4-5 */
264 .start = 72, 265 .start = evt2irq(0xb00),
265 .end = 73, 266 .end = evt2irq(0xb20),
266 .flags = IORESOURCE_IRQ, 267 .flags = IORESOURCE_IRQ,
267 }, 268 },
268}; 269};
@@ -295,7 +296,7 @@ static struct plat_sci_port scif0_platform_data = {
295 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 296 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
296 .scbrr_algo_id = SCBRR_ALGO_2, 297 .scbrr_algo_id = SCBRR_ALGO_2,
297 .type = PORT_SCIF, 298 .type = PORT_SCIF,
298 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC00)), 299 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc00)),
299 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 300 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
300}; 301};
301 302
@@ -314,7 +315,7 @@ static struct plat_sci_port scif1_platform_data = {
314 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 315 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
315 .scbrr_algo_id = SCBRR_ALGO_2, 316 .scbrr_algo_id = SCBRR_ALGO_2,
316 .type = PORT_SCIF, 317 .type = PORT_SCIF,
317 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC20)), 318 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc20)),
318 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 319 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
319}; 320};
320 321
@@ -333,7 +334,7 @@ static struct plat_sci_port scif2_platform_data = {
333 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 334 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
334 .scbrr_algo_id = SCBRR_ALGO_2, 335 .scbrr_algo_id = SCBRR_ALGO_2,
335 .type = PORT_SCIF, 336 .type = PORT_SCIF,
336 .irqs = SCIx_IRQ_MUXED(evt2irq(0xC40)), 337 .irqs = SCIx_IRQ_MUXED(evt2irq(0xc40)),
337 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, 338 .regtype = SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
338}; 339};
339 340
@@ -352,7 +353,7 @@ static struct plat_sci_port scif3_platform_data = {
352 .scscr = SCSCR_RE | SCSCR_TE, 353 .scscr = SCSCR_RE | SCSCR_TE,
353 .scbrr_algo_id = SCBRR_ALGO_3, 354 .scbrr_algo_id = SCBRR_ALGO_3,
354 .type = PORT_SCIFA, 355 .type = PORT_SCIFA,
355 .irqs = SCIx_IRQ_MUXED(evt2irq(0x900)), 356 .irqs = SCIx_IRQ_MUXED(evt2irq(0x900)),
356}; 357};
357 358
358static struct platform_device scif3_device = { 359static struct platform_device scif3_device = {
@@ -370,7 +371,7 @@ static struct plat_sci_port scif4_platform_data = {
370 .scscr = SCSCR_RE | SCSCR_TE, 371 .scscr = SCSCR_RE | SCSCR_TE,
371 .scbrr_algo_id = SCBRR_ALGO_3, 372 .scbrr_algo_id = SCBRR_ALGO_3,
372 .type = PORT_SCIFA, 373 .type = PORT_SCIFA,
373 .irqs = SCIx_IRQ_MUXED(evt2irq(0xD00)), 374 .irqs = SCIx_IRQ_MUXED(evt2irq(0xd00)),
374}; 375};
375 376
376static struct platform_device scif4_device = { 377static struct platform_device scif4_device = {
@@ -388,7 +389,7 @@ static struct plat_sci_port scif5_platform_data = {
388 .scscr = SCSCR_RE | SCSCR_TE, 389 .scscr = SCSCR_RE | SCSCR_TE,
389 .scbrr_algo_id = SCBRR_ALGO_3, 390 .scbrr_algo_id = SCBRR_ALGO_3,
390 .type = PORT_SCIFA, 391 .type = PORT_SCIFA,
391 .irqs = SCIx_IRQ_MUXED(evt2irq(0xFA0)), 392 .irqs = SCIx_IRQ_MUXED(evt2irq(0xfa0)),
392}; 393};
393 394
394static struct platform_device scif5_device = { 395static struct platform_device scif5_device = {
@@ -408,17 +409,17 @@ static struct resource rtc_resources[] = {
408 }, 409 },
409 [1] = { 410 [1] = {
410 /* Period IRQ */ 411 /* Period IRQ */
411 .start = 69, 412 .start = evt2irq(0xaa0),
412 .flags = IORESOURCE_IRQ, 413 .flags = IORESOURCE_IRQ,
413 }, 414 },
414 [2] = { 415 [2] = {
415 /* Carry IRQ */ 416 /* Carry IRQ */
416 .start = 70, 417 .start = evt2irq(0xac0),
417 .flags = IORESOURCE_IRQ, 418 .flags = IORESOURCE_IRQ,
418 }, 419 },
419 [3] = { 420 [3] = {
420 /* Alarm IRQ */ 421 /* Alarm IRQ */
421 .start = 68, 422 .start = evt2irq(0xa80),
422 .flags = IORESOURCE_IRQ, 423 .flags = IORESOURCE_IRQ,
423 }, 424 },
424}; 425};
@@ -439,8 +440,8 @@ static struct resource iic0_resources[] = {
439 .flags = IORESOURCE_MEM, 440 .flags = IORESOURCE_MEM,
440 }, 441 },
441 [1] = { 442 [1] = {
442 .start = 96, 443 .start = evt2irq(0xe00),
443 .end = 99, 444 .end = evt2irq(0xe60),
444 .flags = IORESOURCE_IRQ, 445 .flags = IORESOURCE_IRQ,
445 }, 446 },
446}; 447};
@@ -461,8 +462,8 @@ static struct resource iic1_resources[] = {
461 .flags = IORESOURCE_MEM, 462 .flags = IORESOURCE_MEM,
462 }, 463 },
463 [1] = { 464 [1] = {
464 .start = 92, 465 .start = evt2irq(0xd80),
465 .end = 95, 466 .end = evt2irq(0xde0),
466 .flags = IORESOURCE_IRQ, 467 .flags = IORESOURCE_IRQ,
467 }, 468 },
468}; 469};
@@ -478,7 +479,7 @@ static struct platform_device iic1_device = {
478static struct uio_info vpu_platform_data = { 479static struct uio_info vpu_platform_data = {
479 .name = "VPU5F", 480 .name = "VPU5F",
480 .version = "0", 481 .version = "0",
481 .irq = 60, 482 .irq = evt2irq(0x980),
482}; 483};
483 484
484static struct resource vpu_resources[] = { 485static struct resource vpu_resources[] = {
@@ -507,7 +508,7 @@ static struct platform_device vpu_device = {
507static struct uio_info veu0_platform_data = { 508static struct uio_info veu0_platform_data = {
508 .name = "VEU3F0", 509 .name = "VEU3F0",
509 .version = "0", 510 .version = "0",
510 .irq = 83, 511 .irq = evt2irq(0xc60),
511}; 512};
512 513
513static struct resource veu0_resources[] = { 514static struct resource veu0_resources[] = {
@@ -536,7 +537,7 @@ static struct platform_device veu0_device = {
536static struct uio_info veu1_platform_data = { 537static struct uio_info veu1_platform_data = {
537 .name = "VEU3F1", 538 .name = "VEU3F1",
538 .version = "0", 539 .version = "0",
539 .irq = 54, 540 .irq = evt2irq(0x8c0),
540}; 541};
541 542
542static struct resource veu1_resources[] = { 543static struct resource veu1_resources[] = {
@@ -633,7 +634,7 @@ static struct resource cmt_resources[] = {
633 .flags = IORESOURCE_MEM, 634 .flags = IORESOURCE_MEM,
634 }, 635 },
635 [1] = { 636 [1] = {
636 .start = 104, 637 .start = evt2irq(0xf00),
637 .flags = IORESOURCE_IRQ, 638 .flags = IORESOURCE_IRQ,
638 }, 639 },
639}; 640};
@@ -661,7 +662,7 @@ static struct resource tmu0_resources[] = {
661 .flags = IORESOURCE_MEM, 662 .flags = IORESOURCE_MEM,
662 }, 663 },
663 [1] = { 664 [1] = {
664 .start = 16, 665 .start = evt2irq(0x400),
665 .flags = IORESOURCE_IRQ, 666 .flags = IORESOURCE_IRQ,
666 }, 667 },
667}; 668};
@@ -689,7 +690,7 @@ static struct resource tmu1_resources[] = {
689 .flags = IORESOURCE_MEM, 690 .flags = IORESOURCE_MEM,
690 }, 691 },
691 [1] = { 692 [1] = {
692 .start = 17, 693 .start = evt2irq(0x420),
693 .flags = IORESOURCE_IRQ, 694 .flags = IORESOURCE_IRQ,
694 }, 695 },
695}; 696};
@@ -716,7 +717,7 @@ static struct resource tmu2_resources[] = {
716 .flags = IORESOURCE_MEM, 717 .flags = IORESOURCE_MEM,
717 }, 718 },
718 [1] = { 719 [1] = {
719 .start = 18, 720 .start = evt2irq(0x440),
720 .flags = IORESOURCE_IRQ, 721 .flags = IORESOURCE_IRQ,
721 }, 722 },
722}; 723};
@@ -744,7 +745,7 @@ static struct resource tmu3_resources[] = {
744 .flags = IORESOURCE_MEM, 745 .flags = IORESOURCE_MEM,
745 }, 746 },
746 [1] = { 747 [1] = {
747 .start = 57, 748 .start = evt2irq(0x920),
748 .flags = IORESOURCE_IRQ, 749 .flags = IORESOURCE_IRQ,
749 }, 750 },
750}; 751};
@@ -771,7 +772,7 @@ static struct resource tmu4_resources[] = {
771 .flags = IORESOURCE_MEM, 772 .flags = IORESOURCE_MEM,
772 }, 773 },
773 [1] = { 774 [1] = {
774 .start = 58, 775 .start = evt2irq(0x940),
775 .flags = IORESOURCE_IRQ, 776 .flags = IORESOURCE_IRQ,
776 }, 777 },
777}; 778};
@@ -798,7 +799,7 @@ static struct resource tmu5_resources[] = {
798 .flags = IORESOURCE_MEM, 799 .flags = IORESOURCE_MEM,
799 }, 800 },
800 [1] = { 801 [1] = {
801 .start = 57, 802 .start = evt2irq(0x920),
802 .flags = IORESOURCE_IRQ, 803 .flags = IORESOURCE_IRQ,
803 }, 804 },
804}; 805};
@@ -817,7 +818,7 @@ static struct platform_device tmu5_device = {
817static struct uio_info jpu_platform_data = { 818static struct uio_info jpu_platform_data = {
818 .name = "JPU", 819 .name = "JPU",
819 .version = "0", 820 .version = "0",
820 .irq = 27, 821 .irq = evt2irq(0x560),
821}; 822};
822 823
823static struct resource jpu_resources[] = { 824static struct resource jpu_resources[] = {
@@ -846,7 +847,7 @@ static struct platform_device jpu_device = {
846static struct uio_info spu0_platform_data = { 847static struct uio_info spu0_platform_data = {
847 .name = "SPU2DSP0", 848 .name = "SPU2DSP0",
848 .version = "0", 849 .version = "0",
849 .irq = 86, 850 .irq = evt2irq(0xcc0),
850}; 851};
851 852
852static struct resource spu0_resources[] = { 853static struct resource spu0_resources[] = {
@@ -875,7 +876,7 @@ static struct platform_device spu0_device = {
875static struct uio_info spu1_platform_data = { 876static struct uio_info spu1_platform_data = {
876 .name = "SPU2DSP1", 877 .name = "SPU2DSP1",
877 .version = "0", 878 .version = "0",
878 .irq = 87, 879 .irq = evt2irq(0xce0),
879}; 880};
880 881
881static struct resource spu1_resources[] = { 882static struct resource spu1_resources[] = {
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7757.c b/arch/sh/kernel/cpu/sh4a/setup-sh7757.c
index fe45e4cb183d..a7708425afa9 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7757.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7757.c
@@ -18,7 +18,7 @@
18#include <linux/dma-mapping.h> 18#include <linux/dma-mapping.h>
19#include <linux/sh_timer.h> 19#include <linux/sh_timer.h>
20#include <linux/sh_dma.h> 20#include <linux/sh_dma.h>
21 21#include <linux/sh_intc.h>
22#include <cpu/dma-register.h> 22#include <cpu/dma-register.h>
23#include <cpu/sh7757.h> 23#include <cpu/sh7757.h>
24 24
@@ -45,7 +45,7 @@ static struct plat_sci_port scif3_platform_data = {
45 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 45 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
46 .scbrr_algo_id = SCBRR_ALGO_2, 46 .scbrr_algo_id = SCBRR_ALGO_2,
47 .type = PORT_SCIF, 47 .type = PORT_SCIF,
48 .irqs = SCIx_IRQ_MUXED(evt2irq(0xB80)), 48 .irqs = SCIx_IRQ_MUXED(evt2irq(0xb80)),
49}; 49};
50 50
51static struct platform_device scif3_device = { 51static struct platform_device scif3_device = {
@@ -86,7 +86,7 @@ static struct resource tmu0_resources[] = {
86 .flags = IORESOURCE_MEM, 86 .flags = IORESOURCE_MEM,
87 }, 87 },
88 [1] = { 88 [1] = {
89 .start = 28, 89 .start = evt2irq(0x580),
90 .flags = IORESOURCE_IRQ, 90 .flags = IORESOURCE_IRQ,
91 }, 91 },
92}; 92};
@@ -114,7 +114,7 @@ static struct resource tmu1_resources[] = {
114 .flags = IORESOURCE_MEM, 114 .flags = IORESOURCE_MEM,
115 }, 115 },
116 [1] = { 116 [1] = {
117 .start = 29, 117 .start = evt2irq(0x5a0),
118 .flags = IORESOURCE_IRQ, 118 .flags = IORESOURCE_IRQ,
119 }, 119 },
120}; 120};
@@ -136,7 +136,7 @@ static struct resource spi0_resources[] = {
136 .flags = IORESOURCE_MEM | IORESOURCE_MEM_32BIT, 136 .flags = IORESOURCE_MEM | IORESOURCE_MEM_32BIT,
137 }, 137 },
138 [1] = { 138 [1] = {
139 .start = 86, 139 .start = evt2irq(0xcc0),
140 .flags = IORESOURCE_IRQ, 140 .flags = IORESOURCE_IRQ,
141 }, 141 },
142}; 142};
@@ -466,8 +466,8 @@ static struct resource sh7757_dmae0_resources[] = {
466 }, 466 },
467 { 467 {
468 .name = "error_irq", 468 .name = "error_irq",
469 .start = 34, 469 .start = evt2irq(0x640),
470 .end = 34, 470 .end = evt2irq(0x640),
471 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 471 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
472 }, 472 },
473}; 473};
@@ -488,56 +488,56 @@ static struct resource sh7757_dmae1_resources[] = {
488 }, 488 },
489 { 489 {
490 .name = "error_irq", 490 .name = "error_irq",
491 .start = 34, 491 .start = evt2irq(0x640),
492 .end = 34, 492 .end = evt2irq(0x640),
493 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 493 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
494 }, 494 },
495 { 495 {
496 /* IRQ for channels 4 */ 496 /* IRQ for channels 4 */
497 .start = 46, 497 .start = evt2irq(0x7c0),
498 .end = 46, 498 .end = evt2irq(0x7c0),
499 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 499 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
500 }, 500 },
501 { 501 {
502 /* IRQ for channels 5 */ 502 /* IRQ for channels 5 */
503 .start = 46, 503 .start = evt2irq(0x7c0),
504 .end = 46, 504 .end = evt2irq(0x7c0),
505 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 505 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
506 }, 506 },
507 { 507 {
508 /* IRQ for channels 6 */ 508 /* IRQ for channels 6 */
509 .start = 88, 509 .start = evt2irq(0xd00),
510 .end = 88, 510 .end = evt2irq(0xd00),
511 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 511 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
512 }, 512 },
513 { 513 {
514 /* IRQ for channels 7 */ 514 /* IRQ for channels 7 */
515 .start = 88, 515 .start = evt2irq(0xd00),
516 .end = 88, 516 .end = evt2irq(0xd00),
517 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 517 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
518 }, 518 },
519 { 519 {
520 /* IRQ for channels 8 */ 520 /* IRQ for channels 8 */
521 .start = 88, 521 .start = evt2irq(0xd00),
522 .end = 88, 522 .end = evt2irq(0xd00),
523 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 523 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
524 }, 524 },
525 { 525 {
526 /* IRQ for channels 9 */ 526 /* IRQ for channels 9 */
527 .start = 88, 527 .start = evt2irq(0xd00),
528 .end = 88, 528 .end = evt2irq(0xd00),
529 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 529 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
530 }, 530 },
531 { 531 {
532 /* IRQ for channels 10 */ 532 /* IRQ for channels 10 */
533 .start = 88, 533 .start = evt2irq(0xd00),
534 .end = 88, 534 .end = evt2irq(0xd00),
535 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 535 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
536 }, 536 },
537 { 537 {
538 /* IRQ for channels 11 */ 538 /* IRQ for channels 11 */
539 .start = 88, 539 .start = evt2irq(0xd00),
540 .end = 88, 540 .end = evt2irq(0xd00),
541 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 541 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
542 }, 542 },
543}; 543};
@@ -558,20 +558,20 @@ static struct resource sh7757_dmae2_resources[] = {
558 }, 558 },
559 { 559 {
560 .name = "error_irq", 560 .name = "error_irq",
561 .start = 323, 561 .start = evt2irq(0x2a60),
562 .end = 323, 562 .end = evt2irq(0x2a60),
563 .flags = IORESOURCE_IRQ, 563 .flags = IORESOURCE_IRQ,
564 }, 564 },
565 { 565 {
566 /* IRQ for channels 12 to 16 */ 566 /* IRQ for channels 12 to 16 */
567 .start = 272, 567 .start = evt2irq(0x2400),
568 .end = 276, 568 .end = evt2irq(0x2480),
569 .flags = IORESOURCE_IRQ, 569 .flags = IORESOURCE_IRQ,
570 }, 570 },
571 { 571 {
572 /* IRQ for channel 17 */ 572 /* IRQ for channel 17 */
573 .start = 279, 573 .start = evt2irq(0x24e0),
574 .end = 279, 574 .end = evt2irq(0x24e0),
575 .flags = IORESOURCE_IRQ, 575 .flags = IORESOURCE_IRQ,
576 }, 576 },
577}; 577};
@@ -592,20 +592,20 @@ static struct resource sh7757_dmae3_resources[] = {
592 }, 592 },
593 { 593 {
594 .name = "error_irq", 594 .name = "error_irq",
595 .start = 324, 595 .start = evt2irq(0x2a80),
596 .end = 324, 596 .end = evt2irq(0x2a80),
597 .flags = IORESOURCE_IRQ, 597 .flags = IORESOURCE_IRQ,
598 }, 598 },
599 { 599 {
600 /* IRQ for channels 18 to 22 */ 600 /* IRQ for channels 18 to 22 */
601 .start = 280, 601 .start = evt2irq(0x2500),
602 .end = 284, 602 .end = evt2irq(0x2580),
603 .flags = IORESOURCE_IRQ, 603 .flags = IORESOURCE_IRQ,
604 }, 604 },
605 { 605 {
606 /* IRQ for channel 23 */ 606 /* IRQ for channel 23 */
607 .start = 288, 607 .start = evt2irq(0x2600),
608 .end = 288, 608 .end = evt2irq(0x2600),
609 .flags = IORESOURCE_IRQ, 609 .flags = IORESOURCE_IRQ,
610 }, 610 },
611}; 611};
@@ -668,7 +668,7 @@ static struct resource spi1_resources[] = {
668 .flags = IORESOURCE_MEM | IORESOURCE_MEM_8BIT, 668 .flags = IORESOURCE_MEM | IORESOURCE_MEM_8BIT,
669 }, 669 },
670 { 670 {
671 .start = 54, 671 .start = evt2irq(0x8c0),
672 .flags = IORESOURCE_IRQ, 672 .flags = IORESOURCE_IRQ,
673 }, 673 },
674}; 674};
@@ -687,7 +687,7 @@ static struct resource rspi_resources[] = {
687 .flags = IORESOURCE_MEM, 687 .flags = IORESOURCE_MEM,
688 }, 688 },
689 { 689 {
690 .start = 220, 690 .start = evt2irq(0x1d80),
691 .flags = IORESOURCE_IRQ, 691 .flags = IORESOURCE_IRQ,
692 }, 692 },
693}; 693};
@@ -706,8 +706,8 @@ static struct resource usb_ehci_resources[] = {
706 .flags = IORESOURCE_MEM, 706 .flags = IORESOURCE_MEM,
707 }, 707 },
708 [1] = { 708 [1] = {
709 .start = 57, 709 .start = evt2irq(0x920),
710 .end = 57, 710 .end = evt2irq(0x920),
711 .flags = IORESOURCE_IRQ, 711 .flags = IORESOURCE_IRQ,
712 }, 712 },
713}; 713};
@@ -730,8 +730,8 @@ static struct resource usb_ohci_resources[] = {
730 .flags = IORESOURCE_MEM, 730 .flags = IORESOURCE_MEM,
731 }, 731 },
732 [1] = { 732 [1] = {
733 .start = 57, 733 .start = evt2irq(0x920),
734 .end = 57, 734 .end = evt2irq(0x920),
735 .flags = IORESOURCE_IRQ, 735 .flags = IORESOURCE_IRQ,
736 }, 736 },
737}; 737};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
index 197e4c9a4a01..bd0a8fbe610f 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
@@ -13,6 +13,7 @@
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/serial.h> 14#include <linux/serial.h>
15#include <linux/sh_timer.h> 15#include <linux/sh_timer.h>
16#include <linux/sh_intc.h>
16#include <linux/io.h> 17#include <linux/io.h>
17#include <linux/serial_sci.h> 18#include <linux/serial_sci.h>
18 19
@@ -40,7 +41,7 @@ static struct plat_sci_port scif1_platform_data = {
40 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 41 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
41 .scbrr_algo_id = SCBRR_ALGO_2, 42 .scbrr_algo_id = SCBRR_ALGO_2,
42 .type = PORT_SCIF, 43 .type = PORT_SCIF,
43 .irqs = SCIx_IRQ_MUXED(evt2irq(0xB80)), 44 .irqs = SCIx_IRQ_MUXED(evt2irq(0xb80)),
44 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 45 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
45}; 46};
46 47
@@ -58,7 +59,7 @@ static struct plat_sci_port scif2_platform_data = {
58 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 59 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
59 .scbrr_algo_id = SCBRR_ALGO_2, 60 .scbrr_algo_id = SCBRR_ALGO_2,
60 .type = PORT_SCIF, 61 .type = PORT_SCIF,
61 .irqs = SCIx_IRQ_MUXED(evt2irq(0xF00)), 62 .irqs = SCIx_IRQ_MUXED(evt2irq(0xf00)),
62 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 63 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
63}; 64};
64 65
@@ -78,7 +79,7 @@ static struct resource rtc_resources[] = {
78 }, 79 },
79 [1] = { 80 [1] = {
80 /* Shared Period/Carry/Alarm IRQ */ 81 /* Shared Period/Carry/Alarm IRQ */
81 .start = 20, 82 .start = evt2irq(0x480),
82 .flags = IORESOURCE_IRQ, 83 .flags = IORESOURCE_IRQ,
83 }, 84 },
84}; 85};
@@ -97,13 +98,14 @@ static struct resource usb_ohci_resources[] = {
97 .flags = IORESOURCE_MEM, 98 .flags = IORESOURCE_MEM,
98 }, 99 },
99 [1] = { 100 [1] = {
100 .start = 83, 101 .start = evt2irq(0xc60),
101 .end = 83, 102 .end = evt2irq(0xc60),
102 .flags = IORESOURCE_IRQ, 103 .flags = IORESOURCE_IRQ,
103 }, 104 },
104}; 105};
105 106
106static u64 usb_ohci_dma_mask = 0xffffffffUL; 107static u64 usb_ohci_dma_mask = 0xffffffffUL;
108
107static struct platform_device usb_ohci_device = { 109static struct platform_device usb_ohci_device = {
108 .name = "sh_ohci", 110 .name = "sh_ohci",
109 .id = -1, 111 .id = -1,
@@ -122,8 +124,8 @@ static struct resource usbf_resources[] = {
122 .flags = IORESOURCE_MEM, 124 .flags = IORESOURCE_MEM,
123 }, 125 },
124 [1] = { 126 [1] = {
125 .start = 84, 127 .start = evt2irq(0xc80),
126 .end = 84, 128 .end = evt2irq(0xc80),
127 .flags = IORESOURCE_IRQ, 129 .flags = IORESOURCE_IRQ,
128 }, 130 },
129}; 131};
@@ -152,7 +154,7 @@ static struct resource tmu0_resources[] = {
152 .flags = IORESOURCE_MEM, 154 .flags = IORESOURCE_MEM,
153 }, 155 },
154 [1] = { 156 [1] = {
155 .start = 28, 157 .start = evt2irq(0x580),
156 .flags = IORESOURCE_IRQ, 158 .flags = IORESOURCE_IRQ,
157 }, 159 },
158}; 160};
@@ -180,7 +182,7 @@ static struct resource tmu1_resources[] = {
180 .flags = IORESOURCE_MEM, 182 .flags = IORESOURCE_MEM,
181 }, 183 },
182 [1] = { 184 [1] = {
183 .start = 29, 185 .start = evt2irq(0x5a0),
184 .flags = IORESOURCE_IRQ, 186 .flags = IORESOURCE_IRQ,
185 }, 187 },
186}; 188};
@@ -207,7 +209,7 @@ static struct resource tmu2_resources[] = {
207 .flags = IORESOURCE_MEM, 209 .flags = IORESOURCE_MEM,
208 }, 210 },
209 [1] = { 211 [1] = {
210 .start = 30, 212 .start = evt2irq(0x5c0),
211 .flags = IORESOURCE_IRQ, 213 .flags = IORESOURCE_IRQ,
212 }, 214 },
213}; 215};
@@ -234,7 +236,7 @@ static struct resource tmu3_resources[] = {
234 .flags = IORESOURCE_MEM, 236 .flags = IORESOURCE_MEM,
235 }, 237 },
236 [1] = { 238 [1] = {
237 .start = 96, 239 .start = evt2irq(0xe00),
238 .flags = IORESOURCE_IRQ, 240 .flags = IORESOURCE_IRQ,
239 }, 241 },
240}; 242};
@@ -261,7 +263,7 @@ static struct resource tmu4_resources[] = {
261 .flags = IORESOURCE_MEM, 263 .flags = IORESOURCE_MEM,
262 }, 264 },
263 [1] = { 265 [1] = {
264 .start = 97, 266 .start = evt2irq(0xe20),
265 .flags = IORESOURCE_IRQ, 267 .flags = IORESOURCE_IRQ,
266 }, 268 },
267}; 269};
@@ -288,7 +290,7 @@ static struct resource tmu5_resources[] = {
288 .flags = IORESOURCE_MEM, 290 .flags = IORESOURCE_MEM,
289 }, 291 },
290 [1] = { 292 [1] = {
291 .start = 98, 293 .start = evt2irq(0xe40),
292 .flags = IORESOURCE_IRQ, 294 .flags = IORESOURCE_IRQ,
293 }, 295 },
294}; 296};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7770.c b/arch/sh/kernel/cpu/sh4a/setup-sh7770.c
index 46ea8703d18a..256ea7a45164 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7770.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7770.c
@@ -12,6 +12,7 @@
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <linux/serial_sci.h> 13#include <linux/serial_sci.h>
14#include <linux/sh_timer.h> 14#include <linux/sh_timer.h>
15#include <linux/sh_intc.h>
15#include <linux/io.h> 16#include <linux/io.h>
16 17
17static struct plat_sci_port scif0_platform_data = { 18static struct plat_sci_port scif0_platform_data = {
@@ -20,7 +21,7 @@ static struct plat_sci_port scif0_platform_data = {
20 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 21 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
21 .scbrr_algo_id = SCBRR_ALGO_2, 22 .scbrr_algo_id = SCBRR_ALGO_2,
22 .type = PORT_SCIF, 23 .type = PORT_SCIF,
23 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9A0)), 24 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9a0)),
24}; 25};
25 26
26static struct platform_device scif0_device = { 27static struct platform_device scif0_device = {
@@ -37,7 +38,7 @@ static struct plat_sci_port scif1_platform_data = {
37 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 38 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
38 .scbrr_algo_id = SCBRR_ALGO_2, 39 .scbrr_algo_id = SCBRR_ALGO_2,
39 .type = PORT_SCIF, 40 .type = PORT_SCIF,
40 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9C0)), 41 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9c0)),
41}; 42};
42 43
43static struct platform_device scif1_device = { 44static struct platform_device scif1_device = {
@@ -54,7 +55,7 @@ static struct plat_sci_port scif2_platform_data = {
54 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 55 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
55 .scbrr_algo_id = SCBRR_ALGO_2, 56 .scbrr_algo_id = SCBRR_ALGO_2,
56 .type = PORT_SCIF, 57 .type = PORT_SCIF,
57 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9E0)), 58 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9e0)),
58}; 59};
59 60
60static struct platform_device scif2_device = { 61static struct platform_device scif2_device = {
@@ -71,7 +72,7 @@ static struct plat_sci_port scif3_platform_data = {
71 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 72 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
72 .scbrr_algo_id = SCBRR_ALGO_2, 73 .scbrr_algo_id = SCBRR_ALGO_2,
73 .type = PORT_SCIF, 74 .type = PORT_SCIF,
74 .irqs = SCIx_IRQ_MUXED(evt2irq(0xA00)), 75 .irqs = SCIx_IRQ_MUXED(evt2irq(0xa00)),
75}; 76};
76 77
77static struct platform_device scif3_device = { 78static struct platform_device scif3_device = {
@@ -88,7 +89,7 @@ static struct plat_sci_port scif4_platform_data = {
88 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 89 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
89 .scbrr_algo_id = SCBRR_ALGO_2, 90 .scbrr_algo_id = SCBRR_ALGO_2,
90 .type = PORT_SCIF, 91 .type = PORT_SCIF,
91 .irqs = SCIx_IRQ_MUXED(evt2irq(0xA20)), 92 .irqs = SCIx_IRQ_MUXED(evt2irq(0xa20)),
92}; 93};
93 94
94static struct platform_device scif4_device = { 95static struct platform_device scif4_device = {
@@ -105,7 +106,7 @@ static struct plat_sci_port scif5_platform_data = {
105 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 106 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
106 .scbrr_algo_id = SCBRR_ALGO_2, 107 .scbrr_algo_id = SCBRR_ALGO_2,
107 .type = PORT_SCIF, 108 .type = PORT_SCIF,
108 .irqs = SCIx_IRQ_MUXED(evt2irq(0xA40)), 109 .irqs = SCIx_IRQ_MUXED(evt2irq(0xa40)),
109}; 110};
110 111
111static struct platform_device scif5_device = { 112static struct platform_device scif5_device = {
@@ -122,7 +123,7 @@ static struct plat_sci_port scif6_platform_data = {
122 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 123 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
123 .scbrr_algo_id = SCBRR_ALGO_2, 124 .scbrr_algo_id = SCBRR_ALGO_2,
124 .type = PORT_SCIF, 125 .type = PORT_SCIF,
125 .irqs = SCIx_IRQ_MUXED(evt2irq(0xA60)), 126 .irqs = SCIx_IRQ_MUXED(evt2irq(0xa60)),
126}; 127};
127 128
128static struct platform_device scif6_device = { 129static struct platform_device scif6_device = {
@@ -139,7 +140,7 @@ static struct plat_sci_port scif7_platform_data = {
139 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 140 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
140 .scbrr_algo_id = SCBRR_ALGO_2, 141 .scbrr_algo_id = SCBRR_ALGO_2,
141 .type = PORT_SCIF, 142 .type = PORT_SCIF,
142 .irqs = SCIx_IRQ_MUXED(evt2irq(0xA80)), 143 .irqs = SCIx_IRQ_MUXED(evt2irq(0xa80)),
143}; 144};
144 145
145static struct platform_device scif7_device = { 146static struct platform_device scif7_device = {
@@ -156,7 +157,7 @@ static struct plat_sci_port scif8_platform_data = {
156 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 157 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
157 .scbrr_algo_id = SCBRR_ALGO_2, 158 .scbrr_algo_id = SCBRR_ALGO_2,
158 .type = PORT_SCIF, 159 .type = PORT_SCIF,
159 .irqs = SCIx_IRQ_MUXED(evt2irq(0xAA0)), 160 .irqs = SCIx_IRQ_MUXED(evt2irq(0xaa0)),
160}; 161};
161 162
162static struct platform_device scif8_device = { 163static struct platform_device scif8_device = {
@@ -173,7 +174,7 @@ static struct plat_sci_port scif9_platform_data = {
173 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE, 174 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
174 .scbrr_algo_id = SCBRR_ALGO_2, 175 .scbrr_algo_id = SCBRR_ALGO_2,
175 .type = PORT_SCIF, 176 .type = PORT_SCIF,
176 .irqs = SCIx_IRQ_MUXED(evt2irq(0xAC0)), 177 .irqs = SCIx_IRQ_MUXED(evt2irq(0xac0)),
177}; 178};
178 179
179static struct platform_device scif9_device = { 180static struct platform_device scif9_device = {
@@ -197,7 +198,7 @@ static struct resource tmu0_resources[] = {
197 .flags = IORESOURCE_MEM, 198 .flags = IORESOURCE_MEM,
198 }, 199 },
199 [1] = { 200 [1] = {
200 .start = 16, 201 .start = evt2irq(0x400),
201 .flags = IORESOURCE_IRQ, 202 .flags = IORESOURCE_IRQ,
202 }, 203 },
203}; 204};
@@ -225,7 +226,7 @@ static struct resource tmu1_resources[] = {
225 .flags = IORESOURCE_MEM, 226 .flags = IORESOURCE_MEM,
226 }, 227 },
227 [1] = { 228 [1] = {
228 .start = 17, 229 .start = evt2irq(0x420),
229 .flags = IORESOURCE_IRQ, 230 .flags = IORESOURCE_IRQ,
230 }, 231 },
231}; 232};
@@ -252,7 +253,7 @@ static struct resource tmu2_resources[] = {
252 .flags = IORESOURCE_MEM, 253 .flags = IORESOURCE_MEM,
253 }, 254 },
254 [1] = { 255 [1] = {
255 .start = 18, 256 .start = evt2irq(0x440),
256 .flags = IORESOURCE_IRQ, 257 .flags = IORESOURCE_IRQ,
257 }, 258 },
258}; 259};
@@ -279,7 +280,7 @@ static struct resource tmu3_resources[] = {
279 .flags = IORESOURCE_MEM, 280 .flags = IORESOURCE_MEM,
280 }, 281 },
281 [1] = { 282 [1] = {
282 .start = 19, 283 .start = evt2irq(0x460),
283 .flags = IORESOURCE_IRQ, 284 .flags = IORESOURCE_IRQ,
284 }, 285 },
285}; 286};
@@ -306,7 +307,7 @@ static struct resource tmu4_resources[] = {
306 .flags = IORESOURCE_MEM, 307 .flags = IORESOURCE_MEM,
307 }, 308 },
308 [1] = { 309 [1] = {
309 .start = 20, 310 .start = evt2irq(0x480),
310 .flags = IORESOURCE_IRQ, 311 .flags = IORESOURCE_IRQ,
311 }, 312 },
312}; 313};
@@ -333,7 +334,7 @@ static struct resource tmu5_resources[] = {
333 .flags = IORESOURCE_MEM, 334 .flags = IORESOURCE_MEM,
334 }, 335 },
335 [1] = { 336 [1] = {
336 .start = 21, 337 .start = evt2irq(0x4a0),
337 .flags = IORESOURCE_IRQ, 338 .flags = IORESOURCE_IRQ,
338 }, 339 },
339}; 340};
@@ -360,7 +361,7 @@ static struct resource tmu6_resources[] = {
360 .flags = IORESOURCE_MEM, 361 .flags = IORESOURCE_MEM,
361 }, 362 },
362 [1] = { 363 [1] = {
363 .start = 22, 364 .start = evt2irq(0x4c0),
364 .flags = IORESOURCE_IRQ, 365 .flags = IORESOURCE_IRQ,
365 }, 366 },
366}; 367};
@@ -387,7 +388,7 @@ static struct resource tmu7_resources[] = {
387 .flags = IORESOURCE_MEM, 388 .flags = IORESOURCE_MEM,
388 }, 389 },
389 [1] = { 390 [1] = {
390 .start = 23, 391 .start = evt2irq(0x4e0),
391 .flags = IORESOURCE_IRQ, 392 .flags = IORESOURCE_IRQ,
392 }, 393 },
393}; 394};
@@ -414,7 +415,7 @@ static struct resource tmu8_resources[] = {
414 .flags = IORESOURCE_MEM, 415 .flags = IORESOURCE_MEM,
415 }, 416 },
416 [1] = { 417 [1] = {
417 .start = 24, 418 .start = evt2irq(0x500),
418 .flags = IORESOURCE_IRQ, 419 .flags = IORESOURCE_IRQ,
419 }, 420 },
420}; 421};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c
index d431b0052d0c..de45b704687a 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c
@@ -14,6 +14,7 @@
14#include <linux/serial_sci.h> 14#include <linux/serial_sci.h>
15#include <linux/sh_dma.h> 15#include <linux/sh_dma.h>
16#include <linux/sh_timer.h> 16#include <linux/sh_timer.h>
17#include <linux/sh_intc.h>
17#include <cpu/dma-register.h> 18#include <cpu/dma-register.h>
18 19
19static struct plat_sci_port scif0_platform_data = { 20static struct plat_sci_port scif0_platform_data = {
@@ -22,7 +23,7 @@ static struct plat_sci_port scif0_platform_data = {
22 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 23 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
23 .scbrr_algo_id = SCBRR_ALGO_1, 24 .scbrr_algo_id = SCBRR_ALGO_1,
24 .type = PORT_SCIF, 25 .type = PORT_SCIF,
25 .irqs = { 40, 40, 40, 40 }, 26 .irqs = SCIx_IRQ_MUXED(evt2irq(0x700)),
26 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 27 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
27}; 28};
28 29
@@ -40,7 +41,7 @@ static struct plat_sci_port scif1_platform_data = {
40 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 41 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
41 .scbrr_algo_id = SCBRR_ALGO_1, 42 .scbrr_algo_id = SCBRR_ALGO_1,
42 .type = PORT_SCIF, 43 .type = PORT_SCIF,
43 .irqs = { 76, 76, 76, 76 }, 44 .irqs = SCIx_IRQ_MUXED(evt2irq(0xb80)),
44 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 45 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
45}; 46};
46 47
@@ -65,7 +66,7 @@ static struct resource tmu0_resources[] = {
65 .flags = IORESOURCE_MEM, 66 .flags = IORESOURCE_MEM,
66 }, 67 },
67 [1] = { 68 [1] = {
68 .start = 28, 69 .start = evt2irq(0x580),
69 .flags = IORESOURCE_IRQ, 70 .flags = IORESOURCE_IRQ,
70 }, 71 },
71}; 72};
@@ -93,7 +94,7 @@ static struct resource tmu1_resources[] = {
93 .flags = IORESOURCE_MEM, 94 .flags = IORESOURCE_MEM,
94 }, 95 },
95 [1] = { 96 [1] = {
96 .start = 29, 97 .start = evt2irq(0x5a0),
97 .flags = IORESOURCE_IRQ, 98 .flags = IORESOURCE_IRQ,
98 }, 99 },
99}; 100};
@@ -120,7 +121,7 @@ static struct resource tmu2_resources[] = {
120 .flags = IORESOURCE_MEM, 121 .flags = IORESOURCE_MEM,
121 }, 122 },
122 [1] = { 123 [1] = {
123 .start = 30, 124 .start = evt2irq(0x5c0),
124 .flags = IORESOURCE_IRQ, 125 .flags = IORESOURCE_IRQ,
125 }, 126 },
126}; 127};
@@ -147,7 +148,7 @@ static struct resource tmu3_resources[] = {
147 .flags = IORESOURCE_MEM, 148 .flags = IORESOURCE_MEM,
148 }, 149 },
149 [1] = { 150 [1] = {
150 .start = 96, 151 .start = evt2irq(0xe00),
151 .flags = IORESOURCE_IRQ, 152 .flags = IORESOURCE_IRQ,
152 }, 153 },
153}; 154};
@@ -174,7 +175,7 @@ static struct resource tmu4_resources[] = {
174 .flags = IORESOURCE_MEM, 175 .flags = IORESOURCE_MEM,
175 }, 176 },
176 [1] = { 177 [1] = {
177 .start = 97, 178 .start = evt2irq(0xe20),
178 .flags = IORESOURCE_IRQ, 179 .flags = IORESOURCE_IRQ,
179 }, 180 },
180}; 181};
@@ -201,7 +202,7 @@ static struct resource tmu5_resources[] = {
201 .flags = IORESOURCE_MEM, 202 .flags = IORESOURCE_MEM,
202 }, 203 },
203 [1] = { 204 [1] = {
204 .start = 98, 205 .start = evt2irq(0xe40),
205 .flags = IORESOURCE_IRQ, 206 .flags = IORESOURCE_IRQ,
206 }, 207 },
207}; 208};
@@ -224,7 +225,7 @@ static struct resource rtc_resources[] = {
224 }, 225 },
225 [1] = { 226 [1] = {
226 /* Shared Period/Carry/Alarm IRQ */ 227 /* Shared Period/Carry/Alarm IRQ */
227 .start = 20, 228 .start = evt2irq(0x480),
228 .flags = IORESOURCE_IRQ, 229 .flags = IORESOURCE_IRQ,
229 }, 230 },
230}; 231};
@@ -321,10 +322,13 @@ static struct resource sh7780_dmae0_resources[] = {
321 .flags = IORESOURCE_MEM, 322 .flags = IORESOURCE_MEM,
322 }, 323 },
323 { 324 {
324 /* Real DMA error IRQ is 38, and channel IRQs are 34-37, 44-45 */ 325 /*
326 * Real DMA error vector is 0x6c0, and channel
327 * vectors are 0x640-0x6a0, 0x780-0x7a0
328 */
325 .name = "error_irq", 329 .name = "error_irq",
326 .start = 34, 330 .start = evt2irq(0x640),
327 .end = 34, 331 .end = evt2irq(0x640),
328 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 332 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
329 }, 333 },
330}; 334};
@@ -338,10 +342,13 @@ static struct resource sh7780_dmae1_resources[] = {
338 }, 342 },
339 /* DMAC1 has no DMARS */ 343 /* DMAC1 has no DMARS */
340 { 344 {
341 /* Real DMA error IRQ is 38, and channel IRQs are 46-47, 92-95 */ 345 /*
346 * Real DMA error vector is 0x6c0, and channel
347 * vectors are 0x7c0-0x7e0, 0xd80-0xde0
348 */
342 .name = "error_irq", 349 .name = "error_irq",
343 .start = 46, 350 .start = evt2irq(0x7c0),
344 .end = 46, 351 .end = evt2irq(0x7c0),
345 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 352 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
346 }, 353 },
347}; 354};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
index 304339fe7a24..0968ecb962e6 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
@@ -15,6 +15,7 @@
15#include <linux/mm.h> 15#include <linux/mm.h>
16#include <linux/sh_dma.h> 16#include <linux/sh_dma.h>
17#include <linux/sh_timer.h> 17#include <linux/sh_timer.h>
18#include <linux/sh_intc.h>
18#include <asm/mmzone.h> 19#include <asm/mmzone.h>
19#include <cpu/dma-register.h> 20#include <cpu/dma-register.h>
20 21
@@ -78,7 +79,7 @@ static struct plat_sci_port scif3_platform_data = {
78 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 79 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
79 .scbrr_algo_id = SCBRR_ALGO_1, 80 .scbrr_algo_id = SCBRR_ALGO_1,
80 .type = PORT_SCIF, 81 .type = PORT_SCIF,
81 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9A0)), 82 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9a0)),
82 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 83 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
83}; 84};
84 85
@@ -96,7 +97,7 @@ static struct plat_sci_port scif4_platform_data = {
96 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 97 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
97 .scbrr_algo_id = SCBRR_ALGO_1, 98 .scbrr_algo_id = SCBRR_ALGO_1,
98 .type = PORT_SCIF, 99 .type = PORT_SCIF,
99 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9C0)), 100 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9c0)),
100 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 101 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
101}; 102};
102 103
@@ -114,7 +115,7 @@ static struct plat_sci_port scif5_platform_data = {
114 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 115 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
115 .scbrr_algo_id = SCBRR_ALGO_1, 116 .scbrr_algo_id = SCBRR_ALGO_1,
116 .type = PORT_SCIF, 117 .type = PORT_SCIF,
117 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9E0)), 118 .irqs = SCIx_IRQ_MUXED(evt2irq(0x9e0)),
118 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 119 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
119}; 120};
120 121
@@ -139,7 +140,7 @@ static struct resource tmu0_resources[] = {
139 .flags = IORESOURCE_MEM, 140 .flags = IORESOURCE_MEM,
140 }, 141 },
141 [1] = { 142 [1] = {
142 .start = 28, 143 .start = evt2irq(0x580),
143 .flags = IORESOURCE_IRQ, 144 .flags = IORESOURCE_IRQ,
144 }, 145 },
145}; 146};
@@ -167,7 +168,7 @@ static struct resource tmu1_resources[] = {
167 .flags = IORESOURCE_MEM, 168 .flags = IORESOURCE_MEM,
168 }, 169 },
169 [1] = { 170 [1] = {
170 .start = 29, 171 .start = evt2irq(0x5a0),
171 .flags = IORESOURCE_IRQ, 172 .flags = IORESOURCE_IRQ,
172 }, 173 },
173}; 174};
@@ -194,7 +195,7 @@ static struct resource tmu2_resources[] = {
194 .flags = IORESOURCE_MEM, 195 .flags = IORESOURCE_MEM,
195 }, 196 },
196 [1] = { 197 [1] = {
197 .start = 30, 198 .start = evt2irq(0x5c0),
198 .flags = IORESOURCE_IRQ, 199 .flags = IORESOURCE_IRQ,
199 }, 200 },
200}; 201};
@@ -221,7 +222,7 @@ static struct resource tmu3_resources[] = {
221 .flags = IORESOURCE_MEM, 222 .flags = IORESOURCE_MEM,
222 }, 223 },
223 [1] = { 224 [1] = {
224 .start = 96, 225 .start = evt2irq(0xe00),
225 .flags = IORESOURCE_IRQ, 226 .flags = IORESOURCE_IRQ,
226 }, 227 },
227}; 228};
@@ -248,7 +249,7 @@ static struct resource tmu4_resources[] = {
248 .flags = IORESOURCE_MEM, 249 .flags = IORESOURCE_MEM,
249 }, 250 },
250 [1] = { 251 [1] = {
251 .start = 97, 252 .start = evt2irq(0xe20),
252 .flags = IORESOURCE_IRQ, 253 .flags = IORESOURCE_IRQ,
253 }, 254 },
254}; 255};
@@ -275,7 +276,7 @@ static struct resource tmu5_resources[] = {
275 .flags = IORESOURCE_MEM, 276 .flags = IORESOURCE_MEM,
276 }, 277 },
277 [1] = { 278 [1] = {
278 .start = 98, 279 .start = evt2irq(0xe40),
279 .flags = IORESOURCE_IRQ, 280 .flags = IORESOURCE_IRQ,
280 }, 281 },
281}; 282};
@@ -375,10 +376,13 @@ static struct resource sh7785_dmae0_resources[] = {
375 .flags = IORESOURCE_MEM, 376 .flags = IORESOURCE_MEM,
376 }, 377 },
377 { 378 {
378 /* Real DMA error IRQ is 39, and channel IRQs are 33-38 */ 379 /*
380 * Real DMA error vector is 0x6e0, and channel
381 * vectors are 0x620-0x6c0
382 */
379 .name = "error_irq", 383 .name = "error_irq",
380 .start = 33, 384 .start = evt2irq(0x620),
381 .end = 33, 385 .end = evt2irq(0x620),
382 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 386 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
383 }, 387 },
384}; 388};
@@ -392,10 +396,13 @@ static struct resource sh7785_dmae1_resources[] = {
392 }, 396 },
393 /* DMAC1 has no DMARS */ 397 /* DMAC1 has no DMARS */
394 { 398 {
395 /* Real DMA error IRQ is 58, and channel IRQs are 52-57 */ 399 /*
400 * Real DMA error vector is 0x940, and channel
401 * vectors are 0x880-0x920
402 */
396 .name = "error_irq", 403 .name = "error_irq",
397 .start = 52, 404 .start = evt2irq(0x880),
398 .end = 52, 405 .end = evt2irq(0x880),
399 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE, 406 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
400 }, 407 },
401}; 408};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
index 9befe2dcf45e..2e6952f87848 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
@@ -32,7 +32,10 @@ static struct plat_sci_port scif0_platform_data = {
32 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 32 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
33 .scbrr_algo_id = SCBRR_ALGO_1, 33 .scbrr_algo_id = SCBRR_ALGO_1,
34 .type = PORT_SCIF, 34 .type = PORT_SCIF,
35 .irqs = { 40, 41, 43, 42 }, 35 .irqs = { evt2irq(0x700),
36 evt2irq(0x720),
37 evt2irq(0x760),
38 evt2irq(0x740) },
36 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 39 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
37}; 40};
38 41
@@ -125,7 +128,7 @@ static struct plat_sci_port scif5_platform_data = {
125 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 128 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
126 .scbrr_algo_id = SCBRR_ALGO_1, 129 .scbrr_algo_id = SCBRR_ALGO_1,
127 .type = PORT_SCIF, 130 .type = PORT_SCIF,
128 .irqs = SCIx_IRQ_MUXED(evt2irq(0x8A0)), 131 .irqs = SCIx_IRQ_MUXED(evt2irq(0x8a0)),
129 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE, 132 .regtype = SCIx_SH4_SCIF_FIFODATA_REGTYPE,
130}; 133};
131 134
@@ -150,7 +153,7 @@ static struct resource tmu0_resources[] = {
150 .flags = IORESOURCE_MEM, 153 .flags = IORESOURCE_MEM,
151 }, 154 },
152 [1] = { 155 [1] = {
153 .start = 16, 156 .start = evt2irq(0x400),
154 .flags = IORESOURCE_IRQ, 157 .flags = IORESOURCE_IRQ,
155 }, 158 },
156}; 159};
@@ -178,7 +181,7 @@ static struct resource tmu1_resources[] = {
178 .flags = IORESOURCE_MEM, 181 .flags = IORESOURCE_MEM,
179 }, 182 },
180 [1] = { 183 [1] = {
181 .start = 17, 184 .start = evt2irq(0x420),
182 .flags = IORESOURCE_IRQ, 185 .flags = IORESOURCE_IRQ,
183 }, 186 },
184}; 187};
@@ -205,7 +208,7 @@ static struct resource tmu2_resources[] = {
205 .flags = IORESOURCE_MEM, 208 .flags = IORESOURCE_MEM,
206 }, 209 },
207 [1] = { 210 [1] = {
208 .start = 18, 211 .start = evt2irq(0x440),
209 .flags = IORESOURCE_IRQ, 212 .flags = IORESOURCE_IRQ,
210 }, 213 },
211}; 214};
@@ -232,7 +235,7 @@ static struct resource tmu3_resources[] = {
232 .flags = IORESOURCE_MEM, 235 .flags = IORESOURCE_MEM,
233 }, 236 },
234 [1] = { 237 [1] = {
235 .start = 20, 238 .start = evt2irq(0x480),
236 .flags = IORESOURCE_IRQ, 239 .flags = IORESOURCE_IRQ,
237 }, 240 },
238}; 241};
@@ -259,7 +262,7 @@ static struct resource tmu4_resources[] = {
259 .flags = IORESOURCE_MEM, 262 .flags = IORESOURCE_MEM,
260 }, 263 },
261 [1] = { 264 [1] = {
262 .start = 21, 265 .start = evt2irq(0x4a0),
263 .flags = IORESOURCE_IRQ, 266 .flags = IORESOURCE_IRQ,
264 }, 267 },
265}; 268};
@@ -286,7 +289,7 @@ static struct resource tmu5_resources[] = {
286 .flags = IORESOURCE_MEM, 289 .flags = IORESOURCE_MEM,
287 }, 290 },
288 [1] = { 291 [1] = {
289 .start = 22, 292 .start = evt2irq(0x4c0),
290 .flags = IORESOURCE_IRQ, 293 .flags = IORESOURCE_IRQ,
291 }, 294 },
292}; 295};
@@ -313,7 +316,7 @@ static struct resource tmu6_resources[] = {
313 .flags = IORESOURCE_MEM, 316 .flags = IORESOURCE_MEM,
314 }, 317 },
315 [1] = { 318 [1] = {
316 .start = 45, 319 .start = evt2irq(0x7a0),
317 .flags = IORESOURCE_IRQ, 320 .flags = IORESOURCE_IRQ,
318 }, 321 },
319}; 322};
@@ -340,7 +343,7 @@ static struct resource tmu7_resources[] = {
340 .flags = IORESOURCE_MEM, 343 .flags = IORESOURCE_MEM,
341 }, 344 },
342 [1] = { 345 [1] = {
343 .start = 45, 346 .start = evt2irq(0x7a0),
344 .flags = IORESOURCE_IRQ, 347 .flags = IORESOURCE_IRQ,
345 }, 348 },
346}; 349};
@@ -367,7 +370,7 @@ static struct resource tmu8_resources[] = {
367 .flags = IORESOURCE_MEM, 370 .flags = IORESOURCE_MEM,
368 }, 371 },
369 [1] = { 372 [1] = {
370 .start = 45, 373 .start = evt2irq(0x7a0),
371 .flags = IORESOURCE_IRQ, 374 .flags = IORESOURCE_IRQ,
372 }, 375 },
373}; 376};
@@ -394,7 +397,7 @@ static struct resource tmu9_resources[] = {
394 .flags = IORESOURCE_MEM, 397 .flags = IORESOURCE_MEM,
395 }, 398 },
396 [1] = { 399 [1] = {
397 .start = 46, 400 .start = evt2irq(0x7c0),
398 .flags = IORESOURCE_IRQ, 401 .flags = IORESOURCE_IRQ,
399 }, 402 },
400}; 403};
@@ -421,7 +424,7 @@ static struct resource tmu10_resources[] = {
421 .flags = IORESOURCE_MEM, 424 .flags = IORESOURCE_MEM,
422 }, 425 },
423 [1] = { 426 [1] = {
424 .start = 46, 427 .start = evt2irq(0x7c0),
425 .flags = IORESOURCE_IRQ, 428 .flags = IORESOURCE_IRQ,
426 }, 429 },
427}; 430};
@@ -448,7 +451,7 @@ static struct resource tmu11_resources[] = {
448 .flags = IORESOURCE_MEM, 451 .flags = IORESOURCE_MEM,
449 }, 452 },
450 [1] = { 453 [1] = {
451 .start = 46, 454 .start = evt2irq(0x7c0),
452 .flags = IORESOURCE_IRQ, 455 .flags = IORESOURCE_IRQ,
453 }, 456 },
454}; 457};
@@ -550,8 +553,8 @@ static struct resource usb_ehci_resources[] = {
550 .flags = IORESOURCE_MEM, 553 .flags = IORESOURCE_MEM,
551 }, 554 },
552 [1] = { 555 [1] = {
553 .start = 77, 556 .start = evt2irq(0xba0),
554 .end = 77, 557 .end = evt2irq(0xba0),
555 .flags = IORESOURCE_IRQ, 558 .flags = IORESOURCE_IRQ,
556 }, 559 },
557}; 560};
@@ -574,8 +577,8 @@ static struct resource usb_ohci_resources[] = {
574 .flags = IORESOURCE_MEM, 577 .flags = IORESOURCE_MEM,
575 }, 578 },
576 [1] = { 579 [1] = {
577 .start = 77, 580 .start = evt2irq(0xba0),
578 .end = 77, 581 .end = evt2irq(0xba0),
579 .flags = IORESOURCE_IRQ, 582 .flags = IORESOURCE_IRQ,
580 }, 583 },
581}; 584};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-shx3.c b/arch/sh/kernel/cpu/sh4a/setup-shx3.c
index bb208806dc1a..7ca7dd20fb08 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-shx3.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-shx3.c
@@ -14,6 +14,7 @@
14#include <linux/io.h> 14#include <linux/io.h>
15#include <linux/gpio.h> 15#include <linux/gpio.h>
16#include <linux/sh_timer.h> 16#include <linux/sh_timer.h>
17#include <linux/sh_intc.h>
17#include <cpu/shx3.h> 18#include <cpu/shx3.h>
18#include <asm/mmzone.h> 19#include <asm/mmzone.h>
19 20
@@ -32,7 +33,10 @@ static struct plat_sci_port scif0_platform_data = {
32 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 33 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
33 .scbrr_algo_id = SCBRR_ALGO_2, 34 .scbrr_algo_id = SCBRR_ALGO_2,
34 .type = PORT_SCIF, 35 .type = PORT_SCIF,
35 .irqs = { 40, 41, 43, 42 }, 36 .irqs = { evt2irq(0x700),
37 evt2irq(0x720),
38 evt2irq(0x760),
39 evt2irq(0x740) },
36}; 40};
37 41
38static struct platform_device scif0_device = { 42static struct platform_device scif0_device = {
@@ -49,7 +53,10 @@ static struct plat_sci_port scif1_platform_data = {
49 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 53 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
50 .scbrr_algo_id = SCBRR_ALGO_2, 54 .scbrr_algo_id = SCBRR_ALGO_2,
51 .type = PORT_SCIF, 55 .type = PORT_SCIF,
52 .irqs = { 44, 45, 47, 46 }, 56 .irqs = { evt2irq(0x780),
57 evt2irq(0x7a0),
58 evt2irq(0x7e0),
59 evt2irq(0x7c0) },
53}; 60};
54 61
55static struct platform_device scif1_device = { 62static struct platform_device scif1_device = {
@@ -66,7 +73,10 @@ static struct plat_sci_port scif2_platform_data = {
66 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE, 73 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
67 .scbrr_algo_id = SCBRR_ALGO_2, 74 .scbrr_algo_id = SCBRR_ALGO_2,
68 .type = PORT_SCIF, 75 .type = PORT_SCIF,
69 .irqs = { 52, 53, 55, 54 }, 76 .irqs = { evt2irq(0x880),
77 evt2irq(0x8a0),
78 evt2irq(0x8e0),
79 evt2irq(0x8c0) },
70}; 80};
71 81
72static struct platform_device scif2_device = { 82static struct platform_device scif2_device = {
@@ -90,7 +100,7 @@ static struct resource tmu0_resources[] = {
90 .flags = IORESOURCE_MEM, 100 .flags = IORESOURCE_MEM,
91 }, 101 },
92 [1] = { 102 [1] = {
93 .start = 16, 103 .start = evt2irq(0x400),
94 .flags = IORESOURCE_IRQ, 104 .flags = IORESOURCE_IRQ,
95 }, 105 },
96}; 106};
@@ -118,7 +128,7 @@ static struct resource tmu1_resources[] = {
118 .flags = IORESOURCE_MEM, 128 .flags = IORESOURCE_MEM,
119 }, 129 },
120 [1] = { 130 [1] = {
121 .start = 17, 131 .start = evt2irq(0x420),
122 .flags = IORESOURCE_IRQ, 132 .flags = IORESOURCE_IRQ,
123 }, 133 },
124}; 134};
@@ -145,7 +155,7 @@ static struct resource tmu2_resources[] = {
145 .flags = IORESOURCE_MEM, 155 .flags = IORESOURCE_MEM,
146 }, 156 },
147 [1] = { 157 [1] = {
148 .start = 18, 158 .start = evt2irq(0x440),
149 .flags = IORESOURCE_IRQ, 159 .flags = IORESOURCE_IRQ,
150 }, 160 },
151}; 161};
@@ -172,7 +182,7 @@ static struct resource tmu3_resources[] = {
172 .flags = IORESOURCE_MEM, 182 .flags = IORESOURCE_MEM,
173 }, 183 },
174 [1] = { 184 [1] = {
175 .start = 19, 185 .start = evt2irq(0x460),
176 .flags = IORESOURCE_IRQ, 186 .flags = IORESOURCE_IRQ,
177 }, 187 },
178}; 188};
@@ -199,7 +209,7 @@ static struct resource tmu4_resources[] = {
199 .flags = IORESOURCE_MEM, 209 .flags = IORESOURCE_MEM,
200 }, 210 },
201 [1] = { 211 [1] = {
202 .start = 20, 212 .start = evt2irq(0x480),
203 .flags = IORESOURCE_IRQ, 213 .flags = IORESOURCE_IRQ,
204 }, 214 },
205}; 215};
@@ -226,7 +236,7 @@ static struct resource tmu5_resources[] = {
226 .flags = IORESOURCE_MEM, 236 .flags = IORESOURCE_MEM,
227 }, 237 },
228 [1] = { 238 [1] = {
229 .start = 21, 239 .start = evt2irq(0x4a0),
230 .flags = IORESOURCE_IRQ, 240 .flags = IORESOURCE_IRQ,
231 }, 241 },
232}; 242};