aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2011-01-13 01:06:28 -0500
committerPaul Mundt <lethal@linux-sh.org>2011-01-13 01:06:28 -0500
commitf43dc23d5ea91fca257be02138a255f02d98e806 (patch)
treeb29722f6e965316e90ac97abf79923ced250dc21 /arch/sh/kernel/cpu/sh4a/setup-sh7785.c
parentf8e53553f452dcbf67cb89c8cba63a1cd6eb4cc0 (diff)
parent4162cf64973df51fc885825bc9ca4d055891c49f (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into common/serial-rework
Conflicts: arch/sh/kernel/cpu/sh2/setup-sh7619.c arch/sh/kernel/cpu/sh2a/setup-mxg.c arch/sh/kernel/cpu/sh2a/setup-sh7201.c arch/sh/kernel/cpu/sh2a/setup-sh7203.c arch/sh/kernel/cpu/sh2a/setup-sh7206.c arch/sh/kernel/cpu/sh3/setup-sh7705.c 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-sh4-202.c arch/sh/kernel/cpu/sh4/setup-sh7750.c arch/sh/kernel/cpu/sh4/setup-sh7760.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-sh7763.c arch/sh/kernel/cpu/sh4a/setup-sh7770.c arch/sh/kernel/cpu/sh4a/setup-sh7780.c arch/sh/kernel/cpu/sh4a/setup-sh7785.c arch/sh/kernel/cpu/sh4a/setup-sh7786.c arch/sh/kernel/cpu/sh4a/setup-shx3.c arch/sh/kernel/cpu/sh5/setup-sh5.c drivers/serial/sh-sci.c drivers/serial/sh-sci.h include/linux/serial_sci.h
Diffstat (limited to 'arch/sh/kernel/cpu/sh4a/setup-sh7785.c')
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7785.c329
1 files changed, 248 insertions, 81 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
index 3ae2e2071009..18d8fc136fb2 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
@@ -13,20 +13,123 @@
13#include <linux/serial_sci.h> 13#include <linux/serial_sci.h>
14#include <linux/io.h> 14#include <linux/io.h>
15#include <linux/mm.h> 15#include <linux/mm.h>
16#include <linux/sh_dma.h>
16#include <linux/sh_timer.h> 17#include <linux/sh_timer.h>
18
17#include <asm/mmzone.h> 19#include <asm/mmzone.h>
18 20
21#include <cpu/dma-register.h>
22
23static struct plat_sci_port scif0_platform_data = {
24 .mapbase = 0xffea0000,
25 .flags = UPF_BOOT_AUTOCONF,
26 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
27 .scbrr_algo_id = SCBRR_ALGO_1,
28 .type = PORT_SCIF,
29 .irqs = { 40, 40, 40, 40 },
30};
31
32static struct platform_device scif0_device = {
33 .name = "sh-sci",
34 .id = 0,
35 .dev = {
36 .platform_data = &scif0_platform_data,
37 },
38};
39
40static struct plat_sci_port scif1_platform_data = {
41 .mapbase = 0xffeb0000,
42 .flags = UPF_BOOT_AUTOCONF,
43 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
44 .scbrr_algo_id = SCBRR_ALGO_1,
45 .type = PORT_SCIF,
46 .irqs = { 44, 44, 44, 44 },
47};
48
49static struct platform_device scif1_device = {
50 .name = "sh-sci",
51 .id = 1,
52 .dev = {
53 .platform_data = &scif1_platform_data,
54 },
55};
56
57static struct plat_sci_port scif2_platform_data = {
58 .mapbase = 0xffec0000,
59 .flags = UPF_BOOT_AUTOCONF,
60 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
61 .scbrr_algo_id = SCBRR_ALGO_1,
62 .type = PORT_SCIF,
63 .irqs = { 60, 60, 60, 60 },
64};
65
66static struct platform_device scif2_device = {
67 .name = "sh-sci",
68 .id = 2,
69 .dev = {
70 .platform_data = &scif2_platform_data,
71 },
72};
73
74static struct plat_sci_port scif3_platform_data = {
75 .mapbase = 0xffed0000,
76 .flags = UPF_BOOT_AUTOCONF,
77 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
78 .scbrr_algo_id = SCBRR_ALGO_1,
79 .type = PORT_SCIF,
80 .irqs = { 61, 61, 61, 61 },
81};
82
83static struct platform_device scif3_device = {
84 .name = "sh-sci",
85 .id = 3,
86 .dev = {
87 .platform_data = &scif3_platform_data,
88 },
89};
90
91static struct plat_sci_port scif4_platform_data = {
92 .mapbase = 0xffee0000,
93 .flags = UPF_BOOT_AUTOCONF,
94 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
95 .scbrr_algo_id = SCBRR_ALGO_1,
96 .type = PORT_SCIF,
97 .irqs = { 62, 62, 62, 62 },
98};
99
100static struct platform_device scif4_device = {
101 .name = "sh-sci",
102 .id = 4,
103 .dev = {
104 .platform_data = &scif4_platform_data,
105 },
106};
107
108static struct plat_sci_port scif5_platform_data = {
109 .mapbase = 0xffef0000,
110 .flags = UPF_BOOT_AUTOCONF,
111 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
112 .scbrr_algo_id = SCBRR_ALGO_1,
113 .type = PORT_SCIF,
114 .irqs = { 63, 63, 63, 63 },
115};
116
117static struct platform_device scif5_device = {
118 .name = "sh-sci",
119 .id = 5,
120 .dev = {
121 .platform_data = &scif5_platform_data,
122 },
123};
124
19static struct sh_timer_config tmu0_platform_data = { 125static struct sh_timer_config tmu0_platform_data = {
20 .name = "TMU0",
21 .channel_offset = 0x04, 126 .channel_offset = 0x04,
22 .timer_bit = 0, 127 .timer_bit = 0,
23 .clk = "tmu012_fck",
24 .clockevent_rating = 200, 128 .clockevent_rating = 200,
25}; 129};
26 130
27static struct resource tmu0_resources[] = { 131static struct resource tmu0_resources[] = {
28 [0] = { 132 [0] = {
29 .name = "TMU0",
30 .start = 0xffd80008, 133 .start = 0xffd80008,
31 .end = 0xffd80013, 134 .end = 0xffd80013,
32 .flags = IORESOURCE_MEM, 135 .flags = IORESOURCE_MEM,
@@ -48,16 +151,13 @@ static struct platform_device tmu0_device = {
48}; 151};
49 152
50static struct sh_timer_config tmu1_platform_data = { 153static struct sh_timer_config tmu1_platform_data = {
51 .name = "TMU1",
52 .channel_offset = 0x10, 154 .channel_offset = 0x10,
53 .timer_bit = 1, 155 .timer_bit = 1,
54 .clk = "tmu012_fck",
55 .clocksource_rating = 200, 156 .clocksource_rating = 200,
56}; 157};
57 158
58static struct resource tmu1_resources[] = { 159static struct resource tmu1_resources[] = {
59 [0] = { 160 [0] = {
60 .name = "TMU1",
61 .start = 0xffd80014, 161 .start = 0xffd80014,
62 .end = 0xffd8001f, 162 .end = 0xffd8001f,
63 .flags = IORESOURCE_MEM, 163 .flags = IORESOURCE_MEM,
@@ -79,15 +179,12 @@ static struct platform_device tmu1_device = {
79}; 179};
80 180
81static struct sh_timer_config tmu2_platform_data = { 181static struct sh_timer_config tmu2_platform_data = {
82 .name = "TMU2",
83 .channel_offset = 0x1c, 182 .channel_offset = 0x1c,
84 .timer_bit = 2, 183 .timer_bit = 2,
85 .clk = "tmu012_fck",
86}; 184};
87 185
88static struct resource tmu2_resources[] = { 186static struct resource tmu2_resources[] = {
89 [0] = { 187 [0] = {
90 .name = "TMU2",
91 .start = 0xffd80020, 188 .start = 0xffd80020,
92 .end = 0xffd8002f, 189 .end = 0xffd8002f,
93 .flags = IORESOURCE_MEM, 190 .flags = IORESOURCE_MEM,
@@ -109,15 +206,12 @@ static struct platform_device tmu2_device = {
109}; 206};
110 207
111static struct sh_timer_config tmu3_platform_data = { 208static struct sh_timer_config tmu3_platform_data = {
112 .name = "TMU3",
113 .channel_offset = 0x04, 209 .channel_offset = 0x04,
114 .timer_bit = 0, 210 .timer_bit = 0,
115 .clk = "tmu345_fck",
116}; 211};
117 212
118static struct resource tmu3_resources[] = { 213static struct resource tmu3_resources[] = {
119 [0] = { 214 [0] = {
120 .name = "TMU3",
121 .start = 0xffdc0008, 215 .start = 0xffdc0008,
122 .end = 0xffdc0013, 216 .end = 0xffdc0013,
123 .flags = IORESOURCE_MEM, 217 .flags = IORESOURCE_MEM,
@@ -139,15 +233,12 @@ static struct platform_device tmu3_device = {
139}; 233};
140 234
141static struct sh_timer_config tmu4_platform_data = { 235static struct sh_timer_config tmu4_platform_data = {
142 .name = "TMU4",
143 .channel_offset = 0x10, 236 .channel_offset = 0x10,
144 .timer_bit = 1, 237 .timer_bit = 1,
145 .clk = "tmu345_fck",
146}; 238};
147 239
148static struct resource tmu4_resources[] = { 240static struct resource tmu4_resources[] = {
149 [0] = { 241 [0] = {
150 .name = "TMU4",
151 .start = 0xffdc0014, 242 .start = 0xffdc0014,
152 .end = 0xffdc001f, 243 .end = 0xffdc001f,
153 .flags = IORESOURCE_MEM, 244 .flags = IORESOURCE_MEM,
@@ -169,15 +260,12 @@ static struct platform_device tmu4_device = {
169}; 260};
170 261
171static struct sh_timer_config tmu5_platform_data = { 262static struct sh_timer_config tmu5_platform_data = {
172 .name = "TMU5",
173 .channel_offset = 0x1c, 263 .channel_offset = 0x1c,
174 .timer_bit = 2, 264 .timer_bit = 2,
175 .clk = "tmu345_fck",
176}; 265};
177 266
178static struct resource tmu5_resources[] = { 267static struct resource tmu5_resources[] = {
179 [0] = { 268 [0] = {
180 .name = "TMU5",
181 .start = 0xffdc0020, 269 .start = 0xffdc0020,
182 .end = 0xffdc002b, 270 .end = 0xffdc002b,
183 .flags = IORESOURCE_MEM, 271 .flags = IORESOURCE_MEM,
@@ -198,76 +286,149 @@ static struct platform_device tmu5_device = {
198 .num_resources = ARRAY_SIZE(tmu5_resources), 286 .num_resources = ARRAY_SIZE(tmu5_resources),
199}; 287};
200 288
201static struct plat_sci_port sci_platform_data[] = { 289/* DMA */
290static const struct sh_dmae_channel sh7785_dmae0_channels[] = {
202 { 291 {
203 .mapbase = 0xffea0000, 292 .offset = 0,
204 .flags = UPF_BOOT_AUTOCONF, 293 .dmars = 0,
205 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 294 .dmars_bit = 0,
206 .scbrr_algo_id = SCBRR_ALGO_1,
207 .type = PORT_SCIF,
208 .irqs = { 40, 40, 40, 40 },
209 .clk = "scif_fck",
210 }, { 295 }, {
211 .mapbase = 0xffeb0000, 296 .offset = 0x10,
212 .flags = UPF_BOOT_AUTOCONF, 297 .dmars = 0,
213 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 298 .dmars_bit = 8,
214 .scbrr_algo_id = SCBRR_ALGO_1,
215 .type = PORT_SCIF,
216 .irqs = { 44, 44, 44, 44 },
217 .clk = "scif_fck",
218 }, { 299 }, {
219 .mapbase = 0xffec0000, 300 .offset = 0x20,
220 .flags = UPF_BOOT_AUTOCONF, 301 .dmars = 4,
221 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 302 .dmars_bit = 0,
222 .scbrr_algo_id = SCBRR_ALGO_1,
223 .type = PORT_SCIF,
224 .irqs = { 60, 60, 60, 60 },
225 .clk = "scif_fck",
226 }, { 303 }, {
227 .mapbase = 0xffed0000, 304 .offset = 0x30,
228 .flags = UPF_BOOT_AUTOCONF, 305 .dmars = 4,
229 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 306 .dmars_bit = 8,
230 .scbrr_algo_id = SCBRR_ALGO_1,
231 .type = PORT_SCIF,
232 .irqs = { 61, 61, 61, 61 },
233 .clk = "scif_fck",
234 }, { 307 }, {
235 .mapbase = 0xffee0000, 308 .offset = 0x50,
236 .flags = UPF_BOOT_AUTOCONF, 309 .dmars = 8,
237 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 310 .dmars_bit = 0,
238 .scbrr_algo_id = SCBRR_ALGO_1,
239 .type = PORT_SCIF,
240 .irqs = { 62, 62, 62, 62 },
241 .clk = "scif_fck",
242 }, { 311 }, {
243 .mapbase = 0xffef0000, 312 .offset = 0x60,
244 .flags = UPF_BOOT_AUTOCONF, 313 .dmars = 8,
245 .scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1, 314 .dmars_bit = 8,
246 .scbrr_algo_id = SCBRR_ALGO_1, 315 }
247 .type = PORT_SCIF, 316};
248 .irqs = { 63, 63, 63, 63 }, 317
249 .clk = "scif_fck", 318static const struct sh_dmae_channel sh7785_dmae1_channels[] = {
319 {
320 .offset = 0,
250 }, { 321 }, {
251 .flags = 0, 322 .offset = 0x10,
323 }, {
324 .offset = 0x20,
325 }, {
326 .offset = 0x30,
327 }, {
328 .offset = 0x50,
329 }, {
330 .offset = 0x60,
252 } 331 }
253}; 332};
254 333
255static struct platform_device sci_device = { 334static const unsigned int ts_shift[] = TS_SHIFT;
256 .name = "sh-sci", 335
257 .id = -1, 336static struct sh_dmae_pdata dma0_platform_data = {
337 .channel = sh7785_dmae0_channels,
338 .channel_num = ARRAY_SIZE(sh7785_dmae0_channels),
339 .ts_low_shift = CHCR_TS_LOW_SHIFT,
340 .ts_low_mask = CHCR_TS_LOW_MASK,
341 .ts_high_shift = CHCR_TS_HIGH_SHIFT,
342 .ts_high_mask = CHCR_TS_HIGH_MASK,
343 .ts_shift = ts_shift,
344 .ts_shift_num = ARRAY_SIZE(ts_shift),
345 .dmaor_init = DMAOR_INIT,
346};
347
348static struct sh_dmae_pdata dma1_platform_data = {
349 .channel = sh7785_dmae1_channels,
350 .channel_num = ARRAY_SIZE(sh7785_dmae1_channels),
351 .ts_low_shift = CHCR_TS_LOW_SHIFT,
352 .ts_low_mask = CHCR_TS_LOW_MASK,
353 .ts_high_shift = CHCR_TS_HIGH_SHIFT,
354 .ts_high_mask = CHCR_TS_HIGH_MASK,
355 .ts_shift = ts_shift,
356 .ts_shift_num = ARRAY_SIZE(ts_shift),
357 .dmaor_init = DMAOR_INIT,
358};
359
360static struct resource sh7785_dmae0_resources[] = {
361 [0] = {
362 /* Channel registers and DMAOR */
363 .start = 0xfc808020,
364 .end = 0xfc80808f,
365 .flags = IORESOURCE_MEM,
366 },
367 [1] = {
368 /* DMARSx */
369 .start = 0xfc809000,
370 .end = 0xfc80900b,
371 .flags = IORESOURCE_MEM,
372 },
373 {
374 /* Real DMA error IRQ is 39, and channel IRQs are 33-38 */
375 .start = 33,
376 .end = 33,
377 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
378 },
379};
380
381static struct resource sh7785_dmae1_resources[] = {
382 [0] = {
383 /* Channel registers and DMAOR */
384 .start = 0xfcc08020,
385 .end = 0xfcc0808f,
386 .flags = IORESOURCE_MEM,
387 },
388 /* DMAC1 has no DMARS */
389 {
390 /* Real DMA error IRQ is 58, and channel IRQs are 52-57 */
391 .start = 52,
392 .end = 52,
393 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_SHAREABLE,
394 },
395};
396
397static struct platform_device dma0_device = {
398 .name = "sh-dma-engine",
399 .id = 0,
400 .resource = sh7785_dmae0_resources,
401 .num_resources = ARRAY_SIZE(sh7785_dmae0_resources),
402 .dev = {
403 .platform_data = &dma0_platform_data,
404 },
405};
406
407static struct platform_device dma1_device = {
408 .name = "sh-dma-engine",
409 .id = 1,
410 .resource = sh7785_dmae1_resources,
411 .num_resources = ARRAY_SIZE(sh7785_dmae1_resources),
258 .dev = { 412 .dev = {
259 .platform_data = sci_platform_data, 413 .platform_data = &dma1_platform_data,
260 }, 414 },
261}; 415};
262 416
263static struct platform_device *sh7785_devices[] __initdata = { 417static struct platform_device *sh7785_devices[] __initdata = {
418 &scif0_device,
419 &scif1_device,
420 &scif2_device,
421 &scif3_device,
422 &scif4_device,
423 &scif5_device,
264 &tmu0_device, 424 &tmu0_device,
265 &tmu1_device, 425 &tmu1_device,
266 &tmu2_device, 426 &tmu2_device,
267 &tmu3_device, 427 &tmu3_device,
268 &tmu4_device, 428 &tmu4_device,
269 &tmu5_device, 429 &tmu5_device,
270 &sci_device, 430 &dma0_device,
431 &dma1_device,
271}; 432};
272 433
273static int __init sh7785_devices_setup(void) 434static int __init sh7785_devices_setup(void)
@@ -275,9 +436,15 @@ static int __init sh7785_devices_setup(void)
275 return platform_add_devices(sh7785_devices, 436 return platform_add_devices(sh7785_devices,
276 ARRAY_SIZE(sh7785_devices)); 437 ARRAY_SIZE(sh7785_devices));
277} 438}
278__initcall(sh7785_devices_setup); 439arch_initcall(sh7785_devices_setup);
279 440
280static struct platform_device *sh7785_early_devices[] __initdata = { 441static struct platform_device *sh7785_early_devices[] __initdata = {
442 &scif0_device,
443 &scif1_device,
444 &scif2_device,
445 &scif3_device,
446 &scif4_device,
447 &scif5_device,
281 &tmu0_device, 448 &tmu0_device,
282 &tmu1_device, 449 &tmu1_device,
283 &tmu2_device, 450 &tmu2_device,
@@ -482,17 +649,17 @@ static DECLARE_INTC_DESC(intc_desc_irl4567, "sh7785-irl4567", vectors_irl4567,
482void __init plat_irq_setup(void) 649void __init plat_irq_setup(void)
483{ 650{
484 /* disable IRQ3-0 + IRQ7-4 */ 651 /* disable IRQ3-0 + IRQ7-4 */
485 ctrl_outl(0xff000000, INTC_INTMSK0); 652 __raw_writel(0xff000000, INTC_INTMSK0);
486 653
487 /* disable IRL3-0 + IRL7-4 */ 654 /* disable IRL3-0 + IRL7-4 */
488 ctrl_outl(0xc0000000, INTC_INTMSK1); 655 __raw_writel(0xc0000000, INTC_INTMSK1);
489 ctrl_outl(0xfffefffe, INTC_INTMSK2); 656 __raw_writel(0xfffefffe, INTC_INTMSK2);
490 657
491 /* select IRL mode for IRL3-0 + IRL7-4 */ 658 /* select IRL mode for IRL3-0 + IRL7-4 */
492 ctrl_outl(ctrl_inl(INTC_ICR0) & ~0x00c00000, INTC_ICR0); 659 __raw_writel(__raw_readl(INTC_ICR0) & ~0x00c00000, INTC_ICR0);
493 660
494 /* disable holding function, ie enable "SH-4 Mode" */ 661 /* disable holding function, ie enable "SH-4 Mode" */
495 ctrl_outl(ctrl_inl(INTC_ICR0) | 0x00200000, INTC_ICR0); 662 __raw_writel(__raw_readl(INTC_ICR0) | 0x00200000, INTC_ICR0);
496 663
497 register_intc_controller(&intc_desc); 664 register_intc_controller(&intc_desc);
498} 665}
@@ -502,32 +669,32 @@ void __init plat_irq_setup_pins(int mode)
502 switch (mode) { 669 switch (mode) {
503 case IRQ_MODE_IRQ7654: 670 case IRQ_MODE_IRQ7654:
504 /* select IRQ mode for IRL7-4 */ 671 /* select IRQ mode for IRL7-4 */
505 ctrl_outl(ctrl_inl(INTC_ICR0) | 0x00400000, INTC_ICR0); 672 __raw_writel(__raw_readl(INTC_ICR0) | 0x00400000, INTC_ICR0);
506 register_intc_controller(&intc_desc_irq4567); 673 register_intc_controller(&intc_desc_irq4567);
507 break; 674 break;
508 case IRQ_MODE_IRQ3210: 675 case IRQ_MODE_IRQ3210:
509 /* select IRQ mode for IRL3-0 */ 676 /* select IRQ mode for IRL3-0 */
510 ctrl_outl(ctrl_inl(INTC_ICR0) | 0x00800000, INTC_ICR0); 677 __raw_writel(__raw_readl(INTC_ICR0) | 0x00800000, INTC_ICR0);
511 register_intc_controller(&intc_desc_irq0123); 678 register_intc_controller(&intc_desc_irq0123);
512 break; 679 break;
513 case IRQ_MODE_IRL7654: 680 case IRQ_MODE_IRL7654:
514 /* enable IRL7-4 but don't provide any masking */ 681 /* enable IRL7-4 but don't provide any masking */
515 ctrl_outl(0x40000000, INTC_INTMSKCLR1); 682 __raw_writel(0x40000000, INTC_INTMSKCLR1);
516 ctrl_outl(0x0000fffe, INTC_INTMSKCLR2); 683 __raw_writel(0x0000fffe, INTC_INTMSKCLR2);
517 break; 684 break;
518 case IRQ_MODE_IRL3210: 685 case IRQ_MODE_IRL3210:
519 /* enable IRL0-3 but don't provide any masking */ 686 /* enable IRL0-3 but don't provide any masking */
520 ctrl_outl(0x80000000, INTC_INTMSKCLR1); 687 __raw_writel(0x80000000, INTC_INTMSKCLR1);
521 ctrl_outl(0xfffe0000, INTC_INTMSKCLR2); 688 __raw_writel(0xfffe0000, INTC_INTMSKCLR2);
522 break; 689 break;
523 case IRQ_MODE_IRL7654_MASK: 690 case IRQ_MODE_IRL7654_MASK:
524 /* enable IRL7-4 and mask using cpu intc controller */ 691 /* enable IRL7-4 and mask using cpu intc controller */
525 ctrl_outl(0x40000000, INTC_INTMSKCLR1); 692 __raw_writel(0x40000000, INTC_INTMSKCLR1);
526 register_intc_controller(&intc_desc_irl4567); 693 register_intc_controller(&intc_desc_irl4567);
527 break; 694 break;
528 case IRQ_MODE_IRL3210_MASK: 695 case IRQ_MODE_IRL3210_MASK:
529 /* enable IRL0-3 and mask using cpu intc controller */ 696 /* enable IRL0-3 and mask using cpu intc controller */
530 ctrl_outl(0x80000000, INTC_INTMSKCLR1); 697 __raw_writel(0x80000000, INTC_INTMSKCLR1);
531 register_intc_controller(&intc_desc_irl0123); 698 register_intc_controller(&intc_desc_irl0123);
532 break; 699 break;
533 default: 700 default: