blob: c681b99eda08e2bfa957e9ff2dd4f321118b51cb [file] [log] [blame]
Ben Dooks0241cbb2008-10-21 14:06:46 +01001/* linux/arch/arm/plat-s3c64xx/dev-uart.c
2 *
3 * Copyright 2008 Openmoko, Inc.
4 * Copyright 2008 Simtec Electronics
5 * Ben Dooks <ben@simtec.co.uk>
6 * http://armlinux.simtec.co.uk/
7 *
8 * Base S3C64XX UART resource and device definitions
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 *
14*/
15
16#include <linux/kernel.h>
17#include <linux/types.h>
18#include <linux/interrupt.h>
19#include <linux/list.h>
20#include <linux/platform_device.h>
21
22#include <asm/mach/arch.h>
23#include <asm/mach/irq.h>
24#include <mach/hardware.h>
25#include <mach/map.h>
26
27#include <plat/devs.h>
28
29/* Serial port registrations */
30
31/* 64xx uarts are closer together */
32
33static struct resource s3c64xx_uart0_resource[] = {
34 [0] = {
35 .start = S3C_PA_UART0,
36 .end = S3C_PA_UART0 + 0x100,
37 .flags = IORESOURCE_MEM,
38 },
39 [1] = {
Thomas Abraham2a8d7bd2011-08-10 15:51:20 +053040 .start = IRQ_UART0,
41 .end = IRQ_UART0,
Ben Dooks0241cbb2008-10-21 14:06:46 +010042 .flags = IORESOURCE_IRQ,
43 },
Ben Dooks0241cbb2008-10-21 14:06:46 +010044};
45
46static struct resource s3c64xx_uart1_resource[] = {
47 [0] = {
48 .start = S3C_PA_UART1,
49 .end = S3C_PA_UART1 + 0x100,
50 .flags = IORESOURCE_MEM,
51 },
52 [1] = {
Thomas Abraham2a8d7bd2011-08-10 15:51:20 +053053 .start = IRQ_UART1,
54 .end = IRQ_UART1,
Ben Dooks0241cbb2008-10-21 14:06:46 +010055 .flags = IORESOURCE_IRQ,
56 },
57};
58
59static struct resource s3c6xx_uart2_resource[] = {
60 [0] = {
61 .start = S3C_PA_UART2,
62 .end = S3C_PA_UART2 + 0x100,
63 .flags = IORESOURCE_MEM,
64 },
65 [1] = {
Thomas Abraham2a8d7bd2011-08-10 15:51:20 +053066 .start = IRQ_UART2,
67 .end = IRQ_UART2,
Ben Dooks0241cbb2008-10-21 14:06:46 +010068 .flags = IORESOURCE_IRQ,
69 },
70};
71
72static struct resource s3c64xx_uart3_resource[] = {
73 [0] = {
74 .start = S3C_PA_UART3,
75 .end = S3C_PA_UART3 + 0x100,
76 .flags = IORESOURCE_MEM,
77 },
78 [1] = {
Thomas Abraham2a8d7bd2011-08-10 15:51:20 +053079 .start = IRQ_UART3,
80 .end = IRQ_UART3,
Ben Dooks0241cbb2008-10-21 14:06:46 +010081 .flags = IORESOURCE_IRQ,
82 },
83};
84
85
86struct s3c24xx_uart_resources s3c64xx_uart_resources[] __initdata = {
87 [0] = {
88 .resources = s3c64xx_uart0_resource,
89 .nr_resources = ARRAY_SIZE(s3c64xx_uart0_resource),
90 },
91 [1] = {
92 .resources = s3c64xx_uart1_resource,
93 .nr_resources = ARRAY_SIZE(s3c64xx_uart1_resource),
94 },
95 [2] = {
96 .resources = s3c6xx_uart2_resource,
97 .nr_resources = ARRAY_SIZE(s3c6xx_uart2_resource),
98 },
99 [3] = {
100 .resources = s3c64xx_uart3_resource,
101 .nr_resources = ARRAY_SIZE(s3c64xx_uart3_resource),
102 },
103};