ar71xx: allow overriding of the lan port names on AP91 based boards

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20095 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Gabor Juhos 2010-03-09 18:05:45 +00:00
parent 9dc09bd52c
commit f950ef6dca
5 changed files with 24 additions and 5 deletions

View File

@ -10,6 +10,7 @@
#include "devices.h" #include "devices.h"
#include "dev-dsa.h" #include "dev-dsa.h"
#include "dev-ap91-eth.h"
static struct dsa_chip_data ap91_dsa_chip = { static struct dsa_chip_data ap91_dsa_chip = {
.port_names[0] = "cpu", .port_names[0] = "cpu",
@ -24,11 +25,27 @@ static struct dsa_platform_data ap91_dsa_data = {
.chip = &ap91_dsa_chip, .chip = &ap91_dsa_chip,
}; };
void __init ap91_eth_init(u8 *mac_addr) static void ap91_eth_set_port_name(unsigned port, const char *name)
{
if (port < 1 || port > 5)
return;
if (name)
ap91_dsa_chip.port_names[port] = (char *) name;
}
void __init ap91_eth_init(u8 *mac_addr, const char *port_names[])
{ {
if (mac_addr) if (mac_addr)
ar71xx_set_mac_base(mac_addr); ar71xx_set_mac_base(mac_addr);
if (port_names) {
int i;
for (i = 0; i < AP91_ETH_NUM_PORT_NAMES; i++)
ap91_eth_set_port_name(i + 1, port_names[i]);
}
/* WAN port */ /* WAN port */
ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
ar71xx_eth0_data.phy_mask = 0x0; ar71xx_eth0_data.phy_mask = 0x0;

View File

@ -11,8 +11,10 @@
#ifndef _AR71XX_DEV_AP91_ETH_H #ifndef _AR71XX_DEV_AP91_ETH_H
#define _AR71XX_DEV_AP91_ETH_H #define _AR71XX_DEV_AP91_ETH_H
#define AP91_ETH_NUM_PORT_NAMES 4
#if defined(CONFIG_AR71XX_DEV_AP91_ETH) #if defined(CONFIG_AR71XX_DEV_AP91_ETH)
void ap91_eth_init(u8 *mac_addr) __init; void ap91_eth_init(u8 *mac_addr, const char *port_names[]) __init;
#else #else
static inline void ap91_eth_init(u8 *mac_addr) { } static inline void ap91_eth_init(u8 *mac_addr) { }
#endif #endif

View File

@ -130,7 +130,7 @@ static void __init dir_600_a1_setup(void)
ARRAY_SIZE(dir_600_a1_gpio_buttons), ARRAY_SIZE(dir_600_a1_gpio_buttons),
dir_600_a1_gpio_buttons); dir_600_a1_gpio_buttons);
ap91_eth_init(mac); ap91_eth_init(mac, NULL);
ap91_pci_init(ee, mac); ap91_pci_init(ee, mac);
} }

View File

@ -117,7 +117,7 @@ static void __init rb750_setup(void)
AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN | AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN |
AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN); AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN);
ap91_eth_init(NULL); ap91_eth_init(NULL, NULL);
platform_device_register(&rb750_leds_device); platform_device_register(&rb750_leds_device);
platform_device_register(&rb750_nand_device); platform_device_register(&rb750_nand_device);
} }

View File

@ -108,7 +108,7 @@ static void __init tl_wr741nd_setup(void)
ARRAY_SIZE(tl_wr741nd_gpio_buttons), ARRAY_SIZE(tl_wr741nd_gpio_buttons),
tl_wr741nd_gpio_buttons); tl_wr741nd_gpio_buttons);
ap91_eth_init(mac); ap91_eth_init(mac, NULL);
ap91_pci_init(ee, mac); ap91_pci_init(ee, mac);
} }
MIPS_MACHINE(AR71XX_MACH_TL_WR741ND, "TL-WR741ND", "TP-LINK TL-WR741ND", MIPS_MACHINE(AR71XX_MACH_TL_WR741ND, "TL-WR741ND", "TP-LINK TL-WR741ND",