switch: update for brcm47xx target

* remove suport for 2.4 kernel
* add support for bcma bus

SVN-Revision: 27904
This commit is contained in:
Hauke Mehrtens
2011-08-04 20:07:58 +00:00
parent 695cef4f45
commit b220442c75
7 changed files with 82 additions and 101 deletions

View File

@@ -34,6 +34,10 @@
#include "switch-core.h"
#include "etc53xx.h"
#ifdef CONFIG_BCM47XX
#include <nvram.h>
#endif
#define DRIVER_NAME "bcm53xx"
#define DRIVER_VERSION "0.02"
#define PFX "roboswitch: "
@@ -63,14 +67,6 @@
#define SIOCGETCPHYRD (SIOCDEVPRIVATE + 9)
#define SIOCSETCPHYWR (SIOCDEVPRIVATE + 10)
/* Only available on brcm47xx */
#ifdef BROADCOM
extern char *nvram_get(const char *name);
#define getvar(str) (nvram_get(str)?:"")
#else
#define getvar(str) ""
#endif
/* Data structure for a Roboswitch device. */
struct robo_switch {
char *device; /* The device name string (ethX) */
@@ -258,6 +254,9 @@ static int robo_switch_enable(void)
{
unsigned int i, last_port;
u16 val;
#ifdef CONFIG_BCM47XX
char buf[20];
#endif
val = robo_read16(ROBO_CTRL_PAGE, ROBO_SWITCH_MODE);
if (!(val & (1 << 1))) {
@@ -278,10 +277,13 @@ static int robo_switch_enable(void)
robo_write16(ROBO_CTRL_PAGE, i, 0);
}
#ifdef CONFIG_BCM47XX
/* WAN port LED, except for Netgear WGT634U */
if (strcmp(getvar("nvram_type"), "cfe") != 0)
robo_write16(ROBO_CTRL_PAGE, 0x16, 0x1F);
if (nvram_getenv("nvram_type", buf, sizeof(buf)) >= 0) {
if (strcmp(buf, "cfe") != 0)
robo_write16(ROBO_CTRL_PAGE, 0x16, 0x1F);
}
#endif
return 0;
}