sh: shmin updates.
[linux/fpc-iii.git] / arch / sh / kernel / cpu / sh3 / setup-sh7709.c
blobdc9b211cf87f75dc00de23f3f99b3b30c23daae7
1 /*
2 * SH7707/SH7709 Setup
4 * Copyright (C) 2006 Paul Mundt
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>
15 static struct plat_sci_port sci_platform_data[] = {
17 .mapbase = 0xfffffe80,
18 .flags = UPF_BOOT_AUTOCONF,
19 .type = PORT_SCI,
20 .irqs = { 23, 24, 25, 0 },
21 }, {
22 .mapbase = 0xa4000150,
23 .flags = UPF_BOOT_AUTOCONF,
24 .type = PORT_SCIF,
25 .irqs = { 56, 57, 59, 58 },
26 }, {
27 .mapbase = 0xa4000140,
28 .flags = UPF_BOOT_AUTOCONF,
29 .type = PORT_IRDA,
30 .irqs = { 52, 53, 55, 54 },
31 }, {
32 .flags = 0,
36 static struct platform_device sci_device = {
37 .name = "sh-sci",
38 .id = -1,
39 .dev = {
40 .platform_data = sci_platform_data,
44 static struct platform_device *sh7709_devices[] __initdata = {
45 &sci_device,
48 static int __init sh7709_devices_setup(void)
50 return platform_add_devices(sh7709_devices,
51 ARRAY_SIZE(sh7709_devices));
53 __initcall(sh7709_devices_setup);
55 #define IPRx(A,N) .addr=A, .shift=0*N*-1
56 #define IPRA(N) IPRx(0xfffffee2UL,N)
57 #define IPRB(N) IPRx(0xfffffee4UL,N)
58 #define IPRE(N) IPRx(0xa400001aUL,N)
60 static struct ipr_data sh7709_ipr_map[] = {
61 [16] = { IPRA(15-12), 2 }, /* TMU TUNI0 */
62 [17] = { IPRA(11-8), 4 }, /* TMU TUNI1 */
63 [22] = { IPRA(3-0), 2 }, /* RTC CUI */
64 [23 ... 26] = { IPRB(7-4), 3 }, /* SCI */
65 [27] = { IPRB(15-12), 2 }, /* WDT ITI */
66 [48 ... 51] = { IPRE(15-12), 7 }, /* DMA */
67 [52 ... 55] = { IPRE(11-8), 3 }, /* IRDA */
68 [56 ... 59] = { IPRE(7-4), 3 }, /* SCIF */
71 void __init init_IRQ_ipr()
73 make_ipr_irq(sh7709_ipr_map, ARRAY_SIZE(sh7709_ipr_map));