[ARM] 3879/1: ep93xx: instantiate platform devices for ep93xx ethernet
authorLennert Buytenhek <buytenh@org.rmk.(none)>
Fri, 29 Sep 2006 20:17:36 +0000 (21:17 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 30 Sep 2006 10:30:45 +0000 (11:30 +0100)
Instantiate platform devices for the ep93xx ethernet driver in a
couple of ep93xx board support files.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-ep93xx/edb9315a.c
arch/arm/mach-ep93xx/gesbc9312.c
arch/arm/mach-ep93xx/ts72xx.c

index bfefdaa..fa958e9 100644 (file)
@@ -44,10 +44,40 @@ static struct platform_device edb9315a_flash = {
        .resource       = &edb9315a_flash_resource,
 };
 
+static struct ep93xx_eth_data edb9315a_eth_data = {
+       .phy_id                 = 1,
+};
+
+static struct resource edb9315a_eth_resource[] = {
+       {
+               .start  = EP93XX_ETHERNET_PHYS_BASE,
+               .end    = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
+               .flags  = IORESOURCE_MEM,
+       }, {
+               .start  = IRQ_EP93XX_ETHERNET,
+               .end    = IRQ_EP93XX_ETHERNET,
+               .flags  = IORESOURCE_IRQ,
+       }
+};
+
+static struct platform_device edb9315a_eth_device = {
+       .name           = "ep93xx-eth",
+       .id             = -1,
+       .dev            = {
+               .platform_data  = &edb9315a_eth_data,
+       },
+       .num_resources  = 2,
+       .resource       = edb9315a_eth_resource,
+};
+
 static void __init edb9315a_init_machine(void)
 {
        ep93xx_init_devices();
        platform_device_register(&edb9315a_flash);
+
+       memcpy(edb9315a_eth_data.dev_addr,
+               (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
+       platform_device_register(&edb9315a_eth_device);
 }
 
 MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
index e760fd4..694590a 100644 (file)
@@ -43,10 +43,37 @@ static struct platform_device gesbc9312_flash = {
        .resource       = &gesbc9312_flash_resource,
 };
 
+static struct ep93xx_eth_data gesbc9312_eth_data = {
+       .phy_id                 = 1,
+};
+
+static struct resource gesbc9312_eth_resource[] = {
+       {
+               .start  = EP93XX_ETHERNET_PHYS_BASE,
+               .end    = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
+               .flags  = IORESOURCE_MEM,
+       }, {
+               .start  = IRQ_EP93XX_ETHERNET,
+               .end    = IRQ_EP93XX_ETHERNET,
+               .flags  = IORESOURCE_IRQ,
+       }
+};
+
+static struct platform_device gesbc9312_eth_device = {
+       .name           = "ep93xx-eth",
+       .id             = -1,
+       .dev            = {
+               .platform_data  = &gesbc9312_eth_data,
+       },
+       .num_resources  = 2,
+       .resource       = gesbc9312_eth_resource,
+};
+
 static void __init gesbc9312_init_machine(void)
 {
        ep93xx_init_devices();
        platform_device_register(&gesbc9312_flash);
+       platform_device_register(&gesbc9312_eth_device);
 }
 
 MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
index df315f2..3a4bf90 100644 (file)
@@ -157,12 +157,42 @@ static struct platform_device ts72xx_rtc_device = {
        .num_resources          = 0,
 };
 
+static struct ep93xx_eth_data ts72xx_eth_data = {
+       .phy_id                 = 1,
+};
+
+static struct resource ts72xx_eth_resource[] = {
+       {
+               .start  = EP93XX_ETHERNET_PHYS_BASE,
+               .end    = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
+               .flags  = IORESOURCE_MEM,
+       }, {
+               .start  = IRQ_EP93XX_ETHERNET,
+               .end    = IRQ_EP93XX_ETHERNET,
+               .flags  = IORESOURCE_IRQ,
+       }
+};
+
+static struct platform_device ts72xx_eth_device = {
+       .name           = "ep93xx-eth",
+       .id             = -1,
+       .dev            = {
+               .platform_data  = &ts72xx_eth_data,
+       },
+       .num_resources  = 2,
+       .resource       = ts72xx_eth_resource,
+};
+
 static void __init ts72xx_init_machine(void)
 {
        ep93xx_init_devices();
        if (board_is_ts7200())
                platform_device_register(&ts72xx_flash);
        platform_device_register(&ts72xx_rtc_device);
+
+       memcpy(ts72xx_eth_data.dev_addr,
+               (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
+       platform_device_register(&ts72xx_eth_device);
 }
 
 MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")