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>
This commit is contained in:
parent
504695479e
commit
b7ce7f0d0e
|
@ -25,36 +25,6 @@
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
static struct resource m520x_fec_resources[] = {
|
|
||||||
{
|
|
||||||
.start = MCFFEC_BASE0,
|
|
||||||
.end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FEXRX0,
|
|
||||||
.end = MCF_IRQ_FECRX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECTX0,
|
|
||||||
.end = MCF_IRQ_FECTX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECENTC0,
|
|
||||||
.end = MCF_IRQ_FECENTC0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device m520x_fec = {
|
|
||||||
.name = "fec",
|
|
||||||
.id = 0,
|
|
||||||
.num_resources = ARRAY_SIZE(m520x_fec_resources),
|
|
||||||
.resource = m520x_fec_resources,
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
static struct resource m520x_qspi_resources[] = {
|
static struct resource m520x_qspi_resources[] = {
|
||||||
{
|
{
|
||||||
|
@ -196,7 +166,6 @@ static void __init m520x_qspi_init(void)
|
||||||
|
|
||||||
|
|
||||||
static struct platform_device *m520x_devices[] __initdata = {
|
static struct platform_device *m520x_devices[] __initdata = {
|
||||||
&m520x_fec,
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
&m520x_qspi,
|
&m520x_qspi,
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,36 +26,6 @@
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
static struct resource m523x_fec_resources[] = {
|
|
||||||
{
|
|
||||||
.start = MCFFEC_BASE0,
|
|
||||||
.end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECRX0,
|
|
||||||
.end = MCF_IRQ_FECRX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECTX0,
|
|
||||||
.end = MCF_IRQ_FECTX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECENTC0,
|
|
||||||
.end = MCF_IRQ_FECENTC0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device m523x_fec = {
|
|
||||||
.name = "fec",
|
|
||||||
.id = 0,
|
|
||||||
.num_resources = ARRAY_SIZE(m523x_fec_resources),
|
|
||||||
.resource = m523x_fec_resources,
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
static struct resource m523x_qspi_resources[] = {
|
static struct resource m523x_qspi_resources[] = {
|
||||||
{
|
{
|
||||||
|
@ -258,7 +228,6 @@ void __init config_BSP(char *commandp, int size)
|
||||||
|
|
||||||
static int __init init_BSP(void)
|
static int __init init_BSP(void)
|
||||||
{
|
{
|
||||||
m523x_fec_init();
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
m523x_qspi_init();
|
m523x_qspi_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -30,42 +30,6 @@ unsigned char ledbank = 0xff;
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
static struct resource m5272_fec_resources[] = {
|
|
||||||
{
|
|
||||||
.start = MCFFEC_BASE0,
|
|
||||||
.end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECRX0,
|
|
||||||
.end = MCF_IRQ_FECRX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECTX0,
|
|
||||||
.end = MCF_IRQ_FECTX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECENTC0,
|
|
||||||
.end = MCF_IRQ_FECENTC0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device m5272_fec = {
|
|
||||||
.name = "fec",
|
|
||||||
.id = 0,
|
|
||||||
.num_resources = ARRAY_SIZE(m5272_fec_resources),
|
|
||||||
.resource = m5272_fec_resources,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device *m5272_devices[] __initdata = {
|
|
||||||
&m5272_fec,
|
|
||||||
};
|
|
||||||
|
|
||||||
/***************************************************************************/
|
|
||||||
|
|
||||||
static void __init m5272_uarts_init(void)
|
static void __init m5272_uarts_init(void)
|
||||||
{
|
{
|
||||||
u32 v;
|
u32 v;
|
||||||
|
@ -138,7 +102,6 @@ static int __init init_BSP(void)
|
||||||
{
|
{
|
||||||
m5272_uarts_init();
|
m5272_uarts_init();
|
||||||
fixed_phy_add(PHY_POLL, 0, &nettel_fixed_phy_status);
|
fixed_phy_add(PHY_POLL, 0, &nettel_fixed_phy_status);
|
||||||
platform_add_devices(m5272_devices, ARRAY_SIZE(m5272_devices));
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,67 +26,6 @@
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
static struct resource m527x_fec0_resources[] = {
|
|
||||||
{
|
|
||||||
.start = MCFFEC_BASE0,
|
|
||||||
.end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECRX0,
|
|
||||||
.end = MCF_IRQ_FECRX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECTX0,
|
|
||||||
.end = MCF_IRQ_FECTX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECENTC0,
|
|
||||||
.end = MCF_IRQ_FECENTC0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct resource m527x_fec1_resources[] = {
|
|
||||||
{
|
|
||||||
.start = MCFFEC_BASE1,
|
|
||||||
.end = MCFFEC_BASE1 + MCFFEC_SIZE1 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECRX1,
|
|
||||||
.end = MCF_IRQ_FECRX1,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECTX1,
|
|
||||||
.end = MCF_IRQ_FECTX1,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECENTC1,
|
|
||||||
.end = MCF_IRQ_FECENTC1,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device m527x_fec[] = {
|
|
||||||
{
|
|
||||||
.name = "fec",
|
|
||||||
.id = 0,
|
|
||||||
.num_resources = ARRAY_SIZE(m527x_fec0_resources),
|
|
||||||
.resource = m527x_fec0_resources,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.name = "fec",
|
|
||||||
.id = 1,
|
|
||||||
.num_resources = ARRAY_SIZE(m527x_fec1_resources),
|
|
||||||
.resource = m527x_fec1_resources,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
static struct resource m527x_qspi_resources[] = {
|
static struct resource m527x_qspi_resources[] = {
|
||||||
{
|
{
|
||||||
|
@ -261,10 +200,6 @@ static void __init m527x_qspi_init(void)
|
||||||
#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
|
#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
|
||||||
|
|
||||||
static struct platform_device *m527x_devices[] __initdata = {
|
static struct platform_device *m527x_devices[] __initdata = {
|
||||||
&m527x_fec[0],
|
|
||||||
#ifdef CONFIG_FEC2
|
|
||||||
&m527x_fec[1],
|
|
||||||
#endif
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
&m527x_qspi,
|
&m527x_qspi,
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -27,36 +27,6 @@
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
static struct resource m528x_fec_resources[] = {
|
|
||||||
{
|
|
||||||
.start = MCFFEC_BASE0,
|
|
||||||
.end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECRX0,
|
|
||||||
.end = MCF_IRQ_FECRX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECTX0,
|
|
||||||
.end = MCF_IRQ_FECTX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECENTC0,
|
|
||||||
.end = MCF_IRQ_FECENTC0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device m528x_fec = {
|
|
||||||
.name = "fec",
|
|
||||||
.id = 0,
|
|
||||||
.num_resources = ARRAY_SIZE(m528x_fec_resources),
|
|
||||||
.resource = m528x_fec_resources,
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
static struct resource m528x_qspi_resources[] = {
|
static struct resource m528x_qspi_resources[] = {
|
||||||
{
|
{
|
||||||
|
@ -187,7 +157,6 @@ static void __init m528x_qspi_init(void)
|
||||||
#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
|
#endif /* defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE) */
|
||||||
|
|
||||||
static struct platform_device *m528x_devices[] __initdata = {
|
static struct platform_device *m528x_devices[] __initdata = {
|
||||||
&m528x_fec,
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
&m528x_qspi,
|
&m528x_qspi,
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,36 +33,6 @@
|
||||||
|
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
||||||
static struct resource m532x_fec_resources[] = {
|
|
||||||
{
|
|
||||||
.start = MCFFEC_BASE0,
|
|
||||||
.end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
|
|
||||||
.flags = IORESOURCE_MEM,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECRX0,
|
|
||||||
.end = MCF_IRQ_FECRX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECTX0,
|
|
||||||
.end = MCF_IRQ_FECTX0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.start = MCF_IRQ_FECENTC0,
|
|
||||||
.end = MCF_IRQ_FECENTC0,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct platform_device m532x_fec = {
|
|
||||||
.name = "fec",
|
|
||||||
.id = 0,
|
|
||||||
.num_resources = ARRAY_SIZE(m532x_fec_resources),
|
|
||||||
.resource = m532x_fec_resources,
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
static struct resource m532x_qspi_resources[] = {
|
static struct resource m532x_qspi_resources[] = {
|
||||||
{
|
{
|
||||||
|
@ -179,7 +149,6 @@ static void __init m532x_qspi_init(void)
|
||||||
|
|
||||||
|
|
||||||
static struct platform_device *m532x_devices[] __initdata = {
|
static struct platform_device *m532x_devices[] __initdata = {
|
||||||
&m532x_fec,
|
|
||||||
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
|
||||||
&m532x_qspi,
|
&m532x_qspi,
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -16,6 +16,9 @@
|
||||||
#include <asm/mcfsim.h>
|
#include <asm/mcfsim.h>
|
||||||
#include <asm/mcfuart.h>
|
#include <asm/mcfuart.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* All current ColdFire parts contain from 2, 3 or 4 UARTS.
|
||||||
|
*/
|
||||||
static struct mcf_platform_uart mcf_uart_platform_data[] = {
|
static struct mcf_platform_uart mcf_uart_platform_data[] = {
|
||||||
{
|
{
|
||||||
.mapbase = MCFUART_BASE0,
|
.mapbase = MCFUART_BASE0,
|
||||||
|
@ -46,8 +49,83 @@ static struct platform_device mcf_uart = {
|
||||||
.dev.platform_data = mcf_uart_platform_data,
|
.dev.platform_data = mcf_uart_platform_data,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef CONFIG_FEC
|
||||||
|
/*
|
||||||
|
* Some ColdFire cores contain the Fast Ethernet Controller (FEC)
|
||||||
|
* block. It is Freescale's own hardware block. Some ColdFires
|
||||||
|
* have 2 of these.
|
||||||
|
*/
|
||||||
|
static struct resource mcf_fec0_resources[] = {
|
||||||
|
{
|
||||||
|
.start = MCFFEC_BASE0,
|
||||||
|
.end = MCFFEC_BASE0 + MCFFEC_SIZE0 - 1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.start = MCF_IRQ_FECRX0,
|
||||||
|
.end = MCF_IRQ_FECRX0,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.start = MCF_IRQ_FECTX0,
|
||||||
|
.end = MCF_IRQ_FECTX0,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.start = MCF_IRQ_FECENTC0,
|
||||||
|
.end = MCF_IRQ_FECENTC0,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device mcf_fec0 = {
|
||||||
|
.name = "fec",
|
||||||
|
.id = 0,
|
||||||
|
.num_resources = ARRAY_SIZE(mcf_fec0_resources),
|
||||||
|
.resource = mcf_fec0_resources,
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef MCFFEC_BASE1
|
||||||
|
static struct resource mcf_fec1_resources[] = {
|
||||||
|
{
|
||||||
|
.start = MCFFEC_BASE1,
|
||||||
|
.end = MCFFEC_BASE1 + MCFFEC_SIZE1 - 1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.start = MCF_IRQ_FECRX1,
|
||||||
|
.end = MCF_IRQ_FECRX1,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.start = MCF_IRQ_FECTX1,
|
||||||
|
.end = MCF_IRQ_FECTX1,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.start = MCF_IRQ_FECENTC1,
|
||||||
|
.end = MCF_IRQ_FECENTC1,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device mcf_fec1 = {
|
||||||
|
.name = "fec",
|
||||||
|
.id = 0,
|
||||||
|
.num_resources = ARRAY_SIZE(mcf_fec1_resources),
|
||||||
|
.resource = mcf_fec1_resources,
|
||||||
|
};
|
||||||
|
#endif /* MCFFEC_BASE1 */
|
||||||
|
#endif /* CONFIG_FEC */
|
||||||
|
|
||||||
static struct platform_device *mcf_devices[] __initdata = {
|
static struct platform_device *mcf_devices[] __initdata = {
|
||||||
&mcf_uart,
|
&mcf_uart,
|
||||||
|
#ifdef CONFIG_FEC
|
||||||
|
&mcf_fec0,
|
||||||
|
#ifdef MCFFEC_BASE1
|
||||||
|
&mcf_fec1,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue