diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-10-24 20:58:41 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-10-24 20:58:41 +0000 |
commit | c75080b25fb1166d9d8542ffb79e57335e204681 (patch) | |
tree | 0c34228ceba1bcbe80e89b75a6ca42b1a8f6f7e5 /target/linux/ramips/files/arch/mips/ralink/rt305x | |
parent | d74086d2915c1ed7b4b5089c08f1b5c21e22ec9f (diff) |
[ramips] make ethernet a platform device
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18135 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ramips/files/arch/mips/ralink/rt305x')
-rw-r--r-- | target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c | 28 | ||||
-rw-r--r-- | target/linux/ramips/files/arch/mips/ralink/rt305x/devices.h | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c index 5dd1022b9..6155b9fb6 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c @@ -19,6 +19,8 @@ #include <asm/mach-ralink/rt305x_regs.h> #include "devices.h" +#include <eth.h> + static struct resource rt305x_flash0_resources[] = { { .flags = IORESOURCE_MEM, @@ -94,3 +96,29 @@ void __init rt305x_register_flash(unsigned int id, platform_device_register(pdev); rt305x_flash_instance++; } + +static void rt305x_fe_reset(void) +{ + rt305x_sysc_wr(RAMIPS_FE_RESET_BIT, RAMIPS_FE_RESET); + rt305x_sysc_wr(0, RAMIPS_FE_RESET); +} + +static struct ramips_eth_platform_data ramips_eth_data = { + .mac = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 }, + .base_addr = RT305X_FE_BASE, + .irq = RT305X_CPU_IRQ_FE, + .reset_fe = rt305x_fe_reset, + .min_pkt_len = 64 +}; + +static struct platform_device rt305x_eth_device = { + .name = "ramips_eth", + .dev = { + .platform_data = (void *) &ramips_eth_data, + } +}; + +void __init rt305x_register_ethernet(void) +{ + platform_device_register(&rt305x_eth_device); +} diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.h b/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.h index 0a90b3a4e..3d6210e0e 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.h +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.h @@ -15,6 +15,7 @@ struct physmap_flash_data; extern void rt305x_register_flash(unsigned int id, struct physmap_flash_data *pdata) __init; +extern void rt305x_register_ethernet(void); #endif /* __RT305X_DEVICES_H */ |