m68k/atari: EtherNEC - add platform device support
Add platform device for the Atari ROM port ethernet adapter, EtherNEC. This platform device will be used by the ne.c driver. [Geert] Conditionalize platform device data structures Signed-off-by: Michael Schmitz <schmitz@debian.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
This commit is contained in:

committad av
Geert Uytterhoeven

förälder
736b24db32
incheckning
1d87a8f291
@@ -659,7 +659,7 @@ static void atari_get_hardware_list(struct seq_file *m)
|
||||
|
||||
/*
|
||||
* MSch: initial platform device support for Atari,
|
||||
* required for EtherNAT driver
|
||||
* required for EtherNAT/EtherNEC drivers
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_ATARI_ETHERNAT
|
||||
@@ -696,6 +696,43 @@ static struct platform_device *atari_ethernat_devices[] __initdata = {
|
||||
};
|
||||
#endif /* CONFIG_ATARI_ETHERNAT */
|
||||
|
||||
#ifdef CONFIG_ATARI_ETHERNEC
|
||||
/*
|
||||
* EtherNEC: RTL8019 (NE2000 compatible) Ethernet chipset,
|
||||
* handled by ne.c driver
|
||||
*/
|
||||
|
||||
#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
|
||||
};
|
||||
#endif /* CONFIG_ATARI_ETHERNEC */
|
||||
|
||||
int __init atari_platform_init(void)
|
||||
{
|
||||
int rv = 0;
|
||||
@@ -715,6 +752,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;
|
||||
}
|
||||
|
||||
|
Referens i nytt ärende
Block a user