sh: IPR IRQ updates for SH7619/SH7206.
[deliverable/linux.git] / arch / sh / kernel / cpu / sh2 / setup-sh7619.c
1 /*
2 * SH7619 Setup
3 *
4 * Copyright (C) 2006 Yoshinori Sato
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 */
10 #include <linux/platform_device.h>
11 #include <linux/init.h>
12 #include <linux/serial.h>
13 #include <asm/sci.h>
14
15 static struct plat_sci_port sci_platform_data[] = {
16 {
17 .mapbase = 0xf8400000,
18 .flags = UPF_BOOT_AUTOCONF,
19 .type = PORT_SCIF,
20 .irqs = { 88, 89, 91, 90},
21 }, {
22 .mapbase = 0xf8410000,
23 .flags = UPF_BOOT_AUTOCONF,
24 .type = PORT_SCIF,
25 .irqs = { 92, 93, 95, 94},
26 }, {
27 .mapbase = 0xf8420000,
28 .flags = UPF_BOOT_AUTOCONF,
29 .type = PORT_SCIF,
30 .irqs = { 96, 97, 99, 98},
31 }, {
32 .flags = 0,
33 }
34 };
35
36 static struct platform_device sci_device = {
37 .name = "sh-sci",
38 .id = -1,
39 .dev = {
40 .platform_data = sci_platform_data,
41 },
42 };
43
44 static struct platform_device *sh7619_devices[] __initdata = {
45 &sci_device,
46 };
47
48 static int __init sh7619_devices_setup(void)
49 {
50 return platform_add_devices(sh7619_devices,
51 ARRAY_SIZE(sh7619_devices));
52 }
53 __initcall(sh7619_devices_setup);
54
55 #define INTC_IPRC 0xf8080000UL
56 #define INTC_IPRD 0xf8080002UL
57
58 #define CMI0_IRQ 86
59
60 #define SCIF0_ERI_IRQ 88
61 #define SCIF0_RXI_IRQ 89
62 #define SCIF0_BRI_IRQ 90
63 #define SCIF0_TXI_IRQ 91
64
65 #define SCIF1_ERI_IRQ 92
66 #define SCIF1_RXI_IRQ 93
67 #define SCIF1_BRI_IRQ 94
68 #define SCIF1_TXI_IRQ 95
69
70 #define SCIF2_BRI_IRQ 96
71 #define SCIF2_ERI_IRQ 97
72 #define SCIF2_RXI_IRQ 98
73 #define SCIF2_TXI_IRQ 99
74
75 static struct ipr_data sh7619_ipr_map[] = {
76 { CMI0_IRQ, INTC_IPRC, 1, 2 },
77 { SCIF0_ERI_IRQ, INTC_IPRD, 3, 3 },
78 { SCIF0_RXI_IRQ, INTC_IPRD, 3, 3 },
79 { SCIF0_BRI_IRQ, INTC_IPRD, 3, 3 },
80 { SCIF0_TXI_IRQ, INTC_IPRD, 3, 3 },
81 { SCIF1_ERI_IRQ, INTC_IPRD, 2, 3 },
82 { SCIF1_RXI_IRQ, INTC_IPRD, 2, 3 },
83 { SCIF1_BRI_IRQ, INTC_IPRD, 2, 3 },
84 { SCIF1_TXI_IRQ, INTC_IPRD, 2, 3 },
85 { SCIF2_ERI_IRQ, INTC_IPRD, 1, 3 },
86 { SCIF2_RXI_IRQ, INTC_IPRD, 1, 3 },
87 { SCIF2_BRI_IRQ, INTC_IPRD, 1, 3 },
88 { SCIF2_TXI_IRQ, INTC_IPRD, 1, 3 },
89 };
90
91 void __init init_IRQ_ipr(void)
92 {
93 make_ipr_irq(sh7619_ipr_map, ARRAY_SIZE(sh7619_ipr_map));
94 }
This page took 0.035023 seconds and 5 git commands to generate.