aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@uclinux.org>2011-12-23 10:17:10 -0500
committerGreg Ungerer <gerg@uclinux.org>2012-03-04 18:43:08 -0500
commit0d2fe946474196e586e492d9e9b381e184c774ea (patch)
tree529ce9690a63d2f2de4e8515b17be0814e39e206
parentb9a0c3f88ef6163f56662d0121d4932b457568bb (diff)
m68knommu: merge common ColdFire UART platform setup code
The ColdFire UART is common to all ColdFire CPU's. No need to duplicate its platform setup code for every CPU family member. Merge all the setup code into a single shared file. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
-rw-r--r--arch/m68k/platform/5206/config.c34
-rw-r--r--arch/m68k/platform/520x/config.c23
-rw-r--r--arch/m68k/platform/523x/config.c23
-rw-r--r--arch/m68k/platform/5249/config.c19
-rw-r--r--arch/m68k/platform/5272/config.c19
-rw-r--r--arch/m68k/platform/527x/config.c23
-rw-r--r--arch/m68k/platform/528x/config.c23
-rw-r--r--arch/m68k/platform/5307/config.c34
-rw-r--r--arch/m68k/platform/532x/config.c23
-rw-r--r--arch/m68k/platform/5407/config.c34
-rw-r--r--arch/m68k/platform/54xx/config.c43
-rw-r--r--arch/m68k/platform/coldfire/Makefile2
-rw-r--r--arch/m68k/platform/coldfire/device.c60
13 files changed, 61 insertions, 299 deletions
diff --git a/arch/m68k/platform/5206/config.c b/arch/m68k/platform/5206/config.c
index a8ba8106cbc..fdef300a152 100644
--- a/arch/m68k/platform/5206/config.c
+++ b/arch/m68k/platform/5206/config.c
@@ -20,30 +20,6 @@
20 20
21/***************************************************************************/ 21/***************************************************************************/
22 22
23static struct mcf_platform_uart m5206_uart_platform[] = {
24 {
25 .mapbase = MCFUART_BASE0,
26 .irq = MCF_IRQ_UART0,
27 },
28 {
29 .mapbase = MCFUART_BASE1,
30 .irq = MCF_IRQ_UART1,
31 },
32 { },
33};
34
35static struct platform_device m5206_uart = {
36 .name = "mcfuart",
37 .id = 0,
38 .dev.platform_data = m5206_uart_platform,
39};
40
41static struct platform_device *m5206_devices[] __initdata = {
42 &m5206_uart,
43};
44
45/***************************************************************************/
46
47static void __init m5206_uarts_init(void) 23static void __init m5206_uarts_init(void)
48{ 24{
49 /* UART0 interrupt setup */ 25 /* UART0 interrupt setup */
@@ -107,13 +83,3 @@ void __init config_BSP(char *commandp, int size)
107} 83}
108 84
109/***************************************************************************/ 85/***************************************************************************/
110
111static int __init init_BSP(void)
112{
113 platform_add_devices(m5206_devices, ARRAY_SIZE(m5206_devices));
114 return 0;
115}
116
117arch_initcall(init_BSP);
118
119/***************************************************************************/
diff --git a/arch/m68k/platform/520x/config.c b/arch/m68k/platform/520x/config.c
index fe203bd7a56..3af39726211 100644
--- a/arch/m68k/platform/520x/config.c
+++ b/arch/m68k/platform/520x/config.c
@@ -25,28 +25,6 @@
25 25
26/***************************************************************************/ 26/***************************************************************************/
27 27
28static struct mcf_platform_uart m520x_uart_platform[] = {
29 {
30 .mapbase = MCFUART_BASE0,
31 .irq = MCF_IRQ_UART0,
32 },
33 {
34 .mapbase = MCFUART_BASE1,
35 .irq = MCF_IRQ_UART1,
36 },
37 {
38 .mapbase = MCFUART_BASE2,
39 .irq = MCF_IRQ_UART2,
40 },
41 { },
42};
43
44static struct platform_device m520x_uart = {
45 .name = "mcfuart",
46 .id = 0,
47 .dev.platform_data = m520x_uart_platform,
48};
49
50static struct resource m520x_fec_resources[] = { 28static struct resource m520x_fec_resources[] = {
51 { 29 {
52 .start = MCFFEC_BASE, 30 .start = MCFFEC_BASE,
@@ -218,7 +196,6 @@ static void __init m520x_qspi_init(void)
218 196
219 197
220static struct platform_device *m520x_devices[] __initdata = { 198static struct platform_device *m520x_devices[] __initdata = {
221 &m520x_uart,
222 &m520x_fec, 199 &m520x_fec,
223#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 200#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
224 &m520x_qspi, 201 &m520x_qspi,
diff --git a/arch/m68k/platform/523x/config.c b/arch/m68k/platform/523x/config.c
index 49502a32efb..ef46009540e 100644
--- a/arch/m68k/platform/523x/config.c
+++ b/arch/m68k/platform/523x/config.c
@@ -26,28 +26,6 @@
26 26
27/***************************************************************************/ 27/***************************************************************************/
28 28
29static struct mcf_platform_uart m523x_uart_platform[] = {
30 {
31 .mapbase = MCFUART_BASE0,
32 .irq = MCF_IRQ_UART0,
33 },
34 {
35 .mapbase = MCFUART_BASE1,
36 .irq = MCF_IRQ_UART1,
37 },
38 {
39 .mapbase = MCFUART_BASE2,
40 .irq = MCF_IRQ_UART2,
41 },
42 { },
43};
44
45static struct platform_device m523x_uart = {
46 .name = "mcfuart",
47 .id = 0,
48 .dev.platform_data = m523x_uart_platform,
49};
50
51static struct resource m523x_fec_resources[] = { 29static struct resource m523x_fec_resources[] = {
52 { 30 {
53 .start = MCFFEC_BASE, 31 .start = MCFFEC_BASE,
@@ -240,7 +218,6 @@ static void __init m523x_qspi_init(void)
240#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ 218#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
241 219
242static struct platform_device *m523x_devices[] __initdata = { 220static struct platform_device *m523x_devices[] __initdata = {
243 &m523x_uart,
244 &m523x_fec, 221 &m523x_fec,
245#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 222#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
246 &m523x_qspi, 223 &m523x_qspi,
diff --git a/arch/m68k/platform/5249/config.c b/arch/m68k/platform/5249/config.c
index 913160c3f46..afcdbfc6eda 100644
--- a/arch/m68k/platform/5249/config.c
+++ b/arch/m68k/platform/5249/config.c
@@ -22,24 +22,6 @@
22 22
23/***************************************************************************/ 23/***************************************************************************/
24 24
25static struct mcf_platform_uart m5249_uart_platform[] = {
26 {
27 .mapbase = MCFUART_BASE0,
28 .irq = MCF_IRQ_UART0,
29 },
30 {
31 .mapbase = MCFUART_BASE1,
32 .irq = MCF_IRQ_UART1,
33 },
34 { },
35};
36
37static struct platform_device m5249_uart = {
38 .name = "mcfuart",
39 .id = 0,
40 .dev.platform_data = m5249_uart_platform,
41};
42
43#ifdef CONFIG_M5249C3 25#ifdef CONFIG_M5249C3
44 26
45static struct resource m5249_smc91x_resources[] = { 27static struct resource m5249_smc91x_resources[] = {
@@ -223,7 +205,6 @@ static void __init m5249_qspi_init(void)
223 205
224 206
225static struct platform_device *m5249_devices[] __initdata = { 207static struct platform_device *m5249_devices[] __initdata = {
226 &m5249_uart,
227#ifdef CONFIG_M5249C3 208#ifdef CONFIG_M5249C3
228 &m5249_smc91x, 209 &m5249_smc91x,
229#endif 210#endif
diff --git a/arch/m68k/platform/5272/config.c b/arch/m68k/platform/5272/config.c
index a99a6893a57..c7c2c422a1f 100644
--- a/arch/m68k/platform/5272/config.c
+++ b/arch/m68k/platform/5272/config.c
@@ -30,24 +30,6 @@ unsigned char ledbank = 0xff;
30 30
31/***************************************************************************/ 31/***************************************************************************/
32 32
33static struct mcf_platform_uart m5272_uart_platform[] = {
34 {
35 .mapbase = MCFUART_BASE0,
36 .irq = MCF_IRQ_UART0,
37 },
38 {
39 .mapbase = MCFUART_BASE1,
40 .irq = MCF_IRQ_UART1,
41 },
42 { },
43};
44
45static struct platform_device m5272_uart = {
46 .name = "mcfuart",
47 .id = 0,
48 .dev.platform_data = m5272_uart_platform,
49};
50
51static struct resource m5272_fec_resources[] = { 33static struct resource m5272_fec_resources[] = {
52 { 34 {
53 .start = MCF_MBAR + 0x840, 35 .start = MCF_MBAR + 0x840,
@@ -79,7 +61,6 @@ static struct platform_device m5272_fec = {
79}; 61};
80 62
81static struct platform_device *m5272_devices[] __initdata = { 63static struct platform_device *m5272_devices[] __initdata = {
82 &m5272_uart,
83 &m5272_fec, 64 &m5272_fec,
84}; 65};
85 66
diff --git a/arch/m68k/platform/527x/config.c b/arch/m68k/platform/527x/config.c
index 74dab0248b6..f05fbe01e74 100644
--- a/arch/m68k/platform/527x/config.c
+++ b/arch/m68k/platform/527x/config.c
@@ -26,28 +26,6 @@
26 26
27/***************************************************************************/ 27/***************************************************************************/
28 28
29static struct mcf_platform_uart m527x_uart_platform[] = {
30 {
31 .mapbase = MCFUART_BASE0,
32 .irq = MCF_IRQ_UART0,
33 },
34 {
35 .mapbase = MCFUART_BASE1,
36 .irq = MCF_IRQ_UART1,
37 },
38 {
39 .mapbase = MCFUART_BASE2,
40 .irq = MCF_IRQ_UART2,
41 },
42 { },
43};
44
45static struct platform_device m527x_uart = {
46 .name = "mcfuart",
47 .id = 0,
48 .dev.platform_data = m527x_uart_platform,
49};
50
51static struct resource m527x_fec0_resources[] = { 29static struct resource m527x_fec0_resources[] = {
52 { 30 {
53 .start = MCFFEC_BASE0, 31 .start = MCFFEC_BASE0,
@@ -283,7 +261,6 @@ static void __init m527x_qspi_init(void)
283#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ 261#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
284 262
285static struct platform_device *m527x_devices[] __initdata = { 263static struct platform_device *m527x_devices[] __initdata = {
286 &m527x_uart,
287 &m527x_fec[0], 264 &m527x_fec[0],
288#ifdef CONFIG_FEC2 265#ifdef CONFIG_FEC2
289 &m527x_fec[1], 266 &m527x_fec[1],
diff --git a/arch/m68k/platform/528x/config.c b/arch/m68k/platform/528x/config.c
index 82af5d88360..f75ee8bf5e3 100644
--- a/arch/m68k/platform/528x/config.c
+++ b/arch/m68k/platform/528x/config.c
@@ -27,28 +27,6 @@
27 27
28/***************************************************************************/ 28/***************************************************************************/
29 29
30static struct mcf_platform_uart m528x_uart_platform[] = {
31 {
32 .mapbase = MCFUART_BASE0,
33 .irq = MCF_IRQ_UART0,
34 },
35 {
36 .mapbase = MCFUART_BASE1,
37 .irq = MCF_IRQ_UART1,
38 },
39 {
40 .mapbase = MCFUART_BASE2,
41 .irq = MCF_IRQ_UART2,
42 },
43 { },
44};
45
46static struct platform_device m528x_uart = {
47 .name = "mcfuart",
48 .id = 0,
49 .dev.platform_data = m528x_uart_platform,
50};
51
52static struct resource m528x_fec_resources[] = { 30static struct resource m528x_fec_resources[] = {
53 { 31 {
54 .start = MCFFEC_BASE, 32 .start = MCFFEC_BASE,
@@ -209,7 +187,6 @@ static void __init m528x_qspi_init(void)
209#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ 187#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
210 188
211static struct platform_device *m528x_devices[] __initdata = { 189static struct platform_device *m528x_devices[] __initdata = {
212 &m528x_uart,
213 &m528x_fec, 190 &m528x_fec,
214#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 191#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
215 &m528x_qspi, 192 &m528x_qspi,
diff --git a/arch/m68k/platform/5307/config.c b/arch/m68k/platform/5307/config.c
index bad3c27a8a4..74852a3dadf 100644
--- a/arch/m68k/platform/5307/config.c
+++ b/arch/m68k/platform/5307/config.c
@@ -29,30 +29,6 @@ unsigned char ledbank = 0xff;
29 29
30/***************************************************************************/ 30/***************************************************************************/
31 31
32static struct mcf_platform_uart m5307_uart_platform[] = {
33 {
34 .mapbase = MCFUART_BASE0,
35 .irq = MCF_IRQ_UART0,
36 },
37 {
38 .mapbase = MCFUART_BASE1,
39 .irq = MCF_IRQ_UART1,
40 },
41 { },
42};
43
44static struct platform_device m5307_uart = {
45 .name = "mcfuart",
46 .id = 0,
47 .dev.platform_data = m5307_uart_platform,
48};
49
50static struct platform_device *m5307_devices[] __initdata = {
51 &m5307_uart,
52};
53
54/***************************************************************************/
55
56static void __init m5307_uarts_init(void) 32static void __init m5307_uarts_init(void)
57{ 33{
58 /* UART0 interrupt setup */ 34 /* UART0 interrupt setup */
@@ -127,13 +103,3 @@ void __init config_BSP(char *commandp, int size)
127} 103}
128 104
129/***************************************************************************/ 105/***************************************************************************/
130
131static int __init init_BSP(void)
132{
133 platform_add_devices(m5307_devices, ARRAY_SIZE(m5307_devices));
134 return 0;
135}
136
137arch_initcall(init_BSP);
138
139/***************************************************************************/
diff --git a/arch/m68k/platform/532x/config.c b/arch/m68k/platform/532x/config.c
index 5b106839f9b..24b4c0de628 100644
--- a/arch/m68k/platform/532x/config.c
+++ b/arch/m68k/platform/532x/config.c
@@ -33,28 +33,6 @@
33 33
34/***************************************************************************/ 34/***************************************************************************/
35 35
36static struct mcf_platform_uart m532x_uart_platform[] = {
37 {
38 .mapbase = MCFUART_BASE0,
39 .irq = MCF_IRQ_UART0,
40 },
41 {
42 .mapbase = MCFUART_BASE1,
43 .irq = MCF_IRQ_UART1,
44 },
45 {
46 .mapbase = MCFUART_BASE2,
47 .irq = MCF_IRQ_UART2,
48 },
49 { },
50};
51
52static struct platform_device m532x_uart = {
53 .name = "mcfuart",
54 .id = 0,
55 .dev.platform_data = m532x_uart_platform,
56};
57
58static struct resource m532x_fec_resources[] = { 36static struct resource m532x_fec_resources[] = {
59 { 37 {
60 .start = 0xfc030000, 38 .start = 0xfc030000,
@@ -201,7 +179,6 @@ static void __init m532x_qspi_init(void)
201 179
202 180
203static struct platform_device *m532x_devices[] __initdata = { 181static struct platform_device *m532x_devices[] __initdata = {
204 &m532x_uart,
205 &m532x_fec, 182 &m532x_fec,
206#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 183#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
207 &m532x_qspi, 184 &m532x_qspi,
diff --git a/arch/m68k/platform/5407/config.c b/arch/m68k/platform/5407/config.c
index ae2689d246e..e66ef856371 100644
--- a/arch/m68k/platform/5407/config.c
+++ b/arch/m68k/platform/5407/config.c
@@ -20,30 +20,6 @@
20 20
21/***************************************************************************/ 21/***************************************************************************/
22 22
23static struct mcf_platform_uart m5407_uart_platform[] = {
24 {
25 .mapbase = MCFUART_BASE0,
26 .irq = MCF_IRQ_UART0,
27 },
28 {
29 .mapbase = MCFUART_BASE1,
30 .irq = MCF_IRQ_UART1,
31 },
32 { },
33};
34
35static struct platform_device m5407_uart = {
36 .name = "mcfuart",
37 .id = 0,
38 .dev.platform_data = m5407_uart_platform,
39};
40
41static struct platform_device *m5407_devices[] __initdata = {
42 &m5407_uart,
43};
44
45/***************************************************************************/
46
47static void __init m5407_uarts_init(void) 23static void __init m5407_uarts_init(void)
48{ 24{
49 /* UART0 interrupt setup */ 25 /* UART0 interrupt setup */
@@ -102,13 +78,3 @@ void __init config_BSP(char *commandp, int size)
102} 78}
103 79
104/***************************************************************************/ 80/***************************************************************************/
105
106static int __init init_BSP(void)
107{
108 platform_add_devices(m5407_devices, ARRAY_SIZE(m5407_devices));
109 return 0;
110}
111
112arch_initcall(init_BSP);
113
114/***************************************************************************/
diff --git a/arch/m68k/platform/54xx/config.c b/arch/m68k/platform/54xx/config.c
index 4083f50682c..2081c6cbb3d 100644
--- a/arch/m68k/platform/54xx/config.c
+++ b/arch/m68k/platform/54xx/config.c
@@ -27,38 +27,6 @@
27 27
28/***************************************************************************/ 28/***************************************************************************/
29 29
30static struct mcf_platform_uart m54xx_uart_platform[] = {
31 {
32 .mapbase = MCFUART_BASE0,
33 .irq = MCF_IRQ_UART0,
34 },
35 {
36 .mapbase = MCFUART_BASE1,
37 .irq = MCF_IRQ_UART1,
38 },
39 {
40 .mapbase = MCFUART_BASE2,
41 .irq = MCF_IRQ_UART2,
42 },
43 {
44 .mapbase = MCFUART_BASE3,
45 .irq = MCF_IRQ_UART3,
46 },
47};
48
49static struct platform_device m54xx_uart = {
50 .name = "mcfuart",
51 .id = 0,
52 .dev.platform_data = m54xx_uart_platform,
53};
54
55static struct platform_device *m54xx_devices[] __initdata = {
56 &m54xx_uart,
57};
58
59
60/***************************************************************************/
61
62static void __init m54xx_uarts_init(void) 30static void __init m54xx_uarts_init(void)
63{ 31{
64 /* enable io pins */ 32 /* enable io pins */
@@ -135,14 +103,3 @@ void __init config_BSP(char *commandp, int size)
135} 103}
136 104
137/***************************************************************************/ 105/***************************************************************************/
138
139static int __init init_BSP(void)
140{
141
142 platform_add_devices(m54xx_devices, ARRAY_SIZE(m54xx_devices));
143 return 0;
144}
145
146arch_initcall(init_BSP);
147
148/***************************************************************************/
diff --git a/arch/m68k/platform/coldfire/Makefile b/arch/m68k/platform/coldfire/Makefile
index a8967baabd7..4572af29b6b 100644
--- a/arch/m68k/platform/coldfire/Makefile
+++ b/arch/m68k/platform/coldfire/Makefile
@@ -14,7 +14,7 @@
14 14
15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1 15asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
16 16
17obj-$(CONFIG_COLDFIRE) += cache.o clk.o dma.o entry.o vectors.o 17obj-$(CONFIG_COLDFIRE) += cache.o clk.o device.o dma.o entry.o vectors.o
18obj-$(CONFIG_M5206) += timers.o intc.o 18obj-$(CONFIG_M5206) += timers.o intc.o
19obj-$(CONFIG_M5206e) += timers.o intc.o 19obj-$(CONFIG_M5206e) += timers.o intc.o
20obj-$(CONFIG_M520x) += pit.o intc-simr.o 20obj-$(CONFIG_M520x) += pit.o intc-simr.o
diff --git a/arch/m68k/platform/coldfire/device.c b/arch/m68k/platform/coldfire/device.c
new file mode 100644
index 00000000000..c9506907872
--- /dev/null
+++ b/arch/m68k/platform/coldfire/device.c
@@ -0,0 +1,60 @@
1/*
2 * device.c -- common ColdFire SoC device support
3 *
4 * (C) Copyright 2011, Greg Ungerer <gerg@uclinux.org>
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive
8 * for more details.
9 */
10
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/io.h>
14#include <asm/traps.h>
15#include <asm/coldfire.h>
16#include <asm/mcfsim.h>
17#include <asm/mcfuart.h>
18
19static struct mcf_platform_uart mcf_uart_platform_data[] = {
20 {
21 .mapbase = MCFUART_BASE0,
22 .irq = MCF_IRQ_UART0,
23 },
24 {
25 .mapbase = MCFUART_BASE1,
26 .irq = MCF_IRQ_UART1,
27 },
28#ifdef MCFUART_BASE2
29 {
30 .mapbase = MCFUART_BASE2,
31 .irq = MCF_IRQ_UART2,
32 },
33#endif
34#ifdef MCFUART_BASE3
35 {
36 .mapbase = MCFUART_BASE3,
37 .irq = MCF_IRQ_UART3,
38 },
39#endif
40 { },
41};
42
43static struct platform_device mcf_uart = {
44 .name = "mcfuart",
45 .id = 0,
46 .dev.platform_data = mcf_uart_platform_data,
47};
48
49static struct platform_device *mcf_devices[] __initdata = {
50 &mcf_uart,
51};
52
53static int __init mcf_init_devices(void)
54{
55 platform_add_devices(mcf_devices, ARRAY_SIZE(mcf_devices));
56 return 0;
57}
58
59arch_initcall(mcf_init_devices);
60