[PATCH 06/17] [m68k] Atari: add platform support for EtherNEC (conditionalized) Signed-off-by: Michael Schmitz <schmitz@xxxxxxxxxx> --- arch/m68k/atari/config.c | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 43 insertions(+), 2 deletions(-) diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c index e7aa0f7..c384454 100644 --- a/arch/m68k/atari/config.c +++ b/arch/m68k/atari/config.c @@ -690,10 +690,40 @@ 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_TIMD + +static struct resource rtl8019_resources[] = { + [0] = { + .name = "rtl9019-regs", + .start = ATARI_ETHERNEC_BASE, + .end = ATARI_ETHERNEC_BASE + 0x20 - 1, + .flags = IORESOURCE_IO, + }, + [1] = { + .name = "rtl9019-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) { - unsigned char *enatc_virt; - int rv = -ENODEV; + unsigned char *enatc_virt, *enec_virt; + int rv = -ENODEV, rv2 = -ENODEV; if (!MACH_IS_ATARI) return -ENODEV; @@ -706,6 +736,17 @@ int __init atari_platform_init(void) iounmap(enatc_virt); #endif +#if IS_ENABLED(CONFIG_ATARI_ETHERNEC) + enec_virt = (unsigned char *)ioremap((ATARI_ETHERNEC_PHYS_ADDR), 0xf); + if (hwreg_present(enec_virt)) { + rv2 = platform_add_devices(atari_ethernec_devices, ARRAY_SIZE(atari_ethernec_devices)); + } + iounmap(enec_virt); +#endif + + if (rv2) + return rv2; + return rv; } -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html