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 static struct ipr_data ipr_irq_table
[] = {
56 { 86, 0, 4, 2 }, /* CMI0 */
57 { 88, 1, 12, 3 }, /* SCIF0_ERI */
58 { 89, 1, 12, 3 }, /* SCIF0_RXI */
59 { 90, 1, 12, 3 }, /* SCIF0_BRI */
60 { 91, 1, 12, 3 }, /* SCIF0_TXI */
61 { 92, 1, 8, 3 }, /* SCIF1_ERI */
62 { 93, 1, 8, 3 }, /* SCIF1_RXI */
63 { 94, 1, 8, 3 }, /* SCIF1_BRI */
64 { 95, 1, 8, 3 }, /* SCIF1_TXI */
65 { 96, 1, 4, 3 }, /* SCIF2_ERI */
66 { 97, 1, 4, 3 }, /* SCIF2_RXI */
67 { 98, 1, 4, 3 }, /* SCIF2_BRI */
68 { 99, 1, 4, 3 }, /* SCIF2_TXI */
71 static unsigned long ipr_offsets
[] = {
72 0xf8080000, /* IPRC */
73 0xf8080002, /* IPRD */
74 0xf8080004, /* IPRE */
75 0xf8080006, /* IPRF */
76 0xf8080008, /* IPRG */
79 static struct ipr_desc ipr_irq_desc
= {
80 .ipr_offsets
= ipr_offsets
,
81 .nr_offsets
= ARRAY_SIZE(ipr_offsets
),
83 .ipr_data
= ipr_irq_table
,
84 .nr_irqs
= ARRAY_SIZE(ipr_irq_table
),
91 void __init
plat_irq_setup(void)
93 register_ipr_controller(&ipr_irq_desc
);