4 * Copyright (C) 2006 Yoshinori Sato
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
10 #include <linux/platform_device.h>
11 #include <linux/init.h>
12 #include <linux/serial.h>
15 static struct plat_sci_port sci_platform_data[] = {
17 .mapbase = 0xf8400000,
18 .flags = UPF_BOOT_AUTOCONF,
20 .irqs = { 88, 89, 91, 90},
22 .mapbase = 0xf8410000,
23 .flags = UPF_BOOT_AUTOCONF,
25 .irqs = { 92, 93, 95, 94},
27 .mapbase = 0xf8420000,
28 .flags = UPF_BOOT_AUTOCONF,
30 .irqs = { 96, 97, 99, 98},
36 static struct platform_device sci_device = {
40 .platform_data = sci_platform_data,
44 static struct platform_device *sh7619_devices[] __initdata = {
48 static int __init sh7619_devices_setup(void)
50 return platform_add_devices(sh7619_devices,
51 ARRAY_SIZE(sh7619_devices));
53 __initcall(sh7619_devices_setup);
55 #define INTC_IPRC 0xf8080000UL
56 #define INTC_IPRD 0xf8080002UL
60 #define SCIF0_ERI_IRQ 88
61 #define SCIF0_RXI_IRQ 89
62 #define SCIF0_BRI_IRQ 90
63 #define SCIF0_TXI_IRQ 91
65 #define SCIF1_ERI_IRQ 92
66 #define SCIF1_RXI_IRQ 93
67 #define SCIF1_BRI_IRQ 94
68 #define SCIF1_TXI_IRQ 95
70 #define SCIF2_BRI_IRQ 96
71 #define SCIF2_ERI_IRQ 97
72 #define SCIF2_RXI_IRQ 98
73 #define SCIF2_TXI_IRQ 99
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 },
91 void __init init_IRQ_ipr(void)
93 make_ipr_irq(sh7619_ipr_map, ARRAY_SIZE(sh7619_ipr_map));