aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/platform
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@uclinux.org>2011-12-23 19:30:36 -0500
committerGreg Ungerer <gerg@uclinux.org>2012-03-04 18:43:08 -0500
commitb7ce7f0d0efc1a95154fa6872d5d7c970d281c71 (patch)
treeed4d0b140b16710230051c27adc30decca494cb9 /arch/m68k/platform
parent504695479ecce2a89955b52c332b0eeec75be8e8 (diff)
m68knommu: merge common ColdFire FEC platform setup code
The ColdFire FEC is common to quite a few ColdFire CPUs. No need to duplicate its platform setup code for every CPU family member that has it. Merge all the setup code into a single shared file. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch/m68k/platform')
-rw-r--r--arch/m68k/platform/520x/config.c31
-rw-r--r--arch/m68k/platform/523x/config.c31
-rw-r--r--arch/m68k/platform/5272/config.c37
-rw-r--r--arch/m68k/platform/527x/config.c65
-rw-r--r--arch/m68k/platform/528x/config.c31
-rw-r--r--arch/m68k/platform/532x/config.c31
-rw-r--r--arch/m68k/platform/coldfire/device.c78
7 files changed, 78 insertions, 226 deletions
diff --git a/arch/m68k/platform/520x/config.c b/arch/m68k/platform/520x/config.c
index 5111902cb274..5746fa52ed56 100644
--- a/arch/m68k/platform/520x/config.c
+++ b/arch/m68k/platform/520x/config.c
@@ -25,36 +25,6 @@
25 25
26/***************************************************************************/ 26/***************************************************************************/
27 27
28static struct resource m520x_fec_resources[] = {
29 {
30 .start = MCFFEC_BASE0,
31 .end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
32 .flags = IORESOURCE_MEM,
33 },
34 {
35 .start = MCF_IRQ_FEXRX0,
36 .end = MCF_IRQ_FECRX0,
37 .flags = IORESOURCE_IRQ,
38 },
39 {
40 .start = MCF_IRQ_FECTX0,
41 .end = MCF_IRQ_FECTX0,
42 .flags = IORESOURCE_IRQ,
43 },
44 {
45 .start = MCF_IRQ_FECENTC0,
46 .end = MCF_IRQ_FECENTC0,
47 .flags = IORESOURCE_IRQ,
48 },
49};
50
51static struct platform_device m520x_fec = {
52 .name = "fec",
53 .id = 0,
54 .num_resources = ARRAY_SIZE(m520x_fec_resources),
55 .resource = m520x_fec_resources,
56};
57
58#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 28#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
59static struct resource m520x_qspi_resources[] = { 29static struct resource m520x_qspi_resources[] = {
60 { 30 {
@@ -196,7 +166,6 @@ static void __init m520x_qspi_init(void)
196 166
197 167
198static struct platform_device *m520x_devices[] __initdata = { 168static struct platform_device *m520x_devices[] __initdata = {
199 &m520x_fec,
200#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 169#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
201 &m520x_qspi, 170 &m520x_qspi,
202#endif 171#endif
diff --git a/arch/m68k/platform/523x/config.c b/arch/m68k/platform/523x/config.c
index 2a1dcade0c02..900d35c49ebf 100644
--- a/arch/m68k/platform/523x/config.c
+++ b/arch/m68k/platform/523x/config.c
@@ -26,36 +26,6 @@
26 26
27/***************************************************************************/ 27/***************************************************************************/
28 28
29static struct resource m523x_fec_resources[] = {
30 {
31 .start = MCFFEC_BASE0,
32 .end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
33 .flags = IORESOURCE_MEM,
34 },
35 {
36 .start = MCF_IRQ_FECRX0,
37 .end = MCF_IRQ_FECRX0,
38 .flags = IORESOURCE_IRQ,
39 },
40 {
41 .start = MCF_IRQ_FECTX0,
42 .end = MCF_IRQ_FECTX0,
43 .flags = IORESOURCE_IRQ,
44 },
45 {
46 .start = MCF_IRQ_FECENTC0,
47 .end = MCF_IRQ_FECENTC0,
48 .flags = IORESOURCE_IRQ,
49 },
50};
51
52static struct platform_device m523x_fec = {
53 .name = "fec",
54 .id = 0,
55 .num_resources = ARRAY_SIZE(m523x_fec_resources),
56 .resource = m523x_fec_resources,
57};
58
59#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 29#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
60static struct resource m523x_qspi_resources[] = { 30static struct resource m523x_qspi_resources[] = {
61 { 31 {
@@ -258,7 +228,6 @@ void __init config_BSP(char *commandp, int size)
258 228
259static int __init init_BSP(void) 229static int __init init_BSP(void)
260{ 230{
261 m523x_fec_init();
262#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 231#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
263 m523x_qspi_init(); 232 m523x_qspi_init();
264#endif 233#endif
diff --git a/arch/m68k/platform/5272/config.c b/arch/m68k/platform/5272/config.c
index 4b6bc60baee3..e68bc7a148eb 100644
--- a/arch/m68k/platform/5272/config.c
+++ b/arch/m68k/platform/5272/config.c
@@ -30,42 +30,6 @@ unsigned char ledbank = 0xff;
30 30
31/***************************************************************************/ 31/***************************************************************************/
32 32
33static struct resource m5272_fec_resources[] = {
34 {
35 .start = MCFFEC_BASE0,
36 .end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
37 .flags = IORESOURCE_MEM,
38 },
39 {
40 .start = MCF_IRQ_FECRX0,
41 .end = MCF_IRQ_FECRX0,
42 .flags = IORESOURCE_IRQ,
43 },
44 {
45 .start = MCF_IRQ_FECTX0,
46 .end = MCF_IRQ_FECTX0,
47 .flags = IORESOURCE_IRQ,
48 },
49 {
50 .start = MCF_IRQ_FECENTC0,
51 .end = MCF_IRQ_FECENTC0,
52 .flags = IORESOURCE_IRQ,
53 },
54};
55
56static struct platform_device m5272_fec = {
57 .name = "fec",
58 .id = 0,
59 .num_resources = ARRAY_SIZE(m5272_fec_resources),
60 .resource = m5272_fec_resources,
61};
62
63static struct platform_device *m5272_devices[] __initdata = {
64 &m5272_fec,
65};
66
67/***************************************************************************/
68
69static void __init m5272_uarts_init(void) 33static void __init m5272_uarts_init(void)
70{ 34{
71 u32 v; 35 u32 v;
@@ -138,7 +102,6 @@ static int __init init_BSP(void)
138{ 102{
139 m5272_uarts_init(); 103 m5272_uarts_init();
140 fixed_phy_add(PHY_POLL, 0, &nettel_fixed_phy_status); 104 fixed_phy_add(PHY_POLL, 0, &nettel_fixed_phy_status);
141 platform_add_devices(m5272_devices, ARRAY_SIZE(m5272_devices));
142 return 0; 105 return 0;
143} 106}
144 107
diff --git a/arch/m68k/platform/527x/config.c b/arch/m68k/platform/527x/config.c
index 461325a3af94..018ac69ef242 100644
--- a/arch/m68k/platform/527x/config.c
+++ b/arch/m68k/platform/527x/config.c
@@ -26,67 +26,6 @@
26 26
27/***************************************************************************/ 27/***************************************************************************/
28 28
29static struct resource m527x_fec0_resources[] = {
30 {
31 .start = MCFFEC_BASE0,
32 .end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
33 .flags = IORESOURCE_MEM,
34 },
35 {
36 .start = MCF_IRQ_FECRX0,
37 .end = MCF_IRQ_FECRX0,
38 .flags = IORESOURCE_IRQ,
39 },
40 {
41 .start = MCF_IRQ_FECTX0,
42 .end = MCF_IRQ_FECTX0,
43 .flags = IORESOURCE_IRQ,
44 },
45 {
46 .start = MCF_IRQ_FECENTC0,
47 .end = MCF_IRQ_FECENTC0,
48 .flags = IORESOURCE_IRQ,
49 },
50};
51
52static struct resource m527x_fec1_resources[] = {
53 {
54 .start = MCFFEC_BASE1,
55 .end = MCFFEC_BASE1 + MCFFEC_SIZE1 - 1,
56 .flags = IORESOURCE_MEM,
57 },
58 {
59 .start = MCF_IRQ_FECRX1,
60 .end = MCF_IRQ_FECRX1,
61 .flags = IORESOURCE_IRQ,
62 },
63 {
64 .start = MCF_IRQ_FECTX1,
65 .end = MCF_IRQ_FECTX1,
66 .flags = IORESOURCE_IRQ,
67 },
68 {
69 .start = MCF_IRQ_FECENTC1,
70 .end = MCF_IRQ_FECENTC1,
71 .flags = IORESOURCE_IRQ,
72 },
73};
74
75static struct platform_device m527x_fec[] = {
76 {
77 .name = "fec",
78 .id = 0,
79 .num_resources = ARRAY_SIZE(m527x_fec0_resources),
80 .resource = m527x_fec0_resources,
81 },
82 {
83 .name = "fec",
84 .id = 1,
85 .num_resources = ARRAY_SIZE(m527x_fec1_resources),
86 .resource = m527x_fec1_resources,
87 },
88};
89
90#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 29#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
91static struct resource m527x_qspi_resources[] = { 30static struct resource m527x_qspi_resources[] = {
92 { 31 {
@@ -261,10 +200,6 @@ static void __init m527x_qspi_init(void)
261#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ 200#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
262 201
263static struct platform_device *m527x_devices[] __initdata = { 202static struct platform_device *m527x_devices[] __initdata = {
264 &m527x_fec[0],
265#ifdef CONFIG_FEC2
266 &m527x_fec[1],
267#endif
268#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 203#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
269 &m527x_qspi, 204 &m527x_qspi,
270#endif 205#endif
diff --git a/arch/m68k/platform/528x/config.c b/arch/m68k/platform/528x/config.c
index 39fc3c16388d..3e015dc00c8e 100644
--- a/arch/m68k/platform/528x/config.c
+++ b/arch/m68k/platform/528x/config.c
@@ -27,36 +27,6 @@
27 27
28/***************************************************************************/ 28/***************************************************************************/
29 29
30static struct resource m528x_fec_resources[] = {
31 {
32 .start = MCFFEC_BASE0,
33 .end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
34 .flags = IORESOURCE_MEM,
35 },
36 {
37 .start = MCF_IRQ_FECRX0,
38 .end = MCF_IRQ_FECRX0,
39 .flags = IORESOURCE_IRQ,
40 },
41 {
42 .start = MCF_IRQ_FECTX0,
43 .end = MCF_IRQ_FECTX0,
44 .flags = IORESOURCE_IRQ,
45 },
46 {
47 .start = MCF_IRQ_FECENTC0,
48 .end = MCF_IRQ_FECENTC0,
49 .flags = IORESOURCE_IRQ,
50 },
51};
52
53static struct platform_device m528x_fec = {
54 .name = "fec",
55 .id = 0,
56 .num_resources = ARRAY_SIZE(m528x_fec_resources),
57 .resource = m528x_fec_resources,
58};
59
60#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 30#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
61static struct resource m528x_qspi_resources[] = { 31static struct resource m528x_qspi_resources[] = {
62 { 32 {
@@ -187,7 +157,6 @@ static void __init m528x_qspi_init(void)
187#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */ 157#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
188 158
189static struct platform_device *m528x_devices[] __initdata = { 159static struct platform_device *m528x_devices[] __initdata = {
190 &m528x_fec,
191#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 160#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
192 &m528x_qspi, 161 &m528x_qspi,
193#endif 162#endif
diff --git a/arch/m68k/platform/532x/config.c b/arch/m68k/platform/532x/config.c
index 4831f7a6b8dc..13157ae31905 100644
--- a/arch/m68k/platform/532x/config.c
+++ b/arch/m68k/platform/532x/config.c
@@ -33,36 +33,6 @@
33 33
34/***************************************************************************/ 34/***************************************************************************/
35 35
36static struct resource m532x_fec_resources[] = {
37 {
38 .start = MCFFEC_BASE0,
39 .end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
40 .flags = IORESOURCE_MEM,
41 },
42 {
43 .start = MCF_IRQ_FECRX0,
44 .end = MCF_IRQ_FECRX0,
45 .flags = IORESOURCE_IRQ,
46 },
47 {
48 .start = MCF_IRQ_FECTX0,
49 .end = MCF_IRQ_FECTX0,
50 .flags = IORESOURCE_IRQ,
51 },
52 {
53 .start = MCF_IRQ_FECENTC0,
54 .end = MCF_IRQ_FECENTC0,
55 .flags = IORESOURCE_IRQ,
56 },
57};
58
59static struct platform_device m532x_fec = {
60 .name = "fec",
61 .id = 0,
62 .num_resources = ARRAY_SIZE(m532x_fec_resources),
63 .resource = m532x_fec_resources,
64};
65
66#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 36#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
67static struct resource m532x_qspi_resources[] = { 37static struct resource m532x_qspi_resources[] = {
68 { 38 {
@@ -179,7 +149,6 @@ static void __init m532x_qspi_init(void)
179 149
180 150
181static struct platform_device *m532x_devices[] __initdata = { 151static struct platform_device *m532x_devices[] __initdata = {
182 &m532x_fec,
183#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) 152#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
184 &m532x_qspi, 153 &m532x_qspi,
185#endif 154#endif
diff --git a/arch/m68k/platform/coldfire/device.c b/arch/m68k/platform/coldfire/device.c
index b9301920afbf..24b0d5e5350a 100644
--- a/arch/m68k/platform/coldfire/device.c
+++ b/arch/m68k/platform/coldfire/device.c
@@ -16,6 +16,9 @@
16#include <asm/mcfsim.h> 16#include <asm/mcfsim.h>
17#include <asm/mcfuart.h> 17#include <asm/mcfuart.h>
18 18
19/*
20 * All current ColdFire parts contain from 2, 3 or 4 UARTS.
21 */
19static struct mcf_platform_uart mcf_uart_platform_data[] = { 22static struct mcf_platform_uart mcf_uart_platform_data[] = {
20 { 23 {
21 .mapbase = MCFUART_BASE0, 24 .mapbase = MCFUART_BASE0,
@@ -46,8 +49,83 @@ static struct platform_device mcf_uart = {
46 .dev.platform_data = mcf_uart_platform_data, 49 .dev.platform_data = mcf_uart_platform_data,
47}; 50};
48 51
52#ifdef CONFIG_FEC
53/*
54 * Some ColdFire cores contain the Fast Ethernet Controller (FEC)
55 * block. It is Freescale's own hardware block. Some ColdFires
56 * have 2 of these.
57 */
58static struct resource mcf_fec0_resources[] = {
59 {
60 .start = MCFFEC_BASE0,
61 .end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
62 .flags = IORESOURCE_MEM,
63 },
64 {
65 .start = MCF_IRQ_FECRX0,
66 .end = MCF_IRQ_FECRX0,
67 .flags = IORESOURCE_IRQ,
68 },
69 {
70 .start = MCF_IRQ_FECTX0,
71 .end = MCF_IRQ_FECTX0,
72 .flags = IORESOURCE_IRQ,
73 },
74 {
75 .start = MCF_IRQ_FECENTC0,
76 .end = MCF_IRQ_FECENTC0,
77 .flags = IORESOURCE_IRQ,
78 },
79};
80
81static struct platform_device mcf_fec0 = {
82 .name = "fec",
83 .id = 0,
84 .num_resources = ARRAY_SIZE(mcf_fec0_resources),
85 .resource = mcf_fec0_resources,
86};
87
88#ifdef MCFFEC_BASE1
89static struct resource mcf_fec1_resources[] = {
90 {
91 .start = MCFFEC_BASE1,
92 .end = MCFFEC_BASE1 + MCFFEC_SIZE1 - 1,
93 .flags = IORESOURCE_MEM,
94 },
95 {
96 .start = MCF_IRQ_FECRX1,
97 .end = MCF_IRQ_FECRX1,
98 .flags = IORESOURCE_IRQ,
99 },
100 {
101 .start = MCF_IRQ_FECTX1,
102 .end = MCF_IRQ_FECTX1,
103 .flags = IORESOURCE_IRQ,
104 },
105 {
106 .start = MCF_IRQ_FECENTC1,
107 .end = MCF_IRQ_FECENTC1,
108 .flags = IORESOURCE_IRQ,
109 },
110};
111
112static struct platform_device mcf_fec1 = {
113 .name = "fec",
114 .id = 0,
115 .num_resources = ARRAY_SIZE(mcf_fec1_resources),
116 .resource = mcf_fec1_resources,
117};
118#endif /* MCFFEC_BASE1 */
119#endif /* CONFIG_FEC */
120
49static struct platform_device *mcf_devices[] __initdata = { 121static struct platform_device *mcf_devices[] __initdata = {
50 &mcf_uart, 122 &mcf_uart,
123#ifdef CONFIG_FEC
124 &mcf_fec0,
125#ifdef MCFFEC_BASE1
126 &mcf_fec1,
127#endif
128#endif
51}; 129};
52 130
53 131