Skip to content

Commit

Permalink
m68knommu: add smc91x support to ColdFire 5249 platform
Browse files Browse the repository at this point in the history
The Freescale M5249EVB board is fitted with an SMC LAN91c11 ethernet
device. Add platform support to the M5249EVB setup code to support this.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
  • Loading branch information
Greg Ungerer committed May 24, 2010
1 parent cc24c40 commit 4a1479b
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions arch/m68knommu/platform/5249/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,30 @@ static struct platform_device m5249_uart = {
.dev.platform_data = m5249_uart_platform,
};

#ifdef CONFIG_M5249C3

static struct resource m5249_smc91x_resources[] = {
{
.start = 0xe0000300,
.end = 0xe0000300 + 0x100,
.flags = IORESOURCE_MEM,
},
{
.start = MCFINTC2_GPIOIRQ6,
.end = MCFINTC2_GPIOIRQ6,
.flags = IORESOURCE_IRQ,
},
};

static struct platform_device m5249_smc91x = {
.name = "smc91x",
.id = 0,
.num_resources = ARRAY_SIZE(m5249_smc91x_resources),
.resource = m5249_smc91x_resources,
};

#endif /* CONFIG_M5249C3 */

#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
static struct resource m5249_qspi_resources[] = {
{
Expand Down Expand Up @@ -200,6 +224,9 @@ static void __init m5249_qspi_init(void)

static struct platform_device *m5249_devices[] __initdata = {
&m5249_uart,
#ifdef CONFIG_M5249C3
&m5249_smc91x,
#endif
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
&m5249_qspi,
#endif
Expand Down Expand Up @@ -231,6 +258,24 @@ static void __init m5249_uarts_init(void)

/***************************************************************************/

#ifdef CONFIG_M5249C3

static void __init m5249_smc91x_init(void)
{
u32 gpio;

/* Set the GPIO line as interrupt source for smc91x device */
gpio = readl(MCF_MBAR2 + MCFSIM2_GPIOINTENABLE);
writel(gpio | 0x40, MCF_MBAR2 + MCFSIM2_GPIOINTENABLE);

gpio = readl(MCF_MBAR2 + MCFSIM2_INTLEVEL5);
writel(gpio | 0x04000000, MCF_MBAR2 + MCFSIM2_INTLEVEL5);
}

#endif /* CONFIG_M5249C3 */

/***************************************************************************/

static void __init m5249_timers_init(void)
{
/* Timer1 is always used as system timer */
Expand Down Expand Up @@ -264,6 +309,9 @@ void __init config_BSP(char *commandp, int size)
mach_reset = m5249_cpu_reset;
m5249_timers_init();
m5249_uarts_init();
#ifdef CONFIG_M5249C3
m5249_smc91x_init();
#endif
#if defined(CONFIG_SPI_COLDFIRE_QSPI) || defined(CONFIG_SPI_COLDFIRE_QSPI_MODULE)
m5249_qspi_init();
#endif
Expand Down

0 comments on commit 4a1479b

Please sign in to comment.