diff options
Diffstat (limited to 'arch/arm/mach-s3c2410/s3c2410.c')
-rw-r--r-- | arch/arm/mach-s3c2410/s3c2410.c | 85 |
1 files changed, 3 insertions, 82 deletions
diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c index 0a2013a76549..0852e87a79c4 100644 --- a/arch/arm/mach-s3c2410/s3c2410.c +++ b/arch/arm/mach-s3c2410/s3c2410.c | |||
@@ -42,6 +42,7 @@ | |||
42 | 42 | ||
43 | #include "s3c2410.h" | 43 | #include "s3c2410.h" |
44 | #include "cpu.h" | 44 | #include "cpu.h" |
45 | #include "devs.h" | ||
45 | #include "clock.h" | 46 | #include "clock.h" |
46 | 47 | ||
47 | /* Initial IO mappings */ | 48 | /* Initial IO mappings */ |
@@ -55,93 +56,13 @@ static struct map_desc s3c2410_iodesc[] __initdata = { | |||
55 | IODESC_ENT(WATCHDOG), | 56 | IODESC_ENT(WATCHDOG), |
56 | }; | 57 | }; |
57 | 58 | ||
58 | static struct resource s3c_uart0_resource[] = { | ||
59 | [0] = { | ||
60 | .start = S3C2410_PA_UART0, | ||
61 | .end = S3C2410_PA_UART0 + 0x3fff, | ||
62 | .flags = IORESOURCE_MEM, | ||
63 | }, | ||
64 | [1] = { | ||
65 | .start = IRQ_S3CUART_RX0, | ||
66 | .end = IRQ_S3CUART_ERR0, | ||
67 | .flags = IORESOURCE_IRQ, | ||
68 | } | ||
69 | |||
70 | }; | ||
71 | |||
72 | static struct resource s3c_uart1_resource[] = { | ||
73 | [0] = { | ||
74 | .start = S3C2410_PA_UART1, | ||
75 | .end = S3C2410_PA_UART1 + 0x3fff, | ||
76 | .flags = IORESOURCE_MEM, | ||
77 | }, | ||
78 | [1] = { | ||
79 | .start = IRQ_S3CUART_RX1, | ||
80 | .end = IRQ_S3CUART_ERR1, | ||
81 | .flags = IORESOURCE_IRQ, | ||
82 | } | ||
83 | }; | ||
84 | |||
85 | static struct resource s3c_uart2_resource[] = { | ||
86 | [0] = { | ||
87 | .start = S3C2410_PA_UART2, | ||
88 | .end = S3C2410_PA_UART2 + 0x3fff, | ||
89 | .flags = IORESOURCE_MEM, | ||
90 | }, | ||
91 | [1] = { | ||
92 | .start = IRQ_S3CUART_RX2, | ||
93 | .end = IRQ_S3CUART_ERR2, | ||
94 | .flags = IORESOURCE_IRQ, | ||
95 | } | ||
96 | }; | ||
97 | |||
98 | /* our uart devices */ | 59 | /* our uart devices */ |
99 | 60 | ||
100 | static struct platform_device s3c_uart0 = { | ||
101 | .name = "s3c2410-uart", | ||
102 | .id = 0, | ||
103 | .num_resources = ARRAY_SIZE(s3c_uart0_resource), | ||
104 | .resource = s3c_uart0_resource, | ||
105 | }; | ||
106 | |||
107 | |||
108 | static struct platform_device s3c_uart1 = { | ||
109 | .name = "s3c2410-uart", | ||
110 | .id = 1, | ||
111 | .num_resources = ARRAY_SIZE(s3c_uart1_resource), | ||
112 | .resource = s3c_uart1_resource, | ||
113 | }; | ||
114 | |||
115 | static struct platform_device s3c_uart2 = { | ||
116 | .name = "s3c2410-uart", | ||
117 | .id = 2, | ||
118 | .num_resources = ARRAY_SIZE(s3c_uart2_resource), | ||
119 | .resource = s3c_uart2_resource, | ||
120 | }; | ||
121 | |||
122 | static struct platform_device *uart_devices[] __initdata = { | ||
123 | &s3c_uart0, | ||
124 | &s3c_uart1, | ||
125 | &s3c_uart2 | ||
126 | }; | ||
127 | |||
128 | static int s3c2410_uart_count = 0; | ||
129 | |||
130 | /* uart registration process */ | 61 | /* uart registration process */ |
131 | 62 | ||
132 | void __init s3c2410_init_uarts(struct s3c2410_uartcfg *cfg, int no) | 63 | void __init s3c2410_init_uarts(struct s3c2410_uartcfg *cfg, int no) |
133 | { | 64 | { |
134 | struct platform_device *platdev; | 65 | s3c24xx_init_uartdevs("s3c2410-uart", s3c2410_uart_resources, cfg, no); |
135 | int uart; | ||
136 | |||
137 | for (uart = 0; uart < no; uart++, cfg++) { | ||
138 | platdev = uart_devices[cfg->hwport]; | ||
139 | |||
140 | s3c24xx_uart_devs[uart] = platdev; | ||
141 | platdev->dev.platform_data = cfg; | ||
142 | } | ||
143 | |||
144 | s3c2410_uart_count = uart; | ||
145 | } | 66 | } |
146 | 67 | ||
147 | /* s3c2410_map_io | 68 | /* s3c2410_map_io |
@@ -193,5 +114,5 @@ int __init s3c2410_init(void) | |||
193 | { | 114 | { |
194 | printk("S3C2410: Initialising architecture\n"); | 115 | printk("S3C2410: Initialising architecture\n"); |
195 | 116 | ||
196 | return platform_add_devices(s3c24xx_uart_devs, s3c2410_uart_count); | 117 | return 0; |
197 | } | 118 | } |