Platform device support for EtherNEC, uset by ne.c driver.

Signed-off-by: Michael Schmitz <[email protected]>
---
 arch/m68k/atari/config.c |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index 6c3e885..19114f5 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -689,6 +689,36 @@ static struct platform_device *atari_ethernat_devices[] 
__initdata = {
        &smc91x_device
 };
 
+#define ATARI_ETHERNEC_PHYS_ADDR       0xfffa0000
+#define ATARI_ETHERNEC_BASE            0x300
+#define ATARI_ETHERNEC_IRQ             IRQ_MFP_TIMER1
+
+static struct resource rtl8019_resources[] = {
+       [0] = {
+               .name   = "rtl8019-regs",
+               .start  = ATARI_ETHERNEC_BASE,
+               .end    = ATARI_ETHERNEC_BASE + 0x20 - 1,
+               .flags  = IORESOURCE_IO,
+       },
+       [1] = {
+               .name   = "rtl8019-irq",
+               .start  = ATARI_ETHERNEC_IRQ,
+               .end    = ATARI_ETHERNEC_IRQ,
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
+static struct platform_device rtl8019_device = {
+       .name           = "ne",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(rtl8019_resources),
+       .resource       = rtl8019_resources,
+};
+
+static struct platform_device *atari_ethernec_devices[] __initdata = {
+       &rtl8019_device
+};
+
 int __init atari_platform_init(void)
 {
        int rv = 0;
@@ -708,6 +738,21 @@ int __init atari_platform_init(void)
        }
 #endif
 
+#ifdef CONFIG_ATARI_ETHERNEC
+       {
+               int error;
+               unsigned char *enec_virt;
+               enec_virt = (unsigned char 
*)ioremap((ATARI_ETHERNEC_PHYS_ADDR), 0xf);
+               if (hwreg_present(enec_virt)) {
+                       error = platform_add_devices(atari_ethernec_devices,
+                                               
ARRAY_SIZE(atari_ethernec_devices));
+                       if (error && !rv)
+                               rv = error;
+               }
+               iounmap(enec_virt);
+       }
+#endif
+
        return rv;
 }
 
-- 
1.7.0.4


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: 
http://lists.debian.org/[email protected]

Reply via email to