• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/arm/plat-s5p/
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#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
122struct 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};
140