ARM: S5P6440: Add serial port support
[deliverable/linux.git] / arch / arm / plat-s5p / dev-uart.c
CommitLineData
501dae90
KK
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
28static 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
51static 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
74static 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
97static struct resource s5p_uart3_resource[] = {
98 [0] = {
99 .start = S5P_PA_UART3,
100 .end = S5P_PA_UART3 + S5P_SZ_UART,
101 .flags = IORESOURCE_MEM,
102 },
103 [1] = {
104 .start = IRQ_S5P_UART_RX3,
105 .end = IRQ_S5P_UART_RX3,
106 .flags = IORESOURCE_IRQ,
107 },
108 [2] = {
109 .start = IRQ_S5P_UART_TX3,
110 .end = IRQ_S5P_UART_TX3,
111 .flags = IORESOURCE_IRQ,
112 },
113 [3] = {
114 .start = IRQ_S5P_UART_ERR3,
115 .end = IRQ_S5P_UART_ERR3,
116 .flags = IORESOURCE_IRQ,
117 },
118};
119
120struct s3c24xx_uart_resources s5p_uart_resources[] __initdata = {
121 [0] = {
122 .resources = s5p_uart0_resource,
123 .nr_resources = ARRAY_SIZE(s5p_uart0_resource),
124 },
125 [1] = {
126 .resources = s5p_uart1_resource,
127 .nr_resources = ARRAY_SIZE(s5p_uart1_resource),
128 },
129 [2] = {
130 .resources = s5p_uart2_resource,
131 .nr_resources = ARRAY_SIZE(s5p_uart2_resource),
132 },
133 [3] = {
134 .resources = s5p_uart3_resource,
135 .nr_resources = ARRAY_SIZE(s5p_uart3_resource),
136 },
137};
138
139/* uart devices */
140
141static struct platform_device s5p_uart_device0 = {
142 .id = 0,
143};
144
145static struct platform_device s5p_uart_device1 = {
146 .id = 1,
147};
148
149static struct platform_device s5p_uart_device2 = {
150 .id = 2,
151};
152
153static struct platform_device s5p_uart_device3 = {
154 .id = 3,
155};
156
157struct platform_device *s3c24xx_uart_src[4] = {
158 &s5p_uart_device0,
159 &s5p_uart_device1,
160 &s5p_uart_device2,
161 &s5p_uart_device3,
162};
163
164struct platform_device *s3c24xx_uart_devs[4] = {
165};
This page took 0.030759 seconds and 5 git commands to generate.