[ARM] pxa/aspenite: add support for debug ethernet
authorEric Miao <eric.miao@marvell.com>
Wed, 18 Feb 2009 08:38:22 +0000 (16:38 +0800)
committerEric Miao <eric.miao@marvell.com>
Mon, 23 Mar 2009 02:11:35 +0000 (10:11 +0800)
Signed-off-by: Zhangfei Gao <zhangfei.gao@marvell.com>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
arch/arm/mach-mmp/aspenite.c
drivers/net/smc91x.h

index a9efa5cadbe88e8ffd442eb31adc27fc2ffe11db..4562452d40740d76fa2eb8f57d3321408955f515 100644 (file)
 
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/smc91x.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <mach/addr-map.h>
 #include <mach/mfp-pxa168.h>
 #include <mach/pxa168.h>
+#include <mach/gpio.h>
 
 #include "common.h"
 
 static unsigned long common_pin_config[] __initdata = {
+       /* Data Flash Interface */
+       GPIO0_DFI_D15,
+       GPIO1_DFI_D14,
+       GPIO2_DFI_D13,
+       GPIO3_DFI_D12,
+       GPIO4_DFI_D11,
+       GPIO5_DFI_D10,
+       GPIO6_DFI_D9,
+       GPIO7_DFI_D8,
+       GPIO8_DFI_D7,
+       GPIO9_DFI_D6,
+       GPIO10_DFI_D5,
+       GPIO11_DFI_D4,
+       GPIO12_DFI_D3,
+       GPIO13_DFI_D2,
+       GPIO14_DFI_D1,
+       GPIO15_DFI_D0,
+
+       /* Static Memory Controller */
+       GPIO18_SMC_nCS0,
+       GPIO34_SMC_nCS1,
+       GPIO23_SMC_nLUA,
+       GPIO25_SMC_nLLA,
+       GPIO28_SMC_RDY,
+       GPIO29_SMC_SCLK,
+       GPIO35_SMC_BE1,
+       GPIO36_SMC_BE2,
+       GPIO27_GPIO,    /* Ethernet IRQ */
+
        /* UART1 */
        GPIO107_UART1_RXD,
        GPIO108_UART1_TXD,
 };
 
+static struct smc91x_platdata smc91x_info = {
+       .flags  = SMC91X_USE_16BIT | SMC91X_NOWAIT,
+};
+
+static struct resource smc91x_resources[] = {
+       [0] = {
+               .start  = SMC_CS1_PHYS_BASE + 0x300,
+               .end    = SMC_CS1_PHYS_BASE + 0xfffff,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = gpio_to_irq(27),
+               .end    = gpio_to_irq(27),
+               .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+       }
+};
+
+static struct platform_device smc91x_device = {
+       .name           = "smc91x",
+       .id             = 0,
+       .dev            = {
+               .platform_data = &smc91x_info,
+       },
+       .num_resources  = ARRAY_SIZE(smc91x_resources),
+       .resource       = smc91x_resources,
+};
+
 static void __init common_init(void)
 {
        mfp_config(ARRAY_AND_SIZE(common_pin_config));
 
+       /* on-chip devices */
        pxa168_add_uart(1);
+
+       /* off-chip devices */
+       platform_device_register(&smc91x_device);
 }
 
 MACHINE_START(ASPENITE, "PXA168-based Aspenite Development Platform")
index 4d689b59c58c5f37ec7a064741ba8fc80c4b4ae4..1083e2c5dec6a90e7da1a1bdcc2b3ea8458fbdc0 100644 (file)
@@ -44,6 +44,7 @@
     defined(CONFIG_MACH_MAINSTONE) ||\
     defined(CONFIG_MACH_ZYLONITE) ||\
     defined(CONFIG_MACH_LITTLETON) ||\
+    defined(CONFIG_MACH_ZYLONITE2) ||\
     defined(CONFIG_ARCH_VIPER)
 
 #include <asm/mach-types.h>