[ARM] pxa/vpac270: add ethernet support

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
This commit is contained in:
Marek Vasut 2010-03-10 05:38:54 +01:00 коммит произвёл Eric Miao
Родитель 3d98f8816a
Коммит 947fb57e3a
2 изменённых файлов: 52 добавлений и 0 удалений

Просмотреть файл

@ -32,4 +32,7 @@
#define GPIO16_VPAC270_CF_RESET 16 #define GPIO16_VPAC270_CF_RESET 16
#define GPIO41_VPAC270_UDC_DETECT 41 #define GPIO41_VPAC270_UDC_DETECT 41
#define GPIO114_VPAC270_ETH_IRQ 114
#endif #endif

Просмотреть файл

@ -21,6 +21,7 @@
#include <linux/mtd/mtd.h> #include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <linux/dm9000.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
@ -117,6 +118,9 @@ static unsigned long vpac270_pin_config[] __initdata = {
/* UDC */ /* UDC */
GPIO41_GPIO, GPIO41_GPIO,
/* Ethernet */
GPIO114_GPIO, /* IRQ */
}; };
/****************************************************************************** /******************************************************************************
@ -308,6 +312,50 @@ static void __init vpac270_udc_init(void)
static inline void vpac270_udc_init(void) {} static inline void vpac270_udc_init(void) {}
#endif #endif
/******************************************************************************
* Ethernet
******************************************************************************/
#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
static struct resource vpac270_dm9000_resources[] = {
[0] = {
.start = PXA_CS2_PHYS + 0x300,
.end = PXA_CS2_PHYS + 0x303,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = PXA_CS2_PHYS + 0x304,
.end = PXA_CS2_PHYS + 0x343,
.flags = IORESOURCE_MEM,
},
[2] = {
.start = IRQ_GPIO(GPIO114_VPAC270_ETH_IRQ),
.end = IRQ_GPIO(GPIO114_VPAC270_ETH_IRQ),
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
},
};
static struct dm9000_plat_data vpac270_dm9000_platdata = {
.flags = DM9000_PLATF_32BITONLY,
};
static struct platform_device vpac270_dm9000_device = {
.name = "dm9000",
.id = -1,
.num_resources = ARRAY_SIZE(vpac270_dm9000_resources),
.resource = vpac270_dm9000_resources,
.dev = {
.platform_data = &vpac270_dm9000_platdata,
}
};
static void __init vpac270_eth_init(void)
{
platform_device_register(&vpac270_dm9000_device);
}
#else
static inline void vpac270_eth_init(void) {}
#endif
/****************************************************************************** /******************************************************************************
* Framebuffer * Framebuffer
******************************************************************************/ ******************************************************************************/
@ -390,6 +438,7 @@ static void __init vpac270_init(void)
vpac270_keys_init(); vpac270_keys_init();
vpac270_uhc_init(); vpac270_uhc_init();
vpac270_udc_init(); vpac270_udc_init();
vpac270_eth_init();
} }
MACHINE_START(VPAC270, "Voipac PXA270") MACHINE_START(VPAC270, "Voipac PXA270")