]> git.karo-electronics.de Git - mv-sheeva.git/blob - arch/arm/plat-s5p/dev-uart.c
Merge branch 'kvm-updates/2.6.36' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[mv-sheeva.git] / arch / arm / plat-s5p / dev-uart.c
1 /* linux/arch/arm/plat-s5p/dev-uart.c
2  *
3  * Copyright (c) 2009 Samsung Electronics Co., Ltd.
4  *              http://www.samsung.com/
5  *
6  * Base S5P UART resource and device definitions
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11 */
12
13 #include <linux/kernel.h>
14 #include <linux/types.h>
15 #include <linux/interrupt.h>
16 #include <linux/list.h>
17 #include <linux/platform_device.h>
18
19 #include <asm/mach/arch.h>
20 #include <asm/mach/irq.h>
21 #include <mach/hardware.h>
22 #include <mach/map.h>
23
24 #include <plat/devs.h>
25
26  /* Serial port registrations */
27
28 static struct resource s5p_uart0_resource[] = {
29         [0] = {
30                 .start  = S5P_PA_UART0,
31                 .end    = S5P_PA_UART0 + S5P_SZ_UART,
32                 .flags  = IORESOURCE_MEM,
33         },
34         [1] = {
35                 .start  = IRQ_S5P_UART_RX0,
36                 .end    = IRQ_S5P_UART_RX0,
37                 .flags  = IORESOURCE_IRQ,
38         },
39         [2] = {
40                 .start  = IRQ_S5P_UART_TX0,
41                 .end    = IRQ_S5P_UART_TX0,
42                 .flags  = IORESOURCE_IRQ,
43         },
44         [3] = {
45                 .start  = IRQ_S5P_UART_ERR0,
46                 .end    = IRQ_S5P_UART_ERR0,
47                 .flags  = IORESOURCE_IRQ,
48         }
49 };
50
51 static struct resource s5p_uart1_resource[] = {
52         [0] = {
53                 .start  = S5P_PA_UART1,
54                 .end    = S5P_PA_UART1 + S5P_SZ_UART,
55                 .flags  = IORESOURCE_MEM,
56         },
57         [1] = {
58                 .start  = IRQ_S5P_UART_RX1,
59                 .end    = IRQ_S5P_UART_RX1,
60                 .flags  = IORESOURCE_IRQ,
61         },
62         [2] = {
63                 .start  = IRQ_S5P_UART_TX1,
64                 .end    = IRQ_S5P_UART_TX1,
65                 .flags  = IORESOURCE_IRQ,
66         },
67         [3] = {
68                 .start  = IRQ_S5P_UART_ERR1,
69                 .end    = IRQ_S5P_UART_ERR1,
70                 .flags  = IORESOURCE_IRQ,
71         },
72 };
73
74 static struct resource s5p_uart2_resource[] = {
75         [0] = {
76                 .start  = S5P_PA_UART2,
77                 .end    = S5P_PA_UART2 + S5P_SZ_UART,
78                 .flags  = IORESOURCE_MEM,
79         },
80         [1] = {
81                 .start  = IRQ_S5P_UART_RX2,
82                 .end    = IRQ_S5P_UART_RX2,
83                 .flags  = IORESOURCE_IRQ,
84         },
85         [2] = {
86                 .start  = IRQ_S5P_UART_TX2,
87                 .end    = IRQ_S5P_UART_TX2,
88                 .flags  = IORESOURCE_IRQ,
89         },
90         [3] = {
91                 .start  = IRQ_S5P_UART_ERR2,
92                 .end    = IRQ_S5P_UART_ERR2,
93                 .flags  = IORESOURCE_IRQ,
94         },
95 };
96
97 static struct resource s5p_uart3_resource[] = {
98 #if CONFIG_SERIAL_SAMSUNG_UARTS > 3
99         [0] = {
100                 .start  = S5P_PA_UART3,
101                 .end    = S5P_PA_UART3 + S5P_SZ_UART,
102                 .flags  = IORESOURCE_MEM,
103         },
104         [1] = {
105                 .start  = IRQ_S5P_UART_RX3,
106                 .end    = IRQ_S5P_UART_RX3,
107                 .flags  = IORESOURCE_IRQ,
108         },
109         [2] = {
110                 .start  = IRQ_S5P_UART_TX3,
111                 .end    = IRQ_S5P_UART_TX3,
112                 .flags  = IORESOURCE_IRQ,
113         },
114         [3] = {
115                 .start  = IRQ_S5P_UART_ERR3,
116                 .end    = IRQ_S5P_UART_ERR3,
117                 .flags  = IORESOURCE_IRQ,
118         },
119 #endif
120 };
121
122 struct s3c24xx_uart_resources s5p_uart_resources[] __initdata = {
123         [0] = {
124                 .resources      = s5p_uart0_resource,
125                 .nr_resources   = ARRAY_SIZE(s5p_uart0_resource),
126         },
127         [1] = {
128                 .resources      = s5p_uart1_resource,
129                 .nr_resources   = ARRAY_SIZE(s5p_uart1_resource),
130         },
131         [2] = {
132                 .resources      = s5p_uart2_resource,
133                 .nr_resources   = ARRAY_SIZE(s5p_uart2_resource),
134         },
135         [3] = {
136                 .resources      = s5p_uart3_resource,
137                 .nr_resources   = ARRAY_SIZE(s5p_uart3_resource),
138         },
139 };