1 /* linux/arch/arm/plat-s5p/dev-uart.c
3 * Copyright (c) 2009 Samsung Electronics Co., Ltd.
4 * http://www.samsung.com/
6 * Base S5P UART resource and device definitions
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.
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>
19 #include <asm/mach/arch.h>
20 #include <asm/mach/irq.h>
21 #include <mach/hardware.h>
24 #include <plat/devs.h>
26 /* Serial port registrations */
28 static struct resource s5p_uart0_resource
[] = {
30 .start
= S5P_PA_UART0
,
31 .end
= S5P_PA_UART0
+ S5P_SZ_UART
,
32 .flags
= IORESOURCE_MEM
,
35 .start
= IRQ_S5P_UART_RX0
,
36 .end
= IRQ_S5P_UART_RX0
,
37 .flags
= IORESOURCE_IRQ
,
40 .start
= IRQ_S5P_UART_TX0
,
41 .end
= IRQ_S5P_UART_TX0
,
42 .flags
= IORESOURCE_IRQ
,
45 .start
= IRQ_S5P_UART_ERR0
,
46 .end
= IRQ_S5P_UART_ERR0
,
47 .flags
= IORESOURCE_IRQ
,
51 static struct resource s5p_uart1_resource
[] = {
53 .start
= S5P_PA_UART1
,
54 .end
= S5P_PA_UART1
+ S5P_SZ_UART
,
55 .flags
= IORESOURCE_MEM
,
58 .start
= IRQ_S5P_UART_RX1
,
59 .end
= IRQ_S5P_UART_RX1
,
60 .flags
= IORESOURCE_IRQ
,
63 .start
= IRQ_S5P_UART_TX1
,
64 .end
= IRQ_S5P_UART_TX1
,
65 .flags
= IORESOURCE_IRQ
,
68 .start
= IRQ_S5P_UART_ERR1
,
69 .end
= IRQ_S5P_UART_ERR1
,
70 .flags
= IORESOURCE_IRQ
,
74 static struct resource s5p_uart2_resource
[] = {
76 .start
= S5P_PA_UART2
,
77 .end
= S5P_PA_UART2
+ S5P_SZ_UART
,
78 .flags
= IORESOURCE_MEM
,
81 .start
= IRQ_S5P_UART_RX2
,
82 .end
= IRQ_S5P_UART_RX2
,
83 .flags
= IORESOURCE_IRQ
,
86 .start
= IRQ_S5P_UART_TX2
,
87 .end
= IRQ_S5P_UART_TX2
,
88 .flags
= IORESOURCE_IRQ
,
91 .start
= IRQ_S5P_UART_ERR2
,
92 .end
= IRQ_S5P_UART_ERR2
,
93 .flags
= IORESOURCE_IRQ
,
97 static struct resource s5p_uart3_resource
[] = {
98 #if CONFIG_SERIAL_SAMSUNG_UARTS > 3
100 .start
= S5P_PA_UART3
,
101 .end
= S5P_PA_UART3
+ S5P_SZ_UART
,
102 .flags
= IORESOURCE_MEM
,
105 .start
= IRQ_S5P_UART_RX3
,
106 .end
= IRQ_S5P_UART_RX3
,
107 .flags
= IORESOURCE_IRQ
,
110 .start
= IRQ_S5P_UART_TX3
,
111 .end
= IRQ_S5P_UART_TX3
,
112 .flags
= IORESOURCE_IRQ
,
115 .start
= IRQ_S5P_UART_ERR3
,
116 .end
= IRQ_S5P_UART_ERR3
,
117 .flags
= IORESOURCE_IRQ
,
122 struct s3c24xx_uart_resources s5p_uart_resources
[] __initdata
= {
124 .resources
= s5p_uart0_resource
,
125 .nr_resources
= ARRAY_SIZE(s5p_uart0_resource
),
128 .resources
= s5p_uart1_resource
,
129 .nr_resources
= ARRAY_SIZE(s5p_uart1_resource
),
132 .resources
= s5p_uart2_resource
,
133 .nr_resources
= ARRAY_SIZE(s5p_uart2_resource
),
136 .resources
= s5p_uart3_resource
,
137 .nr_resources
= ARRAY_SIZE(s5p_uart3_resource
),